How can I get the (approximate) eigenvectors of a huge matrix?

조회 수: 11 (최근 30일)
Steffen
Steffen 2014년 12월 2일
답변: Andrew Knyazev 2015년 5월 15일
I have a huge symmetric matrix M and I want to get the eigenvectors to the k smallest eigenvalues of M (which have to be greater than 0). I know that the smallest eigenvalue is 0.
Currently I am using
eigs(M,k,eps)
but this results in memory consumption of over 100GB of RAM.
  댓글 수: 3
Steffen
Steffen 2014년 12월 2일
Actually I have 128GB but the systems also needs some resources. Nonetheless my memory is not enough. It was swapping something like 50GB so I don't know how much memory there would be needed... (Even 200GB might be not enough.)
Therefore I am open for suggestions. M is a 150k x 150k matrix. Are there any approximate methods which need much less memory?
Matt J
Matt J 2014년 12월 2일
편집: Matt J 2014년 12월 2일
I don't really understand why it's taking so much memory. What happens when you do
eigs(M,k,'sm')

댓글을 달려면 로그인하십시오.

답변 (2개)

Thorsten
Thorsten 2014년 12월 2일
If M contains many 0's you can define M as a sparse matrix to speed up computation.
  댓글 수: 1
Steffen
Steffen 2014년 12월 8일
M is already defined as sparse. I construct the matrix by using spconvert().

댓글을 달려면 로그인하십시오.


Andrew Knyazev
Andrew Knyazev 2015년 5월 15일

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by