If I want to solve a generalized eigenvalue problem such as:

$$A x = \lambda x$$

The problem is to find eigenvectors corresponding to the largest eigenvalues (sometimes in an optimization problem that form it as a generalized eigenvalue problem).

I notice some people solve this problem by finding eigenvectors corresponding to the largest eigenvalues in absolute value.

Are these two method similar? What are the difference between them? I mean in what situation I should use eigenvalues in absolute value?

  • $\begingroup$ Could you provide some links with methods you say? I cannot help but I'm interested in methods providing eigenvectors corresponding to the maximum absolute value of eigenvalue. Thanks! $\endgroup$ Aug 23, 2014 at 4:01
  • $\begingroup$ I don't have links actually. I am trying to solve the generalized eigenvalue problem and not sure which one should I use and what is the difference. $\endgroup$
    – Matthew
    Aug 23, 2014 at 4:14
  • $\begingroup$ Thanks fir the response, @Matthew! $\endgroup$ Aug 23, 2014 at 4:38

1 Answer 1


Finding the eigenvector with the largest magnitude eigenvalue is the easiest and cheapest, since you can use power iteration directly. See http://en.wikipedia.org/wiki/Power_iteration

If you need to find the eigenvector with largest eigenvalue, you must modify the procedure. Sometimes you know that the largest eigenvalue is also the largest-magnitude eigenvalue (for example, if your matrix is positive-definite) and so you can again use power iteration. Otherwise, you can find the largest-magnitude eigenvalue; if it is positive, you are done. Otherwise, construct a new spectrally-shifted matrix $M' = M - \lambda I$ where $\lambda$ is the largest-magnitude, negative, eigenvalue. The eigenvalues of $M'$ are now all non-negative, so find its largest-magnitude eigenvalue $\mu$ and corresponding eigenvector $v$; the largest eigenvalue of $M$ is then $\mu+\lambda$ with eigenvector $v$.

As for when to calculate one versus the other -- that's application-dependent. If you tell us what you need the eigenvector for, we might be able to give you advice.

  • $\begingroup$ Thank you so much. My application is try to solve the optimization problem something like argmax_{T}(trace(TAT)/trace(TBT)) (A and B are some forms of matrices) and this problem can be approximated using a generalized eigenvalue problem. A*B^{-1} * x = lambda * x. So the T will be the eigenvectors corresponding to the largest eigenvalues such as T = [v1, v2, ...]. The number of eigenvectors can be input parameter that we can set. I am not sure if I describe the problem explicitely. $\endgroup$
    – Matthew
    Aug 23, 2014 at 4:07
  • $\begingroup$ On my behalf, thanks a lot,as well @user7530! $\endgroup$ Aug 23, 2014 at 4:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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