You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a list of things I would like/need, we can split them off into separate issues later.
Left and right eigenvectors. For general matrices, the diagonalizing transform is Q*A*Q^{-1}, where Q^{-1}=Q^H only for normal matrices. Inverting the matrix of right eigenvectors Q to find the left is usually illconditioned (and requires you to find all right eigenvectors, otherwise Q is not square). It is then better to explicitly compute the left eigenvectors simultaneously, which leads to two correction equations and requires the action of A^H as well as A. https://doi.org/10.1137/s0895479800373371
I assume simplifications can be made if A is Hermitian, as you alluded to in the chat, @haampie.
Iterator interface: similar to how the solvers in IterativeSolvers.jl work, it would be cool if one could get an iterator over the eigenpairs (eigentriples with left vectors as well). This would simplify these things:
Sometimes you don't need all the eigenvectors at once, only one or a few at a time.
Custom stopping condition, e.g "all eigenpairs with the real part of the eigenvalue smaller than E" or "the first eigenpair that fulfills a custom criterion"
Initial nullspace (see Initial null space #7); if the matrix is on the form A = (1 - U*U^H)*M*(1 - U*U^H), we already know that the columns of U belong to the nullspace and can thus be put directly into the set of deflated vectors.
Initial subspace; currently this is a random matrix, which sometimes leads to singular exceptions (I sometimes have very ill-conditioned matrices). I don't know how to intelligently pick a better initial subspace than a random one, but maybe there is a way?
Blocked version which could possibly help with eigenvalues of higher multiplicity (incidentally, this is probably the cause of the singular exceptions I see). https://doi.org/10.1137/140976017
Maybe replace explicit BLAS calls such as gemv! with mul! etc?
The text was updated successfully, but these errors were encountered:
I have a list of things I would like/need, we can split them off into separate issues later.
Q*A*Q^{-1}
, whereQ^{-1}=Q^H
only for normal matrices. Inverting the matrix of right eigenvectorsQ
to find the left is usually illconditioned (and requires you to find all right eigenvectors, otherwiseQ
is not square). It is then better to explicitly compute the left eigenvectors simultaneously, which leads to two correction equations and requires the action ofA^H
as well asA
. https://doi.org/10.1137/s0895479800373371q^T*B*p
instead ofq^H*B*P
https://doi.org/10.1016/j.apnum.2007.01.019, https://www.research-collection.ethz.ch/handle/20.500.11850/148927A
is Hermitian, as you alluded to in the chat, @haampie.E
" or "the first eigenpair that fulfills a custom criterion"A = (1 - U*U^H)*M*(1 - U*U^H)
, we already know that the columns ofU
belong to the nullspace and can thus be put directly into the set of deflated vectors.gemv!
withmul!
etc?The text was updated successfully, but these errors were encountered: