10
$\begingroup$

I am wondering how to find the eigenvalues of some sparse matrix in given interval [a, b] by iterative method. To my personal understanding, it is more obvious to use Krylov subspace method to find the extreme eigenvalues rather than the interior ones.

$\endgroup$
5
  • $\begingroup$ Have you considered the answers provided here? $\endgroup$ Apr 11, 2012 at 14:27
  • $\begingroup$ I'm curious... How large is your matrix? Do you need all interior eigenvalues, or ones closest to a particular value? $\endgroup$
    – Paul
    Apr 11, 2012 at 15:05
  • $\begingroup$ @Paul This is just an on-goning research, the size will be billion by billion sparse matrices, and we only need a few eigenvalues in certain interval to do the modeling. $\endgroup$ Apr 11, 2012 at 15:21
  • $\begingroup$ @Deathbreath Thank you for your reminder. I have considered those answers. $\endgroup$ Apr 11, 2012 at 15:27
  • $\begingroup$ May be you know that ressource already, but it may be useful anyway... www-users.cs.umn.edu/~saad/eig_book_2ndEd.pdf regards, Tom $\endgroup$
    – Tom
    Nov 22, 2012 at 14:58

1 Answer 1

10
$\begingroup$

The following strategy is called shift and invert and depends upon two important facts:

  1. $A-\tau I$ has the same spectrum as $A$, but shifted down by $\tau$, i.e., if $\lambda \in \sigma(A)$ then $\lambda-\tau \in \sigma(A-\tau I)$.
  2. Assuming that $A$ is invertible, the matrix $A^{-1}$ has a spectrum which is equal to the element-wise inverse of the spectrum of $A$, i.e., if $\lambda \in \sigma(A)$ then $1/\lambda \in \sigma(A^{-1})$.

Since $A-\frac{a+b}{2}I$ will have shifted the portion of $A$'s spectrum which is close to $\frac{a+b}{2}$ near the origin, the eigenvalues of $A$ near $\frac{a+b}{2}$ will be very large in $(A-\frac{a+b}{2}I)^{-1}$, and so it is reasonable to expect a Krylov algorithm to pick them up.

$\endgroup$
3
  • $\begingroup$ My question is by shift and invert method, we can amplify all the eigenvalues near a, which of course will include the unwanted ones originally less than a, and then how to filter out those eigenvalues. The other question is how to use the other endpoint b in the interation. $\endgroup$ Apr 11, 2012 at 15:25
  • 1
    $\begingroup$ It's possible to filter out certain eigenvalues by using polynomial filters. For an accessible overview of this technique see Sorensen: "Numerical methods for large eigenvalue problems" in Acta Numerica journals.cambridge.org/action/… $\endgroup$ Apr 11, 2012 at 23:30
  • $\begingroup$ @Willowbrook: Shifting by $c=(a+b)/2$ as recommended uses bouth end points, and moves the eigenvalues in [a,b] to the absolute largest ones in the transformed problem. So if you can factor your matrix, this is the way to proceed. If you can't factor the matrix, you'd add some info about the sttructure and origin of your matrix, so that one can make useful suggestions. $\endgroup$ Apr 14, 2012 at 19:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.