Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

Hello,

I have a linear algebra problem that I need help with.

Basically, I need to get the eigenvalues and eigenvectors of several (sometimes tens of thousands) very large Hermitian matrices (6^n x 6^n, where n>= 3, to be specific). Currently, we are just using MATLAB's eig() function to get them. I am trying to find optimizations for the simulations to cut down on computing time. There are three matrices that we use.

H_constant - generated before the loop. Real and symmetric about the diagonal. Does not change after initial calculation.

H_location - generated during each iteration. Diagonal.

H_final - the addition of H_constant and H_location. Therefore, it is also real and symmetric about the diagonal.

It is H_final that we need the eigenvalues and eigenvectors of. My theory is that we calculate the eigenvalues and eigenvectors of H_constant (which won't change after the initial calculation) once. We use this result with the eigenvalues of H_location (the diagonal), to get the eigenvalues and eigenvectors of H_final1. This would reduce our computation from tens of thousands of eig() calls to 1 eig() call and tens of thousands of very simple operations. I don't remember enough of my linear algebra to prove such a theory.

I hope I was able to explain the problem well enough. I hope someone is able to help me with this problem.

Thank you,

Vincent

share|improve this question
1  
If I have understood your question correctly, then previous answers to more-or-less the same question suggest that this approach will not be easy: mathoverflow.net/questions/34252/… –  Yemon Choi May 8 '12 at 6:41
1  
In general, this is indeed a very hard problem. But maybe your case is so special that some trick will help. To know if that is so, you'll have to supply a bit more information: * Do you really need all 6*n eigenvalues? Or maybe just a few extremal once? (eigs.m already gives this option) * Do you really need the eigenvectors? * How precise neet be the answers need? Absolutely? Relatively to the given matrix? Is the given matrix precise to begin with? * Can you accept bounds for the eigenvalues instead of exact answers? * How about approximate eigenvectors? They suffice in some applications. –  Felix Goldberg May 8 '12 at 7:54
add comment

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.