Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

How to force eig() to return a triangular matrix

조회 수: 1 (최근 30일)
Stephan
Stephan 2017년 8월 19일
댓글: Stephan 2017년 8월 23일
Hello everyone,
the following code gives an example, where eig() should use the cholesky decomposition, i.e. should return a triangular matrix like chol(). However, it does not.
% positive definite matrix
A = [4,2,-1;
2,5,1;
-1,1,6];
% Cholesky works and returns triangular matrix
TriangularMatrix = chol(A);
% no triangular matrix
[V,D] = eig(A);
How do I get a decomposition A = VDV^{-1}, where V is the triangular matrix from a cholesky decomposition.
Thanks for any help!
  댓글 수: 2
John D'Errico
John D'Errico 2017년 8월 19일
I'll tell you this much: The decomposition you are looking for does not exist.
If A is SPD, V lower triangular, D is diagonal, then the product
V*D*inv(V)
will not be symmetric. Therefore there is no need to look for a solution. This is because a lower triangular V will not have an inverse that is the transpose of V. That will happen only if V has very special properties that preclude it being lower triangular, UNLESS it is also diagonal and an identity matrix. So any matrix V that satisfies the requirements will produce a very boring solution, with D==A.
So don't waste your time searching for a solution.
Stephan
Stephan 2017년 8월 23일
Thank you!

답변 (0개)

이 질문은 마감되었습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by