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

6 Ansichten (letzte 30 Tage)
Steffen
Steffen am 2 Dez. 2014
Beantwortet: Andrew Knyazev am 15 Mai 2015
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 Kommentare
Steffen
Steffen am 2 Dez. 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 am 2 Dez. 2014
Bearbeitet: Matt J am 2 Dez. 2014
I don't really understand why it's taking so much memory. What happens when you do
eigs(M,k,'sm')

Melden Sie sich an, um zu kommentieren.

Antworten (2)

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

Melden Sie sich an, um zu kommentieren.


Andrew Knyazev
Andrew Knyazev am 15 Mai 2015

Kategorien

Mehr zu Linear Algebra finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by