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

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

but this results in memory consumption of over 100GB of RAM.
It's pretty impressive that you have that much RAM! Time for me to upgrade, I guess...
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일

0 개 추천

If M contains many 0's you can define M as a sparse matrix to speed up computation.

댓글 수: 1

M is already defined as sparse. I construct the matrix by using spconvert().

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

카테고리

도움말 센터File Exchange에서 Linear Algebra에 대해 자세히 알아보기

질문:

2014년 12월 2일

답변:

2015년 5월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by