线性递推与 Cayley - Hamilton 定理的简要证明

  • 引言:本篇对 O I OI OI 领域 - “线性递推” 中用的重要定理 C a y l e y − H a m i l t o n Cayley -Hamilton CayleyHamilton 定理做出简要证明,并在文章结尾顺带一提了 “线性递推” 的算法。

  • 符号规定, ∣ A ∣ |A| A 表示矩阵 A A A 的行列式, A i j A_{ij} Aij 表示 A A A ( i , j ) (i,j) (i,j) 元的代数余子式, A ∗ A^{*} A 表示 A A A 的伴随矩阵, 根据定义我们知道 A i , j ∗ = ∣ A j i ∣ A^{*}_{i,j}=|A_{ji}| Ai,j=Aji

  • Part  1 \text{Part}\ 1 Part 1 特征多项式:
    定义:设 A A A n n n 阶矩阵,如果数 λ \lambda λ n n n 维向量 x ⃗ \vec x x 使关系式
    A x ⃗ = λ x ⃗ A\vec x=\lambda \vec x Ax =λx
    成立,那么这样的 λ \lambda λ 称为矩阵 A A A 的特征值, x ⃗ \vec x x 称为对应于特征值的特征向量
    上式也可以写作: ( A − λ E ) x ⃗ = 0 ⃗ (A-\lambda E)\vec x=\vec 0 (AλE)x =0
    那么我们知道, x ⃗ \vec x x 有非零解当且仅当
    ∣ A − λ E ∣ = 0 |A-\lambda E|=0 AλE=0

    ∣ a 11 − λ a 12 ⋯ a 1 n a 21 a 22 − λ ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n − λ ∣ = 0 \begin{vmatrix}a_{11}-\lambda&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}-\lambda&\cdots&a_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} &a_{n2}&\cdots &a_{nn}-\lambda\end{vmatrix}=0 a11λa21an1a12a22λan2a1na2nannλ=0
    容易发现,上式是一个关于 λ \lambda λ n n n 次方程,称为矩阵 A A A 的特征方程, f ( λ ) = ∣ A − λ E ∣ f(\lambda)=|A-\lambda E| f(λ)=AλE 为特征多项式,注意到这个方程有 n n n 个解(重根算多个,可以为复数),不妨定为 λ 1 , λ 2 ⋯ λ n \lambda_1,\lambda_2\cdots\lambda_n λ1,λ2λn,那么显然 f ( λ ) = ( λ − λ 1 ) ( λ − λ 2 ) ⋯ ( λ − λ n ) f(\lambda)=(\lambda-\lambda_1)(\lambda-\lambda_2)\cdots(\lambda-\lambda_n) f(λ)=(λλ1)(λλ2)(λλn)

  • Part  2 \text{Part}\ 2 Part 2 C a y l e y − H a m i l t o n Cayley -Hamilton CayleyHamilton 定理
    C a y l e y − H a m i l t o n Cayley -Hamilton CayleyHamilton 定理:令 φ ( A ) \varphi(A) φ(A) 为一个关于 A A A 的矩阵多项式,其系数等于多项式 f ( λ ) f(\lambda) f(λ) 的各项系数,那么 φ ( A ) = 0 \varphi(A)=0 φ(A)=0
    我们先感性理解一下正确性,对于我们熟知的斐波那契递推矩阵
    ∣ 1 − λ 1 1 − λ ∣ = λ 2 − λ − 1 \begin{vmatrix}1-\lambda&1\\1&-\lambda\end{vmatrix}=\lambda^2-\lambda-1 1λ11λ=λ2λ1
    那么根据 C a y l e y − H a m i l t o n Cayley -Hamilton CayleyHamilton 定理
    ( 1 1 1 0 ) 2 − ( 1 1 1 0 ) − E = 0 \begin{pmatrix}1&1\\1&0\end{pmatrix}^2-\begin{pmatrix}1&1\\1&0\end{pmatrix}-E=0 (1110)2(1110)E=0
    尝试证明:
    我们令 B = A − λ E B=A-\lambda E B=AλE
    那么有
    B ∗ ∗ B = ∣ B ∣ ∗ E = f ( λ ) ∗ E (1) B^{*}*B=|B|*E=f(\lambda)*E\tag{1} BB=BE=f(λ)E(1)
    对于 B ∗ B^{*} B,其每一项 B i , j B_{i,j} Bi,j 均是由 λ \lambda λ n − 1 n-1 n1 次多项是构成的,那么我们可以将 B ∗ B^{*} B 写成一个关于 λ \lambda λ 的,系数为 n − 1 n-1 n1 阶矩阵的多项式
    B ∗ = C 0 + C 1 ∗ λ + C 2 ∗ λ 2 + ⋯ + C n ∗ λ n − 1 B^{*}=C_0+C_1*\lambda+C_2*\lambda^2+\cdots+C_n*\lambda^{n-1} B=C0+C1λ+C2λ2++Cnλn1
    于是 ( 1 ) (1) (1) 式,左边为
    ( C 0 + C 1 ∗ λ + C 2 ∗ λ 2 + ⋯ + C n − 1 ∗ λ n − 1 ) ( A − λ E ) (C_0+C_1*\lambda+C_2*\lambda^2+\cdots+C_{n-1}*\lambda^{n-1})(A-\lambda E) (C0+C1λ+C2λ2++Cn1λn1)(AλE)
    右边(我们令 f ( λ ) = ∑ i = 0 n a i λ i f(\lambda)=\sum_{i=0}^na_i\lambda^i f(λ)=i=0naiλi
    ( a 0 + a 1 ∗ λ + a 2 ∗ λ 2 + ⋯ + a n ∗ λ n ) E (a_0+a_1*\lambda+a_2*\lambda^2+\cdots+a_n*\lambda^n)E (a0+a1λ+a2λ2++anλn)E
    观察 λ \lambda λ 的系数
    C 0 A = a 0 E C 1 A − C 0 = a 1 E C 2 A − C 1 = a 2 E ⋮ C n − 1 A − C n − 2 = a n − 1 E − C n − 1 = A n E C_0A=a_0E \\ C_1A-C_0=a_1E\\ C_2A-C_1=a_2E\\\vdots \\C_{n-1}A-C_{n-2}=a_{n-1}E\\ -C_{n-1}=A_nE C0A=a0EC1AC0=a1EC2AC1=a2ECn1ACn2=an1ECn1=AnE
    对第二个式子同时右乘 A A A,第三个式子同时右乘 A 2 A^2 A2 依此类推
    C 0 A = a 0 E C 1 A 2 − C 0 A = a 1 A C 2 A 3 − C 1 A 2 = a 2 A 2 ⋮ C n − 1 A n − C n − 2 ∗ A n − 1 = a n − 1 A n − 1 − C n − 1 ∗ A n = A n ∗ A n C_0A=a_0E \\ C_1A^2-C_0A=a_1A\\ C_2A^3-C_1A^2=a_2A^2\\\vdots \\C_{n-1}A^{n}-C_{n-2}*A^{n-1}=a_{n-1}A^{n-1} \\ -C_{n-1}*A^{n}=A_n*A^n C0A=a0EC1A2C0A=a1AC2A3C1A2=a2A2Cn1AnCn2An1=an1An1Cn1An=AnAn
    左边相加右边相加得
    a 0 ∗ E + a 1 ∗ A + a 2 ∗ A 2 + ⋯ + a n ∗ A n = 0 a_0*E+a_1*A+a_2*A^2+\cdots +a_n*A^n=0 a0E+a1A+a2A2++anAn=0
    φ ( A ) = 0 \varphi(A)=0 φ(A)=0
    通过将矩阵化成多项式并比对各项系数巧妙化简最后将系数整合,太美了!

  • Part  3 \text{Part}\ 3 Part 3 :线性递推
    矩阵优化递推的核心就是求出 A n A^n An,那么我们发现 A n = φ ( A ) ∗ G ( A ) + R ( A ) = R ( A ) A^n=\varphi(A)*G(A)+R(A)=R(A) An=φ(A)G(A)+R(A)=R(A)
    R R R 的各项系数可以由 λ n \lambda^n λn f ( λ ) = ∣ A − λ E ∣ f(\lambda)=|A-\lambda E| f(λ)=AλE 多项式快速幂 + 多项式取模得到
    令初始向量为 v ⃗ \vec v v ,那么我们要求的就是 (令 R ( A ) R(A) R(A) 的系数为 r i r_i ri
    ( A n ∗ v ⃗ ) 1 = ∑ i = 0 k − 1 r i ∗ ( A i ∗ v ⃗ ) 1 (A^n*\vec v)_1=\sum_{i=0}^{k-1}r_i*(A^i*\vec v)_1 (Anv )1=i=0k1ri(Aiv )1
    下标 1 1 1 表示的是向量的第一个元素,那么 ( A i ∗ v ⃗ ) 1 (A^i*\vec v)_1 (Aiv )1 是已知的
    那么我们可以 O ( k l o g ( k ) l o g ( n ) ) O(klog(k)log(n)) O(klog(k)log(n)) 求出答案

应用资料:
同济大学《线性代数》
Cayley-Hamilton 定理的一個代數證明方法
转载请注明出处

你可能感兴趣的:(数学,线性递推)