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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .