Open haampie opened 6 years ago
Seems like [1] is a lot of words that basically come down to: apply at the end a 0 shift in implicit restart s.t. the new v₁
column is implicitly multiplied by (A - σB)⁻¹B
, which filters the components in the null space. Easy enough?
Hm, actually if A is non-symmetric I don't think the B-inner product makes much sense?
In the generalized eigenvalue problem
Ax = λBx
whereB' = B
andB ≥ 0
is makes sense to obtain a Schur decomp with the<x, y> = dot(x, B * y)
(semi-)inner product.Also, some care has to be taken to remove "infinite" eigenvalues: after the shift and invert transformation
(A - σB)⁻¹Bx = xθ
whereθ = 1/(λ - σ)
there arex
s.t. Bx = 0; transforming backλ = σ + 1/θ
would lead toλ = ∞
.Looks like ARPACK uses some daunting looking "purification" process to remove these eigenvalues, but there is also this reference [1] which seems easier.
[1] Meerbergen, Karl, and Alastair Spence. "Implicitly restarted Arnoldi with purification for the shift-invert transformation." Mathematics of Computation of the American Mathematical Society 66.218 (1997): 667-689.