Numerical Methods – How to Compute the Smallest Eigenvalue Using Power Iteration Algorithm

eigenvalues-eigenvectorslinear algebranumerical linear algebranumerical methods

I need to write a program which computes the largest and the smallest (in terms of absolute value) eigenvalues using both power iteration and inverse iteration.

I can find them using the inverse iteration, and I can also find the largest one using the power method. But I have no idea how to find the smallest one using the power method.
I tried applying some kind of shift such as $A – \lambda_{max}I$, but to no avail.

How can I modify the power method so that it computes the smallest eigenvalue?

Best Answer

If you know that $A$ is symmetric positive-definite, then the spectral shift $B = A-\lambda_\max I$ will work. Use the power method on $B$, then add $\lambda_\max$ to the result to get the smallest eigenvalue of $A$.

The reason this shift works is that a positive-definite matrix has all positive eigenvalues. Therefore $B$ has all non-positive eigenvalues, with the smallest eigenvalue of $A$ now the largest-magnitude (most negative) eigenvalue of $B$. The power method will then find that eigenvalue.

The same approach works for negative-definite matrices, for the same reason.