How does the eig function calculate its values?

22 ビュー (過去 30 日間)
Matthew Laughlin
Matthew Laughlin 2017 年 11 月 5 日
回答済み: Christine Tobler 2017 年 11 月 6 日
In this case: [V,D] = eig(A) D is the right eigenvectors and V is the eigenvalues. I've used the Eigen library (in c++) to calculate the eigenvalues for the same matrix but the results are different.

回答 (2 件)

Walter Roberson
Walter Roberson 2017 年 11 月 5 日
The documentation for eig() hints that one of chol() or qr() is used, and hints that qr() is always used if A is not symmetric. The generalized eigenvalue, eig(A,B), is documented as accepting an 'algorithm' option to choose between qr and chol, but the regular eigenvalue is not documented as having that, which I would interpret as indicating that it probably uses qr
  1 件のコメント
Christine Tobler
Christine Tobler 2017 年 11 月 6 日
The algorithms 'chol' and 'qz' are both specific to the generalized eigenvalue problem. For standard eigenvalue problems, there are no options about which algorithm is used.

サインインしてコメントする。


Christine Tobler
Christine Tobler 2017 年 11 月 6 日
Could you tell us what your results are? Eigenvectors are not uniquely defined, so it's possible for them to look quite different even when using the same algorithm on a different machine due to roundoff. Are the eigenvalues also different?
To check if eigenvalues and eigenvectors are correct without comparing to other results, you can compute A*V - V*D, which should return a matrix containing only round-off values.

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by