MATLAB Function Reference  chol

Cholesky factorization

Syntax

• ```R = chol(X)
[R,p] = chol(X)
```

Description

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`).

Examples

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(n`,`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
```

Now an attempt to find the Cholesky factorization fails.

Algorithm

For full matrices `X`, `chol` uses the LAPACK routines listed in the following table.

 Real Complex `X` `double` DPOTRF ZPOTRF `X` `single` SPOTRF CPOTRF

References

  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide (http://www.netlib.org/lapack/lug/ lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999.

See Also

`cholinc`, `cholupdate`

© 1994-2005 The MathWorks, Inc.