本文主要是介绍若儿当标准型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 引言
这里略去若尔当块和若尔当矩阵的定义,主要是想谈谈自己对若尔当标准型的理解。
我们都知道的简单结论是,对于 n n n阶方阵 A A A,如果 A A A有 n n n个互异的特征值 λ 1 , . . . , λ n \lambda_1,...,\lambda_n λ1,...,λn,那么 A A A是可以对角化的,并且向量空间 V = k e r ( A − λ 1 I ) + . . . + k e r ( A − λ n I ) V=ker(A-\lambda_1 I)+...+ker(A-\lambda_n I) V=ker(A−λ1I)+...+ker(A−λnI)。
实际上对角化的过程也就是将全空间分解成矩阵 A A A的不变子空间的直和的过程,比如 V = k e r ( A − λ 1 I ) + . . . + k e r ( A n − λ n I ) V=ker(A-\lambda_1 I)+...+ker(A_n-\lambda_n I) V=ker(A−λ1I)+...+ker(An−λnI),这其实就是将空间 V V V分解成 n n n个一维子空间的过程。
但是当方程 d e t ( A − λ I ) = 0 det(A-\lambda I)=0 det(A−λI)=0有重根的时候, A A A的特征值就少于 n n n个,假设此时 A A A有 r r r个互异的特征值,分解 V = k e r ( A − λ 1 I ) + . . . + k e r ( A − λ r I ) V=ker(A-\lambda_1 I)+...+ker(A-\lambda_r I) V=ker(A−λ1I)+...+ker(A−λrI)就可能会出问题,因为这些子空间维数的和有可能小于 n n n。如果记特征值 λ i \lambda_i λi的代数重数为 l ( λ i ) l(\lambda_i) l(λi),一般条件下只有 l ( λ i ) ≥ d i m ( k e r ( A − λ i I ) ) l(\lambda_i) \ge dim\ (ker(A-\lambda_i I)) l(λi)≥dim (ker(A−λiI)),二者相等时上面的分解才成立。
但是对任意一个矩阵 B B B,很明显方程 B k x = 0 B^kx=0 Bkx=0的解都是方程 B k + 1 x = 0 B^{k+1} x=0 Bk+1x=0的解,即 k e r ( B k ) ⊂ k e r ( B k + 1 ) ker(B^k) \subset ker(B^{k+1}) ker(Bk)⊂ker(Bk+1)对任意正整数 k k k 成立。所以一个想法是,如果重根 λ i \lambda_i λi对应的 k e r ( A − λ i I ) ker(A-\lambda_i I) ker(A−λiI)维数不够,那么能否用 k e r ( ( A − λ i I ) k ) ker((A-\lambda_i I)^k) ker((A−λiI)k)来代替。
当然了,想法虽然已经有了,但还需要两点条件:
- 一是存在某个 k k k,使得 k e r ( ( A − λ i I ) k ) ker((A-\lambda_i I)^k) ker((A−λiI)k)的维数足够,即 l ( λ i ) = d i m ( k e r ( ( A − λ i I ) k ) ) l(\lambda_i) =dim\ (ker((A-\lambda_i I)^k)) l(λi)=dim (ker((A−λiI)k))。
- 二是 k e r ( ( A − λ i I ) k ) ker((A-\lambda_i I)^k) ker((A−λiI)k)得是矩阵 A A A的不变子空间。
下面给出一些引理说明这两点条件确实是满足的。
2.一些引理
第二个条件更直观,也更容易证明,先放在前面。
引理2.1 k e r ( ( A − λ i I ) k ) ker((A-\lambda_i I)^k) ker((A−λiI)k)是矩阵 A A A的不变子空间。
证明:只需要注意到 ( A − λ i I ) k u = 0 (A-\lambda_i I)^ku=0 (A−λiI)ku=0 意味着 ( A − λ i I ) k A u = A ( A − λ i I ) k u = 0 (A-\lambda_i I)^k Au=A(A-\lambda_i I)^ku=0 (A−λiI)kAu=A(A−λiI)ku=0,所以命题成立。
既然 k e r ( ( A − λ i I ) k ) ker((A-\lambda_i I)^k) ker((A−λiI)k)确实是不变子空间,现在就需要验证它的维数随着 k k k“增加”,但是又不会超过 l ( λ i ) l(\lambda_i) l(λi)。
引理2.2 若 λ i \lambda_i λi为矩阵 A A A的代数重数为 l i l_i li的特征值,那么 d i m { k e r ( ( A − λ i I ) l i + k ) } = l i dim\{ker((A-\lambda_iI)^{l_i+k}) \}=l_i dim{ker((A−λiI)li+k)}=li对任意非负 k k k成立
这里要简单应用一下Schur分解,Schur分解是说:任意一个复数矩阵 C C C都相似于一个上三角矩阵 U U U,即 T − 1 C T = U T^{-1}CT=U T−1CT=U,且 U U U的对角元为矩阵 C C C的特征值。
应用这个定理先将 A A A分解为 T U T − 1 TUT^{-1} TUT−1且 U U U的对角元为 d i a g ( . . . , λ i , . . . , λ i ) diag(...,\lambda_i,...,\lambda_i) diag(...,λi,...,λi), λ i \lambda_i λi的个数为其代数重数 l i l_i li,于是 ( A − λ i I ) k = T ( U − λ i I ) k T − 1 (A−λ_iI)^k=T(U-\lambda_i I)^{k}T^{-1} (A−λiI)k=T(U−λiI)kT−1 且 k e r ( T ( U − λ i I ) k T − 1 ) = k e r ( ( U − λ i I ) k ) ker(T(U-\lambda_i I)^{k}T^{-1})=ker((U-\lambda_i I)^{k}) ker(T(U−λiI)kT−1)=ker((U−λiI)k)。再把矩阵 U − λ i I U-\lambda_i I U−λiI写成 ( C D 0 0 F ) \left(\begin{array}{ll} C& D_0 \\ 0& F\end{array} \right) (C0D0F),其中 F F F是一个严格上三角矩阵, F F F的阶数就是 λ i \lambda_i λi的代数重数 l i l_i li。
于是 ( U − λ i I ) k = ( C k D k 0 F k ) (U-\lambda_i I)^{k}=\left(\begin{array}{ll} C^k& D_k \\ 0& F^k\end{array} \right) (U−λiI)k=(Ck0DkFk),注意到 F k F^k Fk严格上三角,所以 F l i = 0 F^{l_i}=0 Fli=0。另外再注意到 C C C的对角元均不为0,所以 C k C^k Ck的对角元也都不为0。所以 r a n k ( ( U − λ i I ) k ) = n − l i rank((U-\lambda_i I)^{k})=n-l_i rank((U−λiI)k)=n−li,于是 k e r ( ( U − λ i I ) k ) = l i ker((U-\lambda_i I)^{k})=l_i ker((U−λiI)k)=li。
这篇关于若儿当标准型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!