将矩阵化为约旦标准型(Jordan Canonical Form)是线性代数中的一个重要过程,尤其当矩阵不能对角化时(即存在重特征值且几何重数小于代数重数)。以下是详细的步骤:
核心思想: 找到一个可逆矩阵 (P),使得 (P^{-1}AP = J),其中 (J) 是一个由约当块(Jordan Block)构成的分块对角矩阵。
约当块 (Jordan Block): 一个主对角线上元素都是同一个特征值 (lambda),主对角线上方紧邻的对角线(超对角线)上元素都是1,其余位置为0的矩阵。
1阶约当块: ([lambda])
2阶约当块: (begin{bmatrix} lambda & 1 0 & lambda end{bmatrix})
3阶约当块: (begin{bmatrix} lambda & 1 & 0 0 & lambda & 1 0 & 0 & lambda end{bmatrix})
依此类推。
化约旦标准型的步骤:
1. 求特征值:
计算矩阵 (A) 的特征多项式: (p(lambda) = det(A
解特征方程 (p(lambda) = 0),求出所有特征值 (lambda_1, lambda_2, dots, lambda_k)。注意重根(代数重数 (m_i))。
2. 对每个特征值 (lambda_i),求其对应的广义特征向量链:
这是最关键也最繁琐的一步。目标是找到一组线性无关的向量(广义特征向量),构成变换矩阵 (P) 的列,并确定每个特征值对应的约当块的大小和数量。
核心概念:
特征空间(几何重数): (E_{lambda_i} =
ext{ker}(A
广义特征空间: (K_{lambda_i} = bigcup_{j=1}^{infty}
ext{ker}((A
ext{ker}((A
ext{ker}((A - lambda_i I)^{p_i+1}) = dots = K_{lambda_i})。空间 (K_{lambda_i}) 的维数等于代数重数 (m_i)。
广义特征向量链 (Jordan Chain): 一组向量 ({v_1, v_2, dots, v_r}) 满足:
((A
((A
((A
(dots)
((A
((A
eq v_{r}) 对不属于链的向量 (v)。
这个链的长度为 (r),对应一个 (r
imes r) 的约当块。
计算步骤 (从链尾开始回溯):
计算幂: 计算矩阵 (N_i = A
确定零空间维数: 计算 (
ext{dim}(
ext{ker}(N_i^j))) 对于 (j=1, 2, dots, p_i)。记 (d_j =
ext{dim}(
ext{ker}(N_i^j)))。
计算约当块数量:
长度为 (k) 的约当块的数量 (n_k) 可以通过公式计算: (n_k = (d_k
更直观的方法是根据维数增量来确定链的起点。
构造广义特征向量链:
起点(链尾): 找一个向量 (v_k in
ext{ker}(N_i^k)) 但 (v_k
otin
ext{ker}(N_i^{k-1}))(即 (N_i^{k-1}v_k
eq 0))。这个向量确定了链的长度至少为 (k)。
回溯: 计算 (v_{k-1} = N_i v_k),则 (v_{k-1} in
ext{ker}(N_i^{k-1})) 但 (v_{k-1}
otin
ext{ker}(N_i^{k-2}))。继续计算 (v_{k-2} = N_i v_{k-1} = N_i^2 v_k),依此类推,直到 (v_1 = N_i^{k-1} v_k),且 (v_1 in
ext{ker}(N_i))(即 (v_1) 是特征向量)。
这样就得到了一个长度为 (k) 的广义特征向量链: (v_1, v_2, dots, v_k)。
注意: 同一个特征值可能有多个不同长度的链。确保选择的链尾向量是线性无关的,并且覆盖了整个广义特征空间 (K_{lambda_i})(维数为 (m_i))。
通常从最长的链开始构造(即从 (
ext{ker}(N_i^{p_i}) setminus
ext{ker}(N_i^{p_i-1})) 中选向量作为链尾)。构造完一个链后,在构造下一个链时,要确保新的链尾向量不属于之前所有链的向量所张成的子空间(即保持线性无关性)。
3. 构建变换矩阵 (P):
对每个特征值 (lambda_i),将其所有找到的广义特征向量链(每个链中的向量按顺序排列:特征向量在最上面,链尾在最下面)收集起来。
将这些链的所有向量按特征值分组(通常按特征值顺序),并按照链内部的顺序(即 (v_1, v_2, dots, v_k))作为列向量,拼凑成一个大矩阵 (P)。
形式: (P = [ dots |
ext{Chain for } lambda_1 | dots |
ext{Chain for } lambda_2 | dots ])
4. 构建约当标准型矩阵 (J):
根据每个特征值 (lambda_i) 的广义特征向量链构造其对应的约当块:
每个长度为 (k) 的链对应一个 (k
imes k) 的约当块,主对角线是 (lambda_i),超对角线是1。
将所有约当块(按特征值分组)放在一个大的分块对角矩阵上。
同一个特征值的多个约当块按块的大小(通常是降序或升序,只要一致即可)排列在对角线上。
不同特征值的约当块按特征值的顺序排列在对角线上。
5. 验证(可选但推荐):
计算 (P^{-1}AP),结果应该等于构造的 (J)。
或者验证关系式 (AP = PJ)。这通常比求逆更简单。检查 (P) 的每一列是否满足广义特征向量的定义(特别是链关系)以及特征向量的定义。
总结关键点:
特征值 决定了约当块对角线上的值。
代数重数 决定了属于该特征值的所有约当块的阶数之和。
几何重数 决定了属于该特征值的约当块的个数(等于线性无关特征向量的个数)。
广义特征向量链的结构(链的长度和数量)完全决定了约当块的大小和数量。每个链对应一个约当块。
计算的核心难点在于对每个重特征值,寻找其广义特征向量链(特别是链尾向量)并确保它们线性无关。
示例(简化描述):
假设矩阵 (A) 有一个特征值 (lambda),代数重数 (m=3),几何重数 (g=2)(即只有2个线性无关的特征向量)。
这表示 (lambda) 对应2个约当块。
维数增量分析可能显示:存在1个长度为2的链和1个长度为1的链(或者1个长度为3的链和0个其他链,但这要求 (g=1),不符合本例 (g=2))。
构造链:
找链尾 (v_2):满足 ((A-lambda I)^2 v_2 = 0) 但 ((A-lambda I) v_2
eq 0)。
计算 (v_1 = (A-lambda I)v_2)(则 (v_1) 是特征向量)。
再找一个线性无关的特征向量 (w_1)(与 (v_1) 线性无关)。
变换矩阵 (P = [v_1, v_2 | w_1])(列向量按顺序排列)。
约当标准型 (J = begin{bmatrix} lambda & 1 & 0 0 & lambda & 0 0 & 0 & lambda end{bmatrix})(包含一个2阶约当块和一个1阶约当块)。
记住,实际计算中,特别是对于重数高的特征值,寻找广义特征向量链需要仔细计算零空间和幂的秩/维数,并小心选择线性无关的链尾向量。