Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matrix-induced (semi-)inner product when B ≥ 0. #50

Open
haampie opened this issue Aug 2, 2018 · 2 comments
Open

Matrix-induced (semi-)inner product when B ≥ 0. #50

haampie opened this issue Aug 2, 2018 · 2 comments

Comments

@haampie
Copy link
Member

haampie commented Aug 2, 2018

In the generalized eigenvalue problem Ax = λBx where B' = B and B ≥ 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 are x 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.

@haampie haampie changed the title Matrix-induced (semi-)inner product when B >= 0. Matrix-induced (semi-)inner product when B ≥ 0. Aug 2, 2018
@haampie
Copy link
Member Author

haampie commented Aug 2, 2018

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?

@haampie
Copy link
Member Author

haampie commented Aug 4, 2018

Hm, actually if A is non-symmetric I don't think the B-inner product makes much sense?

@haampie haampie mentioned this issue Aug 28, 2018
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant