Given a corresponding right eigenpair, $(\lambda, v)$, of $A$, what robust methods exist for computing a left eigenvector, $w$ that satisfies $A^* w = \bar{\lambda}w$? My operator is has dimension on the order of $10^5$, so I can only use methods based on matrix vector products. It is also real and non-symmetric.

Currently I've tried several methods, none of which seem to be robust, i.e. they don't always converge. Here's a list of methods I've tried,

  1. scipy.sparse.linalg.svds using $A^* w - \bar{\lambda}I$ as the operator and computing the right singular vector with the smallest singular value.
  2. Inverse iteration using various sparse linear solvers (BiCGStab, GMRES, LSQR, LSMR) none of which converge. I've also tried perturbing the eigenvalue to make the system less singular which also failed.
  3. Newton's method. Since I have a left eigenvector of a nearby operator in parameter space, I have (what I think should be) a good initial guess for Newton's method. I've tried the same linear solvers as (2.) and it still doesn't always converge.

Is there something inherently ill-posed about this problem that's making all of these methods fail? Any tips on how to pose the problem to make these methods converge quickly is appreciated.

  • $\begingroup$ What is $\overline{\lambda}$, the complex conjugate? Note that if $Av = \lambda v$ then $A^TAv = \lambda A^Tv$ and $A^T \overline{w} = \lambda \overline{w}$. You can then conjugate both sides to get $A^*w = \overline{\lambda} w$ and thus $w = A^* \overline{v}$. This has an issue only if $A^* \overline{v} = 0$. $\endgroup$
    – lightxbulb
    Commented May 18 at 14:44


Your Answer

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

Browse other questions tagged or ask your own question.