Why does chol([4, -4;-4, 4]) fail to produce an answer?

7 views (last 30 days)
>> chol([4, -4;-4, 4])
Error using chol
Matrix must be positive definite.
Yet clearly
R = [2, -2];
R' * R
Gives ans =
4 -4
-4 4

Accepted Answer

Stephen23
Stephen23 on 22 Dec 2015
Edited: Stephen23 on 22 Dec 2015
Actually that matrix is not positive definite. From the chol documentation:
" [R,p] = chol(A) for positive definite A, produces an upper triangular matrix R from the diagonal and upper triangle of matrix A, satisfying the equation R'*R=A and p is zero. If A is not positive definite, then p is a positive integer and MATLAB® does not generate an error."
Lets try it:
>> [~,p] = chol([4, -4;-4, 4])
p =
2
This is the same method that TMW gives here:
  1 Comment
Paul Mellor
Paul Mellor on 22 Dec 2015
I see. Then is there a way to obtain a factorization R' * R = A for this matrix, even though it is not defined to be positive definite (since one of its eigenvalues is zero)? This factorization clearly exists as R = [2, -2];

Sign in to comment.

More Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!