Scilab 6.0.2
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
spchol
sparse cholesky factorization
Syntax
[R,P] = spchol(X)
Arguments
- X
symmetric positive definite real sparse matrix
- P
permutation matrix
- R
cholesky factor
Description
[R,P] = spchol(X)
produces a
lower triangular matrix R
such that P*R*R'*P' = X
.
Examples
// Factorization: Xfull = [ 3., 0., 0., 2., 0., 0., 2., 0., 2., 0., 0. 0., 5., 4., 0., 0., 0., 0., 0., 0., 0., 0. 0., 4., 5., 0., 0., 0., 0., 0., 0., 0., 0. 2., 0., 0., 3., 0., 0., 2., 0., 2., 0., 0. 0., 0., 0., 0. , 5., 0., 0., 0., 0., 0., 4. 0., 0., 0., 0., 0., 4., 0., 3., 0., 3., 0. 2., 0., 0., 2., 0., 0., 3., 0., 2., 0., 0. 0., 0., 0., 0., 0., 3., 0., 4., 0., 3., 0. 2., 0., 0., 2., 0., 0., 2., 0., 3., 0., 0. 0., 0., 0., 0., 0., 3., 0., 3., 0., 4., 0. 0., 0., 0., 0., 4., 0., 0., 0., 0., 0., 5.]; X = sparse(Xfull); [R, P] = spchol(X); max(P*R*R'*P'-X) // Factorization and solve with backslash operator: Afull = [ 2 -1 0 0 0; -1 2 -1 0 0; 0 -1 2 -1 0; 0 0 -1 2 -1; 0 0 0 -1 2 ]; A = sparse(Afull); [L, P] = spchol(A); max(P*L*L'*P'-A) n = size(A, "r"); e = (1:n)'; b = A * e; x = P*(L'\(L\(P'*b))); A*x-b
See also
Report an issue | ||
<< lusolve | Sparse Decompositions | Linear Equations (Iterative Solvers) >> |