JordanChain
MORFE.JordanChain — Module
JordanChainModule for computing Jordan chains of a generalized eigenvalue problem A v = λ B v.
MORFE.JordanChain.compute_jordan_chain — Method
compute_jordan_chain(A, B, λ, v, L; tol=1e-12)Compute a Jordan chain for the generalized eigenvalue problem A v = λ B v.
A Jordan chain for a given eigenvalue λ and eigenvector v is a sequence of vectors v_1 = v, v_2, …, v_ℓ such that:
(λB - A) v_1 = 0(λB - A) v_j = B v_{j-1}for j = 2, …, ℓ
The chain length ℓ is the largest integer for which the equations are consistent.
Arguments
A,B: matrices (sparse or dense) of size n × n. They represent the problemA v = λ B v.λ: eigenvalue (complex or real).v: eigenvector corresponding to λ, provided as a vector of length n.L: desired length of the chain (≥ 1). This includes the initial eigenvector.tol: tolerance for checking consistency of the linear systems. A new vector is
accepted if `‖(λB - A) v_{j+1} - B v_j‖ ≤ tol`. The same tolerance is used
for the relative tolerance of `lsqminnorm` when solving the singular system.Returns
chain: a matrix of size n × ℓ, where ℓ is the actual length of the computed chain.
Each column is a chain vector, with `chain[:,1] = v`.actual_length: the length ℓ of the computed chain (≤ L).