cholcov
Cholesky-like decomposition for covariance matrix.
T = cholcov (sigma) computes matrix T such that
sigma = T’ T. sigma must be square, symmetric, and
positive semi-definite.
If sigma is positive definite, then T is the square, upper triangular Cholesky factor. If sigma is not positive definite, T is computed with an eigenvalue decomposition of sigma, but in this case T is not necessarily triangular or square. Any eigenvectors whose corresponding eigenvalue is close to zero (within a tolerance) are omitted. If any remaining eigenvalues are negative, T is empty.
The tolerance is calculated as 10 * eps (max (abs (diag (sigma)))).
[T, p = cholcov (sigma) returns in p the
number of negative eigenvalues of sigma. If p > 0, then T
is empty, whereas if p = 0, sigma) is positive semi-definite.
If sigma is not square and symmetric, P is NaN and T is empty.
[T, p = cholcov (sigma, 0) returns p = 0 if
sigma is positive definite, in which case T is the Cholesky
factor. If sigma is not positive definite, p is a positive
integer and T is empty.
[…] = cholcov (sigma, 1) is equivalent to
[…] = cholcov (sigma).
See also: chov
Source Code: cholcov
C1 = [2, 1, 1, 2; 1, 2, 1, 2; 1, 1, 2, 2; 2, 2, 2, 3]
T = cholcov (C1)
C2 = T'*T
C1 =
2 1 1 2
1 2 1 2
1 1 2 2
2 2 2 3
T =
-0.1247 -0.6365 0.7612 0
0.8069 -0.5114 -0.2955 0
1.1547 1.1547 1.1547 1.7321
C2 =
2 1 1 2
1 2 1 2
1 1 2 2
2 2 2 3
|