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
The current implementation of eigs relies on usolveAll to find eigenvectors. This often fails because of numerical errors. A more robust approach would be to use an iterative algorithm. The easiest one in this case would be the inverse iteration algorithm. The gist of the algorithm is this:
Take a random vector b.
Let A be a matrix and k an approximation of its eigenvalue.
The expression ( (A − kE)⁻¹ )ⁿ b converges to an eigenvector as n → ∞.
Instead of actual inversion, which is a costly operation, we can perform an implicit inversion using usolvebₖ = (A − kE) bₖ₊₁.
When I have the time and mood, yes, definitely. (I expect this means in a month or so, but I can't tell with certainty.) However, if anyone wants to tackle this issue earlier, feel free to :)
The current implementation of
eigs
relies onusolveAll
to find eigenvectors. This often fails because of numerical errors. A more robust approach would be to use an iterative algorithm. The easiest one in this case would be the inverse iteration algorithm. The gist of the algorithm is this:usolve
bₖ = (A − kE) bₖ₊₁.The relevant code is here.
The text was updated successfully, but these errors were encountered: