这个曾经看来很难的OI知识在学过高代之后就很好证明了,最近学会了两个新的证明方法,比以前的简洁很多,给那些觉得这个定理难的同学分享一下。
设 A A A是 n n n阶矩阵, f ( λ ) = ∣ λ I − A ∣ f(\lambda)=|\lambda I-A| f(λ)=∣λI−A∣为其特征多项式,则 f ( A ) = 0 f(A)=0 f(A)=0。
设 B B B为 ( λ I − A ) (\lambda I-A) (λI−A)的伴随矩阵(此时 λ \lambda λ是数域上的数),则 B ( λ I − A ) = ( λ I − A ) B = f ( λ ) I B(\lambda I - A) = (\lambda I - A)B = f(\lambda) I B(λI−A)=(λI−A)B=f(λ)I(伴随矩阵的性质)。
B B B可拆分为为若干数字矩阵 B i B_i Bi( B i B_i Bi中元素不含 λ \lambda λ)与未定元 λ \lambda λ的乘积, B = λ n − 1 B n − 1 + λ n − 2 B n − 2 + . . . + B 0 B=\lambda^{n-1}B_{n-1}+\lambda^{n-2}B_{n-2}+...+B_0 B=λn−1Bn−1+λn−2Bn−2+...+B0
现在将 ( λ I − A ) (\lambda I-A) (λI−A)和 B B B看做是 λ \lambda λ为未定元,矩阵为系数的多项式。那么有:
( λ I − A ) B = λ n a n + . . . + a 0 = T ( λ ) (\lambda I - A)B = \lambda^na_n + ... + a_0 = T(\lambda) (λI−A)B=λnan+...+a0=T(λ) ( T ( λ ) T(\lambda) T(λ)是系数为矩阵的多项式)
当 λ ∈ F \lambda \in \mathbf{F} λ∈F时, T ( λ ) = f ( λ ) I T(\lambda)=f(\lambda)I T(λ)=f(λ)I(由伴随矩阵的性质)。
⇒ T ( λ ) = f ′ ( λ ) \Rightarrow T(\lambda) = f'(\lambda) ⇒T(λ)=f′(λ)( f ′ ( λ ) f'(\lambda) f′(λ)是系数为矩阵的多项式且系数 f i ′ = f i I f'_i = f_i I fi′=fiI,如若不然,带入实数 λ \lambda λ不会恒成立上一行的式子)
⇒ T ( A ) = ( A I − A ) B = 0 = f ′ ( A ) = f ( A ) I ⇒ f ( A ) = 0 \Rightarrow T(A) = (AI-A)B =0 = f'(A)=f(A)I \Rightarrow f(A)=0 ⇒T(A)=(AI−A)B=0=f′(A)=f(A)I⇒f(A)=0
注意一个细节,矩阵多项式带入矩阵求值,那么内部的矩阵必须是可交换的(因为多项式卷积需要把所有未定元结合起来)。由于 ( λ I − A ) B = B ( λ I − A ) (\lambda I-A)B=B(\lambda I-A) (λI−A)B=B(λI−A),很容易可以看出 A A A与 B , B i B,B_i B,Bi都可交换,于是可以带入 A A A求值。
为什么会想到这么证明呢?是因为我们要把特征多项式(即行列式)和矩阵乘积连接起来,然后用矩阵乘积的方法来证明。 而伴随矩阵恰好可以把行列式计算转化为矩阵乘积。观察以上证明过程 B B B的作用主要是连接 ( λ I − A ) (\lambda I-A) (λI−A)和 ∣ λ I − A ∣ |\lambda I -A| ∣λI−A∣。这种方法本质上与常见的把 B B B分为若干项的做法是一致的。
这个证明可能需要一些线性变换的知识,大概就是把一个向量映成另一个向量,且满足线性性,不了解的同学可以跳过了。理解了线性变换后这个证明个人认为比上面的证明还要简单不少。
设 A \mathcal{A} A一组基为 e 1 , . . . , e n e_1,...,e_n e1,...,en,设 e = ( e 1 , . . . , e n ) T e=(e_1,...,e_n)^T e=(e1,...,en)T, A e i = ∑ j a i j e j \mathcal{A}e_i =\sum_ja_{ij}e_j Aei=∑jaijej。
构造元素为线性变换的矩阵 H 1 \mathcal{H_1} H1,满足对角线是 A \mathcal{A} A,其余为0变换。
构造元素为线性变换的矩阵 H 2 \mathcal{H_2} H2= ( b i , j ) (b_{i,j}) (bi,j),满足 b i , j = a i , j I b_{i,j}=a_{i,j}\mathcal{I} bi,j=ai,jI。
令 H = H 1 − H 2 \mathcal{H=H_1-H_2} H=H1−H2,则有 H e = 0 {\mathcal{H}}e=0 He=0,故 ( H ∗ ) H e = 0 {\mathcal{(H^*)H}}e=0 (H∗)He=0, ∣ H ∣ ∗ I e = 0 |\mathcal{H}| * \mathcal{\bf{I}} \,e=0 ∣H∣∗Ie=0( I \mathcal{\bf{I}} I为对角线为 I \mathcal{I} I的矩阵),故 ∣ H ∣ = 0 |\mathcal{H}|=0 ∣H∣=0,即 f ( A ) = 0 f(\mathcal{A})=0 f(A)=0。
同样伴随矩阵起到连接行列式的作用,这里用线性变换替代了矩阵,带来了形式上的方便。
先在复数域上证明,采用归纳法,假设任意 n − 1 n-1 n−1阶的矩阵满足条件。
对于 n n n阶矩阵 A A A,必有一特征向量 e 1 e_1 e1,故 A A A可相似于 ( λ 1 ∗ 0 A 1 ) \begin{pmatrix}\lambda_1 & * \\ 0 & A_1 \end{pmatrix} (λ10∗A1),设此时基为 e 1 , ⋯ , e n e_1,\cdots,e_n e1,⋯,en。
则 f A = ( λ − λ 1 ) f A 1 f_A=(\lambda-\lambda_1)f_{A_1} fA=(λ−λ1)fA1,由归纳条件知 f A 1 ( A 1 ) = 0 f_{A_1}(A_1)=0 fA1(A1)=0,即 f A ( e i ) ∈ V λ 1 f_A(e_i) \in V_{\lambda_1} fA(ei)∈Vλ1,故 f A ( e i ) = ( λ − λ 1 ) f A ( e i ) = ( λ − λ 1 ) k e 1 = 0 f_A(e_i)=(\lambda-\lambda_1)f_A(e_i)=(\lambda-\lambda_1)ke_1=0 fA(ei)=(λ−λ1)fA(ei)=(λ−λ1)ke1=0。
对实数域,在复数域上是零化多项式,显然在实数域上也是。
应该是最简单的一种方法了,利用归纳法可以把比较难理思路的东西变得很简单。