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 |