How can the Cholesky decomposition step in eigs() be avoided without passing a matrix to eigs that is a Cholesky decomposition?

3 ビュー (過去 30 日間)
Allo
Allo 2012 年 1 月 23 日
回答済み: Andrew Knyazev 2015 年 5 月 15 日
Hello,
I have been looking at the following set of notes:
and specifically this quote in those notes:
"If SIGMA is a real or complex scalar including 0, EIGS finds the eigenvalues closest to SIGMA. For scalar SIGMA, and when SIGMA = ’SM’, B need only be symmetric (or Hermitian) positive semi-definite since it is not Cholesky factored as in the other cases."
I have a Hermitian positive-semidefinite matrix A, of which I want to find the 3 smallest eigenvalues. The Cholesky-decomposition is too memory intensive for the matrices I am working with. Please, is there a way to use eigs() without having to perform the Cholesky decomposition either in eigs() or outside of it?
Thank you very much.

回答 (2 件)

Walter Roberson
Walter Roberson 2012 年 1 月 23 日
Try
eigs(YourArray, 3, 'SM')
However, note that this requires that you be seeking the 3 eigenvalues with smallest absolute magnitude. If you need to find the smallest magnitude (e.g., -11.49 being smaller than -1.149) then you will not be able to use this option.
  2 件のコメント
Allo
Allo 2012 年 1 月 23 日
Hello and thank you for responding.
I tried this
D=eigs(M,6,'SM');
Because M=S*S, where S is my original Hermitian but not positive semi-definite matrix, because I wanted to submit a Hermitian positive semi-definite matrix to the eigs() function for the sake of exploiting the information I found above. It doesn't seem to be yielding the decrease in memory consumption that I expected. I thought the Cholesky decomposition of eigs() was supposed to require far more memory than the rest of eigs(), so I'm a bit confused.
Allo
Allo 2012 年 1 月 23 日
S is a sparse matrix with roughly 10^6 non-zero entries, with a side length of N~160000, if that is useful... u_u

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


Andrew Knyazev
Andrew Knyazev 2015 年 5 月 15 日

カテゴリ

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