| MATLAB Function Reference | Search  Help Desk |
| chol | Examples See Also |
R = chol(X) [R,p] = chol(X)The
chol function uses only the diagonal and upper triangle of X. The lower triangular is assumed to be the (complex conjugate) transpose of the upper. That is, X is Hermitian.
R = chol(X),
where X is positive definite produces an upper triangular R so that R'*R = X. If X is not positive definite, an error message is printed.
[R,p] = chol(X),
with two output arguments, never produces an error message. If X is positive definite, then p is 0 and R is the same as above. If X is not positive definite, then p is a positive integer and R is an upper triangular matrix of order q = p-1 so that R'*R = X(1:q,1:q).
The binomial coefficients arranged in a symmetric array create an interesting positive definite matrix.
n = 5;
X = pascal(n)
X =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
It is interesting because its Cholesky factor consists of the same coefficients, arranged in an upper triangular matrix.
R = chol(X)
R =
1 1 1 1 1
0 1 2 3 4
0 0 1 3 6
0 0 0 1 4
0 0 0 0 1
Destroy the positive definiteness (and actually make the matrix singular) by subtracting 1 from the last element.
X(nNow an attempt to find the Cholesky factorization fails.,n) = X(n,n)-1 X = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 69
chol uses the algorithm from the LINPACK subroutine ZPOFA. For a detailed description of the use of the Cholesky decomposition, see Chapter 8 of the LINPACK Users' Guide.
[1] Dongarra, J.J., J.R. Bunch, C.B. Moler, and G.W. Stewart, LINPACK Users' Guide, SIAM, Philadelphia, 1979.
cholinc Sparse Incomplete Cholesky and Cholesky-Infinity
factorizations
cholupdate Rank 1 update to Cholesky factorization