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

2 views (last 30 days)
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 Comments
Steffen
Steffen on 2 Dec 2014
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 on 2 Dec 2014
Edited: Matt J on 2 Dec 2014
I don't really understand why it's taking so much memory. What happens when you do
eigs(M,k,'sm')

Sign in to comment.

Answers (2)

Thorsten
Thorsten on 2 Dec 2014
If M contains many 0's you can define M as a sparse matrix to speed up computation.

Andrew Knyazev
Andrew Knyazev on 15 May 2015

Categories

Find more on Linear Algebra in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!