Eigenvalue decomposition of very large matrices

I'm doing a spectral decomposition of symmetric positive matrices. I have a 16Gb machine and can compute the evalues and evectors for a 30k x 30k matrix in reasonable time (~2hr). I need to scale up to a matrix 20 times that size. As eig is cubic this would take a couple of years.
I have access to a cluster that has a matlab parallel licence but am not sure how to proceed. All advice is much appreciated.
Thanks in advance.

댓글 수: 1

Matt J
Matt J 2014년 2월 4일
편집: Matt J 2014년 2월 4일
I'm naturally suspicious of anything that looks like it requires that much brute force compute power.
Are you sure your matrix has no special structure to it that could be exploited other than symmetry and positivity? Is the matrix really "positive" or did you mean "positive definite"?

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

답변 (1개)

Paul
Paul 2014년 2월 4일
편집: Paul 2014년 2월 4일

1 개 추천

If you have a sparse matrix (lots of zeros), you should use eigs (determines the eigenvalues of a sparse matrix). First declare the matrix sparse by doing:
M=sparse(M);
eigval = eigs(M,30000);
Normally eigs returns the 6 largest eigenvalues. The second argument of eigs in this case is the number of eigenvalues you want. If you want them all, put 30000 there.

댓글 수: 3

Matt J
Matt J 2014년 2월 4일
편집: Matt J 2014년 2월 4일
If you want them all, length(M) = #eigenvalues.
If you do this, eigs() will pre-convert the matrix from sparse to full. You may as well just use EIG and start with non-sparse M.
Paul
Paul 2014년 2월 4일
Hmm you are right, if you actually want all eigenvalues Matlab uses the eig alghorithm. If you dont want them all though, but only the largest k eigenvalues, eigs should be faster.
Matt J
Matt J 2014년 2월 4일
Conor commented
Unfortunately my matrix starts out as sparse but I need to transform it by subtracting it from 1.

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

카테고리

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

제품

질문:

2014년 2월 4일

댓글:

2014년 2월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by