Info

此问题已关闭。 请重新打开它进行编辑或回答。

How to force eig() to return a triangular matrix

2 次查看(过去 30 天)
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.

回答(0 个)

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by