Closed matthieugomez closed 5 years ago
Standard iterative algorithms like Arnoldi and Krylov Schur only produce a basis for the right eigenvectors (actually Schur vectors), they try to create an approximate Schur factorization:
A * U = U *T + correction
where U
is unitary and T
upper triangular. From this, only the right eigenvectors can be recovered.
There is an algorithm that simultaneously construct a left and right basis (biorthonormal), namely bilanczos. However, I think it is typically less stable, and anyway requires equally many applications with both A
and A^T
, so it won't be much cheaper than running the standard algorithms twice. Bi-lanczos is not implemented (yet?).
I see. Interesting! Thanks a lot for your answer.
Can this be closed, or should this remain open as a feature request for Bi-Lanczos methods?
I am using KrylovKit to solve for the eigenvalue with the largest real part, as well as its left and right eigenvectors Is there a way for
KrylovKit.eigsolve
to return both the left and right eigenvector? For now I calleigsolve
twice, one time on the matrix and the second time time on its transpose, but there must be a better way.