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

2 vues (au cours des 30 derniers jours)
Steffen
Steffen le 2 Déc 2014
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 commentaires
Steffen
Steffen le 2 Déc 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 le 2 Déc 2014
Modifié(e) : Matt J le 2 Déc 2014
I don't really understand why it's taking so much memory. What happens when you do
eigs(M,k,'sm')

Connectez-vous pour commenter.

Réponses (2)

Thorsten
Thorsten le 2 Déc 2014
If M contains many 0's you can define M as a sparse matrix to speed up computation.
  1 commentaire
Steffen
Steffen le 8 Déc 2014
M is already defined as sparse. I construct the matrix by using spconvert().

Connectez-vous pour commenter.


Andrew Knyazev
Andrew Knyazev le 15 Mai 2015

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by