JordanChain

MORFE.JordanChainModule
JordanChain

Module for computing Jordan chains of a generalized eigenvalue problem A v = λ B v.

source
MORFE.JordanChain.compute_jordan_chainMethod
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 problem A 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).
source