一、对角化矩阵
当 x \boldsymbol x x 是 A A A 的一个特征值时,则 A A A 乘上 x \boldsymbol x x 就是一个数字 λ \lambda λ 乘 x \boldsymbol x x: A x = λ x A\boldsymbol x=\lambda \boldsymbol x Ax=λx,这样矩阵所带来的困难就不存在了,我们就不用处理一个相互联系的系统,只需要分开处理特征向量。就像对角矩阵一样,它没有非对角线上的联系。对角矩阵的 100 100 100 次方就很容易计算。
我们使用合适的特征向量将矩阵 A A A 转换成对角矩阵 Λ \Lambda Λ。 这个矩阵的形式是关键的概念,我们先由一个重要的计算开始, A X = X Λ AX=X\Lambda AX=XΛ。
对角化 \kern 10pt 假设 n × n n\times n n×n 的矩阵 A A A 有 n n n 个线性无关的特征向量 x 1 , x 2 , ⋯ , x n \boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_n x1,x2,⋯,xn。将它们放在特征向量矩阵(egienvector matrix) X \pmb X X 的列中,则 X − 1 A X X^{-1}AX X−1AX 就是特征值矩阵(eigenvalue matrix) Λ \pmb{\Lambda} Λ: 特征向量矩阵 X 特征值矩阵 Λ X − 1 A X = Λ = [ λ 1 ⋱ λ n ] ( 6.2.1 ) \begin{array}{l}\pmb{特征向量矩阵\,X}\\\pmb{特征值矩阵\,\Lambda}\end{array}\kern 20pt{\color{blue}X^{-1}AX=\Lambda=\begin{bmatrix}\lambda_1&&\\&\ddots\\&&\lambda_n\end{bmatrix}}\kern 18pt(6.2.1) 特征向量矩阵X特征值矩阵ΛX−1AX=Λ= λ1⋱λn (6.2.1)
矩阵 A A A 被 “对角化(diagonalized)”,我们使用大些的 Λ \Lambda Λ 表示特征值矩阵,因为小的 λ ′ s \lambda's λ′s(特征值)都在它的对角线上。
【例1】 A A A 是三角矩阵,所有它的特征值在对角线上: λ = 1 \lambda=1 λ=1 和 λ = 6 \lambda=6 λ=6。 特征向量进到 X 中 [ 1 0 ] [ 1 1 ] [ 1 − 1 0 1 ] [ 1 5 0 6 ] [ 1 1 0 1 ] = [ 1 0 0 6 ] X − 1 A X = Λ \boxed{特征向量进到\,X\,中\,\begin{bmatrix}1\\0\end{bmatrix}\,\begin{bmatrix}1\\1\end{bmatrix}}\kern 10pt\begin{bmatrix}1&-1\\0&\kern 7pt1\end{bmatrix}\begin{bmatrix}\pmb1&\pmb5\\0&\pmb6\end{bmatrix}\begin{bmatrix}1&1\\0&1\end{bmatrix}=\begin{bmatrix}\pmb1&0\\0&\pmb6\end{bmatrix}\\\kern 140pt\color{blue}X^{-1}\kern 23ptA\kern 25ptX\kern 13pt=\kern 13pt\Lambda 特征向量进到X中[10][11][10−11][1056][1011]=[1006]X−1AX=Λ换一种写法, A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX−1,则 A 2 = X Λ X − 1 X Λ X − 1 A^2=X\Lambda X^{-1}X\Lambda X^{-1} A2=XΛX−1XΛX−1,所以 A 2 = X Λ 2 X − 1 \pmb{A^2=X\Lambda^2X^{-1}} A2=XΛ2X−1。 A 2 有和 X 中相同的特征向量,在 Λ 2 中是 A 的特征值的平方。 \pmb{A^2\,有和\,X\,中相同的特征向量,在\,\Lambda^2\,中是\,A\,的特征值的平方。} A2有和X中相同的特征向量,在Λ2中是A的特征值的平方。为什么 A X = X Λ AX=X\Lambda AX=XΛ 呢? A A A 乘上它的特征向量(特征向量就是 X X X 的列), A X AX AX 的第一列是 A x 1 A\boldsymbol x_1 Ax1,就是 λ 1 x 1 \lambda_1\boldsymbol x_1 λ1x1, X X X 的每一列都被它的特征值乘: A 乘 X A X = A [ x 1 ⋯ x n ] = [ λ 1 x 1 ⋯ λ n x n ] {\color{blue}A\,乘\,X}\kern 20ptAX=A\begin{bmatrix}\\\boldsymbol x_1&\cdots&\boldsymbol x_n\\\,\end{bmatrix}=\begin{bmatrix}\\\lambda_1\boldsymbol x_1&\cdots&\lambda_n\boldsymbol x_n\\\,\end{bmatrix} A乘XAX=A x1⋯xn = λ1x1⋯λnxn 技巧是将矩阵 A X AX AX 分割成 X X X 乘 Λ \Lambda Λ: X 乘 Λ [ λ 1 x 1 ⋯ λ n x n ] = [ x 1 ⋯ x n ] [ λ 1 ⋱ λ n ] = X Λ {\color{blue}X\,乘\,\Lambda}\kern 20pt\begin{bmatrix}\\\lambda_1\boldsymbol x_1&\cdots&\lambda_n\boldsymbol x_n\\\,\end{bmatrix}=\begin{bmatrix}\\\boldsymbol x_1&\cdots&\boldsymbol x_n\\\,\end{bmatrix}\begin{bmatrix}\lambda_1\\&\ddots\\&&\lambda_n\end{bmatrix}=X\Lambda X乘Λ λ1x1⋯λnxn = x1⋯xn λ1⋱λn =XΛ这些矩阵保持右序,则 λ 1 \lambda_1 λ1 乘第一列 x 1 \boldsymbol x_1 x1 即如上式。此时我们完成了对角化,我们可以将 A X = X Λ AX=X\Lambda AX=XΛ 写成两种方式:
A X = X Λ 可以写成 X − 1 A X = Λ 或 A = X Λ X − 1 ( 6.2.2 ) AX=X\Lambda\kern 10pt可以写成\kern 5pt{\color{blue}X^{-1}AX=\Lambda}\kern 5pt或\kern 5pt{\color{blue}A=X\Lambda X^{-1}}\kern 16pt(6.2.2) AX=XΛ可以写成X−1AX=Λ或A=XΛX−1(6.2.2)
矩阵 X X X 有逆矩阵,因为它的列( A A A 的特征向量)刚开始我们假设是线性无关的,如果没有 n n n 个无关的特征向量,我们就无法对角化。
A A A 和 Λ \Lambda Λ 有相同的特征值 λ 1 , λ 2 , ⋯ , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,⋯,λn,它们的特征向量不同。原始的特征向量 x 1 , x 2 , ⋯ , x n \boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_n x1,x2,⋯,xn 的工作就是对角化 A A A,这些在 X X X 中的特征向量得到 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX−1,这个式子简洁,但是它有重要意义。 第 k k k 次方是 A k = X Λ k X − 1 A^{k} = X\Lambda^kX^{-1} Ak=XΛkX−1,这个很容易计算: A k = ( X Λ X − 1 ) ( X Λ X − 1 ) ⋯ ( X Λ X − 1 ) = X Λ k X − 1 \pmb{A^k=(X\Lambda X^{-1})(X\Lambda X^{-1})\cdots(X\Lambda X^{-1})=X\Lambda^kX^{-1}} Ak=(XΛX−1)(XΛX−1)⋯(XΛX−1)=XΛkX−1 例 1 的幂 [ 1 5 0 6 ] k = [ 1 1 0 1 ] [ 1 6 k ] [ 1 − 1 0 1 ] = [ 1 6 k − 1 0 6 k ] = A k \pmb{例\,1\,的幂}\kern 15pt\begin{bmatrix}1&5\\0&6\end{bmatrix}^k=\begin{bmatrix}1&1\\0&1\end{bmatrix}\begin{bmatrix}1\\&6^k\end{bmatrix}\begin{bmatrix}1&-1\\0&\kern 7pt1\end{bmatrix}=\begin{bmatrix}\pmb1&\pmb{6^k-1}\\0&\pmb{6^k}\end{bmatrix}=A^k 例1的幂[1056]k=[1011][16k][10−11]=[106k−16k]=Ak当 k = 1 k=1 k=1 时得到 A A A;当 k = 0 k=0 k=0 时得 A 0 = I A^0=I A0=I( λ 0 = 1 \lambda^0=1 λ0=1);当 k = − 1 k=-1 k=−1 时得到 A − 1 A^{-1} A−1;当 k = 2 k=2 k=2 时 A 2 = [ 1 35 0 36 ] A^2=\begin{bmatrix}1&35\\0&36\end{bmatrix} A2=[103536] 这个公式都适用。
下面是关于 Λ \Lambda Λ 的 4 4 4 个小注解:
注解1: 假设特征值 λ 1 , λ 2 , ⋯ , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ1,λ2,⋯,λn 都不相同,则 n n n 个特征向量 x 1 , x 2 , ⋯ , x n \boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_n x1,x2,⋯,xn 会自动无关,特征向量矩阵 X X X 可逆。任何的没有重复特征值的矩阵 A A A 都可以对角化。
注解2: 我们可以用任意的非零常数乘上特征向量。 A ( c x ) = λ ( c x ) A(c\boldsymbol x)=\lambda(c\boldsymbol x) A(cx)=λ(cx) 任然成立。例 1 1 1 中,我们可以将 x = ( 1 , 1 ) \boldsymbol x=(1,1) x=(1,1) 除以 2 \sqrt2 2 来生成一个单位向量。
MATLAB 和几乎所有的其它代码都是得到长度 ∣ ∣ x ∣ ∣ = 1 ||\boldsymbol x||=1 ∣∣x∣∣=1 的特征向量。
注解3: X X X 中的特征向量的顺序和 Λ \Lambda Λ 中特征值的顺序一样。要反转 Λ \Lambda Λ 的顺序,也要在 X X X 中将特征向量 ( 1 , 1 ) (1,1) (1,1) 放在 $(1,0) $ 前: 新顺序 6 , 1 [ 0 1 1 − 1 ] [ 1 5 0 6 ] [ 1 1 1 0 ] = [ 6 0 0 1 ] = Λ new \pmb{新顺序\,6,1}\kern 15pt\begin{bmatrix}0&\kern 7pt1\\1&-1\end{bmatrix}\begin{bmatrix}1&5\\0&6\end{bmatrix}\begin{bmatrix}1&1\\1&0\end{bmatrix}=\begin{bmatrix}6&0\\0&1\end{bmatrix}=\Lambda_{\pmb{\textrm{new}}} 新顺序6,1[011−1][1056][1110]=[6001]=Λnew要对角化 A A A 一定要使用特征向量矩阵,由 X − 1 A X = Λ X^{-1}AX=\Lambda X−1AX=Λ 可知 A X = X Λ AX=X\Lambda AX=XΛ,假设 X X X 的第一列是 x \boldsymbol x x,则 A X AX AX 和 X Λ X\Lambda XΛ 的第一列是 A x A\boldsymbol x Ax 和 λ 1 x \lambda_1\boldsymbol x λ1x,要想它们相等,则 x \boldsymbol x x 一定要是特征向量。
注解4:(重复特征值的重复警告)有些矩阵的特征向量很少,这种矩阵无法对角化,下面是两个示例: 无法对角化 A = [ 1 − 1 1 − 1 ] 和 B = [ 0 1 0 1 ] \pmb{无法对角化}\kern 15ptA=\begin{bmatrix}1&-1\\1&-1\end{bmatrix}\kern 5pt和\kern 5ptB=\begin{bmatrix}0&1\\0&1\end{bmatrix} 无法对角化A=[11−1−1]和B=[0011]它们的特征值恰好都是 0 0 0 和 0 0 0, λ = 0 \lambda=0 λ=0 并没有什么特殊的,它们的问题是 λ \lambda λ 的重复,第一个矩阵所有的特征向量都是 ( 1 , 1 ) (1,1) (1,1) 的倍数: 特征向量只有一条直线 A x = 0 x 表示 [ 1 − 1 1 − 1 ] [ x ] = [ 0 0 ] 且 x = c [ 1 1 ] \pmb{特征向量只有一条直线}\kern 6ptA\boldsymbol x=0\boldsymbol x\kern 3pt表示\kern 3pt\begin{bmatrix}1&-1\\1&-1\end{bmatrix}\Big[\boldsymbol x\Big]=\begin{bmatrix}0\\0\end{bmatrix}且\kern 3pt\boldsymbol x=c\begin{bmatrix}1\\1\end{bmatrix} 特征向量只有一条直线Ax=0x表示[11−1−1][x]=[00]且x=c[11]并没有第二个方向的特征向量,所有这个不同寻常的矩阵 A A A 无法对角化。
这些矩阵是用来判断关于特征向量叙述的最佳例子,在很多判断问题中,无法对角化的矩阵会得到错误的结果。
注意可逆与可对角化之间没有什么联系:
- 可逆性与特征值有关( λ = 0 \lambda=0 λ=0 或 λ ≠ 0 \lambda\neq0 λ=0)
- 可对角化和特征向量相关( X X X 中的特征向量是否足够)
每个特征值至少有一个特征向量! A − λ I A-\lambda I A−λI 是奇异的,如果 ( A − λ I ) x = 0 (A-\lambda I)\boldsymbol x=\boldsymbol 0 (A−λI)x=0 可以得到 x = 0 \boldsymbol x=\boldsymbol 0 x=0,则 λ \lambda λ 不是特征值。这说明在求解 det ( A − λ I ) = 0 \det(A-\lambda I)=0 det(A−λI)=0 时出现了错误。
不同的 λ \lambda λ 有无关的 x \boldsymbol x x \kern 8pt 全部不相同的特征值对应的特征向量 x 1 , x 2 , ⋯ , x j \boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_j x1,x2,⋯,xj 都是线性无关的。任意的 n × n n\times n n×n 矩阵有 n n n 个不同的特征值(没有重复的 λ ′ s \lambda's λ′s)一定可以对角化。
证明: 假设 c 1 x 1 + c 2 x 2 = 0 c_1\boldsymbol x_1+c_2\boldsymbol x_2=\boldsymbol 0 c1x1+c2x2=0。左乘 A A A 得到 c 1 λ 1 x 1 + c 2 λ 2 x 2 = 0 c_1\lambda_1\boldsymbol x_1+c_2\lambda_2\boldsymbol x_2=\boldsymbol 0 c1λ1x1+c2λ2x2=0,用 λ 2 \lambda_2 λ2 乘得到 c 1 λ 2 x 1 + c 2 λ 2 x 2 = 0 c_1\lambda_2\boldsymbol x_1+c_2\lambda_2\boldsymbol x_2=\boldsymbol 0 c1λ2x1+c2λ2x2=0,然后将两式相减: 相减得到 ( λ 1 − λ 2 ) c 1 x 1 = 0 因此 c 1 = 0 相减得到\kern 10pt(\lambda_1-\lambda_2)c_1\boldsymbol x_1=\boldsymbol 0\kern 12pt因此\kern 2ptc_1=0 相减得到(λ1−λ2)c1x1=0因此c1=0由于 λ ′ s \lambda's λ′s 都不相同且 x 1 ≠ 0 \boldsymbol x_1\neq\boldsymbol 0 x1=0,所有我们可以得到 c 1 = 0 c_1=0 c1=0。同理可得 c 2 = 0 c_2=0 c2=0。只有组合 c 1 = c 2 = 0 c_1=c_2=0 c1=c2=0 可以得到 c 1 x 1 + c 2 x 2 = 0 c_1\boldsymbol x_1+c_2\boldsymbol x_2=\boldsymbol 0 c1x1+c2x2=0,所以特征向量 x 1 \boldsymbol x_1 x1 和 x 2 \boldsymbol x_2 x2 一定是无关的。
这个证明可以直接扩展到 j j j 个特征向量,假设 c 1 x 1 + c 2 x 2 + ⋯ + c j x j = 0 c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_j\boldsymbol x_j=\boldsymbol 0 c1x1+c2x2+⋯+cjxj=0, A A A 乘上式,然后 λ j \lambda_j λj 乘上式,得到的两个式子相减,则 x j \boldsymbol x_j xj 的系数是 λ j − λ j = 0 \lambda_j-\lambda_j=0 λj−λj=0,所以可以消去 x j \boldsymbol x_j xj;然后分别用 A A A 和 λ j − 1 \lambda_{j-1} λj−1 乘得到的式子再相减,就可以消去 x j − 1 \boldsymbol x_{j-1} xj−1,最终只剩下 x 1 \boldsymbol x_1 x1: 我们得到 ( λ 1 − λ 2 ) ( λ 1 − λ 3 ) ⋯ ( λ 1 − λ j ) c 1 x 1 = 0 一定有 c 1 = 0 ( 6.2.3 ) 我们得到\kern 10pt(\lambda_1-\lambda_2)(\lambda_1-\lambda_3)\cdots(\lambda_1-\lambda_j)c_1\boldsymbol x_1=\boldsymbol 0\kern 5pt一定有\kern 5ptc_1=0\kern 15pt(6.2.3) 我们得到(λ1−λ2)(λ1−λ3)⋯(λ1−λj)c1x1=0一定有c1=0(6.2.3)同理可得每个 c i = 0 c_i=0 ci=0,当所有的 λ ′ s \lambda's λ′s 都不相等,特征向量无关。所有的特征向量构成特征向量矩阵 X X X 的列。
【例2】 A 的幂 \pmb{A\,的幂}\kern 9pt A的幂马尔可夫矩阵 A = [ 0.8 0.3 0.2 0.7 ] A=\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix} A=[0.80.20.30.7] 的特征值 λ 1 = 1 \lambda_1=1 λ1=1 和 λ 2 = 0.5 \lambda_2=0.5 λ2=0.5, A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX−1 使得这些特征值在 Λ \Lambda Λ 的对角线上: 马尔可夫例子 [ 0.8 0.3 0.2 0.7 ] = [ 0.6 1 0.4 − 1 ] [ 1 0 0 0.5 ] [ 1 1 0.4 − 0.6 ] = X Λ X − 1 \pmb{马尔可夫例子}\kern 10pt\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}=\begin{bmatrix}0.6&\kern 7pt1\\0.4&-1\end{bmatrix}\begin{bmatrix}1&0\\0&0.5\end{bmatrix}\begin{bmatrix}1&1\\0.4&-0.6\end{bmatrix}=X\Lambda X^{-1} 马尔可夫例子[0.80.20.30.7]=[0.60.41−1][1000.5][10.41−0.6]=XΛX−1特征向量 ( 0.6 , 0.4 ) (0.6,0.4) (0.6,0.4) 和 ( 1 , − 1 ) (1,-1) (1,−1) 在 X X X 的列,它们也是 A 2 A^2 A2 的特征向量。 A 2 A^2 A2 有同样的 X X X, A 2 A^2 A2 的特征向量矩阵是 Λ 2 \Lambda^2 Λ2。
A 2 A^2 A2 有相同的 X X\kern 15pt X A 2 = X Λ X − 1 X Λ X − 1 = X Λ 2 X − 1 ( 6.2.4 ) {\color{blue}A^2}=X\Lambda X^{-1}X\Lambda X^{-1}={\color{blue}X\Lambda^2 X^{-1}}\kern 20pt(6.2.4) A2=XΛX−1XΛX−1=XΛ2X−1(6.2.4)
保持这个形式,就可以看到为什么高次幂 A k A^k Ak 趋近一个 “稳定状态”: A 的幂 A k = X Λ k X − 1 = [ 0.6 1 0.4 − 1 ] [ 1 k 0 0 ( 0.5 ) k ] [ 1 1 0.4 − 0.6 ] \pmb{A\,的幂}\kern 25ptA^k=X\Lambda^kX^{-1}=\begin{bmatrix}0.6&\kern 7pt1\\0.4&-1\end{bmatrix}\begin{bmatrix}1^k&0\\0&(0.5)^k\end{bmatrix}\begin{bmatrix}1&1\\0.4&-0.6\end{bmatrix} A的幂Ak=XΛkX−1=[0.60.41−1][1k00(0.5)k][10.41−0.6]当 k k k 变大, ( 0.5 ) k (0.5)^k (0.5)k 变小,极限时会消失,这个极限就是 A ∞ A^\infty A∞: 极限 k → ∞ A ∞ = [ 0.6 1 0.4 − 1 ] [ 1 0 0 0 ] [ 1 1 0.4 − . 6 ] = [ 0.6 0.6 0.4 0.4 ] \pmb{极限\,k\rightarrow\infty}\kern 20ptA^\infty=\begin{bmatrix}0.6&1\\0.4&-1\end{bmatrix}\begin{bmatrix}1&0\\0&0\end{bmatrix}\begin{bmatrix}1&1\\0.4&-.6\end{bmatrix}=\begin{bmatrix}0.6&0.6\\0.4&0.4\end{bmatrix} 极限k→∞A∞=[0.60.41−1][1000][10.41−.6]=[0.60.40.60.4]这个极限的两个列都是特征向量 x 1 \boldsymbol x_1 x1。
问题 什么时候 A k → 零矩阵 答案 所有的 ∣ λ ∣ < 1 {\color{blue}问题}\kern 5pt\boxed{什么时候 A^k\rightarrow 零矩阵}\kern 15pt{\color{blue}答案}\kern 5pt\boxed{所有的\,|\lambda|<1} 问题什么时候Ak→零矩阵答案所有的∣λ∣<1
二、相似矩阵:相同的特征值
假设特征值矩阵 Λ \Lambda Λ 固定,随着特征向量矩阵 X X X 的改变,我们得到一整个家族里的不同矩阵 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX−1 —— 它们都和 Λ \Lambda Λ 有相同的特征值。所有的这些矩阵 A A A(有相同的 Λ \Lambda Λ)称为相似(similar)。
这个概念可以扩展至无法对角化的矩阵,我们选择一个常数矩阵(不需要是 Λ \Lambda Λ),我们观察一下这整个家族的矩阵 A = B C B − 1 \pmb{A=BCB^{-1}} A=BCB−1,这里任意的可逆矩阵 B B B 都可以,同样有 A A A 和 C C C 相似。
我们用 C C C 代替 Λ \Lambda Λ,因为 C C C 不一定是对角矩阵;用 B B B 代替 X X X,因为 B B B 的列不一定是特征向量。我们只需要 B B B 是可逆的 —— 它的列可以是 R n \pmb{\textrm R}^n Rn 的任意一组基。只要满足这些条件的就是相似矩阵。相似矩阵 A A A 和 C C C 有相同的特征值。
所有的矩阵 A = B C B − 1 A=BCB^{-1} A=BCB−1 都是 “相似” 的,它们和 C C C 有相同的特征值。
证明: 假设 C x = λ x C\boldsymbol x=\lambda\boldsymbol x Cx=λx,则 B C B − 1 BCB^{-1} BCB−1 有相同的特征值 λ \lambda λ 和新的特征向量 B x B\boldsymbol x Bx: 相同的 λ ( B C B − 1 ) ( B x ) = B C x = B λ x = λ ( B x ) ( 6.2.5 ) \pmb{相同的\,\lambda}\kern 20pt(BCB^{-1})(B\boldsymbol x)=BC\boldsymbol x=B\lambda\boldsymbol x=\lambda(B\boldsymbol x)\kern 17pt(6.2.5) 相同的λ(BCB−1)(Bx)=BCx=Bλx=λ(Bx)(6.2.5)一个固定的矩阵 C C C 可以生成一个家族的相似矩阵 B C B − 1 BCB^{-1} BCB−1, B B B 是任意的可逆矩阵。当 C C C 是单位矩阵时,这个家族很小,唯一的成员是 B I B − 1 = I BIB^{-1}=I BIB−1=I,单位矩阵是唯一的所有的特征值 λ = 1 \lambda=1 λ=1 且可以对角化的矩阵。
当 λ = 1 \lambda=1 λ=1 和 1 1 1 但是只有一个特征向量(无法对角化)时,这个家族会大一些。最简单的 C C C 是若尔当形(Jordan form)。所有相似的 A ′ s A's A′s 有两个参数 r r r 和 s s s,它们不同时为零:总是有行列式 det = 1 \det=1 det=1 和迹 t r a c e = 2 trace=2 trace=2。 C = [ 1 1 0 1 ] = 若尔当形得到的 A = B C B − 1 = [ 1 − r s r 2 − s 2 1 + r s ] ( 6.2.6 ) C=\begin{bmatrix}\pmb1&\pmb1\\0&\pmb1\end{bmatrix}=若尔当形得到的\,A=BCB^{-1}=\begin{bmatrix}1-rs&r^2\\-s^2&1+rs\end{bmatrix}\kern 13pt(6.2.6) C=[1011]=若尔当形得到的A=BCB−1=[1−rs−s2r21+rs](6.2.6)另一个重要的例子是 λ = 1 \lambda=1 λ=1 和 0 0 0,这是不重复的两个特征值。则现在的整个家族都可以对角化,且有相同的特征值矩阵 Λ \Lambda Λ。我们得到任意的 2 × 2 2\times2 2×2 的矩阵特征值都是 1 1 1 和 0 0 0,迹是 1 1 1 且行列式为零: 所有的相似矩阵 Λ = [ 1 0 0 0 ] A = [ 1 1 0 0 ] 或 A = [ 0.5 0.5 0.5 0.5 ] 或 任意的 A = x y T x T y \pmb{所有的相似矩阵}\kern 10pt\Lambda=\begin{bmatrix}\pmb1&0\\0&\pmb0\end{bmatrix}\kern 10ptA=\begin{bmatrix}1&1\\0&0\end{bmatrix}\,或\,A=\begin{bmatrix}0.5&0.5\\0.5&0.5\end{bmatrix}\,或\,任意的\,A=\frac{\boldsymbol x\boldsymbol y^T}{\boldsymbol x^T\boldsymbol y} 所有的相似矩阵Λ=[1000]A=[1010]或A=[0.50.50.50.5]或任意的A=xTyxyT这个家族包含所有的 A 2 = A A^2=A A2=A 的矩阵、包含当 B = I B=I B=I 时的 A = Λ A=\Lambda A=Λ。当 A A A 对称时这些也是投影矩阵。特征值 1 1 1 和 0 0 0 让生活变得简单。
三、斐波那契数
斐波那契数(Fibonacci Numbers)是很著名的数列,特征值可以告诉我们斐波那契数是如何快速增长的。每个新的斐波那契数都是前两个斐波那契数 F ′ s F's F′s 的和:
序列 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , ⋯ \kern 8pt\color{blue}0,1,1,2,3,5,8,13,\cdots\kern 10pt 0,1,1,2,3,5,8,13,⋯来自于 F k + 2 = F k + 1 + F k \kern 10pt\color{blue}F_{k+2}=F_{k+1}+F_k Fk+2=Fk+1+Fk
这些数字会以各种神奇的方式出现。植物和树是以螺旋形式生长的,如果把位于枝干或茎的周围的同一方向的最近的两片叶子作为周期的开始和结束,这个周期中的叶子会沿着枝干或茎绕很多圈。梨树有 8 8 8 片叶子共绕 3 3 3 圈,柳树有 13 13 13 片叶子绕 5 5 5 圈。而向日葵花盘的螺旋线也符合斐波那契数,比较大的向日葵逆顺螺旋线有 144 144 144 和 233 233 233 个,这是斐波那契数列中的 F 12 F_{12} F12 和 F 13 F_{13} F13。我们的问题比较基础。
问题:求出斐波那契数 F 100 \pmb{F_{100}} F100: 使用公式 F k + 2 = F k + 1 + F k F_{k+2}=F_{k+1}+F_{k} Fk+2=Fk+1+Fk 一步一步的计算是很慢的方法。将 F 6 = 8 F_6=8 F6=8 加上 F 7 = 13 F_7=13 F7=13 可以得到 F 8 = 21 F_8=21 F8=21,最终可以求得 F 100 F_{100} F100。但是线性代数提供了更好的方法。
关键是由一个矩阵方程 u k + 1 = A u k \boldsymbol u_{k+1}=A\boldsymbol u_{k} uk+1=Auk 开始,这是第一步。第二步我们将两个斐波那契数放在一个向量中来应用适配这些规则,就可以得到矩阵 A A A。
令 u k = [ F k + 1 F k ] \kern 8pt{\color{blue}\boldsymbol u_k=\begin{bmatrix}F_{k+1}\\\\F_k\end{bmatrix}}\kern 5pt uk= Fk+1Fk 规则 F k + 2 = F k + 1 + F k F k + 1 = F k + 1 \begin{array}{l}F_{k+2}=F_{k+1}+F_k\\F_{k+1}=F_{k+1}\end{array}\kern 5pt Fk+2=Fk+1+FkFk+1=Fk+1 就是 u k + 1 = [ 1 1 1 0 ] u k \kern 5pt\color{blue}\boldsymbol u_{k+1}=\begin{bmatrix}1&1\\\\1&0\end{bmatrix}\boldsymbol u_k uk+1= 1110 uk ( 6.2.7 ) \kern 60pt(6.2.7) (6.2.7)
每一步左乘 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\1&0\end{bmatrix} A=[1110], 100 100 100 步后就可以得到 u 100 = A 100 u 0 \boldsymbol u_{100}=A^{100}\boldsymbol u_0 u100=A100u0: u 0 = [ 1 0 ] , u 1 = [ 1 1 ] , u 2 = [ 2 1 ] , u 3 = [ 3 2 ] , ⋯ , u 100 = [ F 101 F 100 ] \boldsymbol u_0=\begin{bmatrix}1\\0\end{bmatrix},\boldsymbol u_1=\begin{bmatrix}1\\1\end{bmatrix},\boldsymbol u_2=\begin{bmatrix}2\\1\end{bmatrix},\boldsymbol u_3=\begin{bmatrix}3\\2\end{bmatrix},\cdots,\boldsymbol u_{100}=\begin{bmatrix}F_{101}\\F_{100}\end{bmatrix} u0=[10],u1=[11],u2=[21],u3=[32],⋯,u100=[F101F100]这个问题就变成了特征值问题,从 A A A 的对角线减去 λ \lambda λ 得: A − λ I = [ 1 − λ 1 1 − λ ] 得 det ( A − λ I ) = λ 2 − λ − 1 A-\lambda I=\begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix}\kern 10pt得\kern 10pt\det(A-\lambda I)=\lambda^2-\lambda-1 A−λI=[1−λ11−λ]得det(A−λI)=λ2−λ−1方程 λ 2 − λ − 1 = 0 \lambda^2-\lambda-1=0 λ2−λ−1=0 由求根公式 − b ± b 2 − 4 a c 2 a \displaystyle\frac{-b±\sqrt{b^2-4ac}}{2a} 2a−b±b2−4ac 可以解出两个特征值: 特征值 λ 1 = 1 + 5 2 ≈ 1.618 和 λ 2 = 1 − 5 2 ≈ − 0.618 \pmb{特征值}\kern 10pt{\color{blue}\lambda_1=\frac{1+\sqrt5}{2}\approx1.618}\kern 4pt和\kern 4pt{\color{blue}\lambda_2=\frac{1-\sqrt5}{2}\approx-0.618} 特征值λ1=21+5≈1.618和λ2=21−5≈−0.618由特征值可以求得特征向量 x 1 = ( λ 1 , 1 ) \boldsymbol x_1=(\lambda_1,1) x1=(λ1,1) 和 x 2 = ( λ 2 , 1 ) \boldsymbol x_2=(\lambda_2,1) x2=(λ2,1),然后找出得到 u 0 = ( 1 , 0 ) \boldsymbol u_0=(1,0) u0=(1,0) 的特征向量的组合: [ 1 0 ] = 1 λ 1 − λ 2 ( [ λ 1 1 ] − [ λ 2 1 ] ) 或 u 0 = x 1 − x 2 λ 1 − λ 2 ( 6.2.8 ) \begin{bmatrix}1\\0\end{bmatrix}=\frac{1}{\lambda_1-\lambda_2}\Big(\begin{bmatrix}\lambda_1\\1\end{bmatrix}-\begin{bmatrix}\lambda_2\\1\end{bmatrix}\Big)\kern 3pt或\kern 3pt\boldsymbol u_0=\frac{\boldsymbol x_1-\boldsymbol x_2}{\lambda_1-\lambda_2}\kern 20pt(6.2.8) [10]=λ1−λ21([λ11]−[λ21])或u0=λ1−λ2x1−x2(6.2.8)第三步是 u 0 \boldsymbol u_0 u0 左乘 A 100 A^{100} A100 得到 u 100 \boldsymbol u_{100} u100,特征向量 x 1 \boldsymbol x_1 x1 和 x 2 \boldsymbol x_2 x2 仍然分开,分别用 ( λ 1 ) 100 (\lambda_1)^{100} (λ1)100 和 ( λ 2 ) 100 (\lambda_2)^{100} (λ2)100 乘上它们: 来自 u 0 的第 100 步 u 100 = ( λ 1 ) 100 x 1 − ( λ 2 ) 100 x 2 λ 1 − λ 2 ( 6.2.9 ) \pmb{来自\,\boldsymbol u_0\,的第\,100\,步}\kern 20pt{\color{blue}\boldsymbol u_{100}=\frac{(\lambda_1)^{100}\boldsymbol x_1-(\lambda_2)^{100}\boldsymbol x_2}{\lambda_1-\lambda_2}}\kern 15pt(6.2.9) 来自u0的第100步u100=λ1−λ2(λ1)100x1−(λ2)100x2(6.2.9)我们需要的 F 100 F_{100} F100 等于 u 100 \boldsymbol u_{100} u100 的第二个分量, x 1 \boldsymbol x_1 x1 和 x 2 \boldsymbol x_2 x2 的第二分量都是 1 1 1, λ 1 = 1 + 5 2 \lambda_1=\displaystyle\frac{1+\sqrt5}{2} λ1=21+5 和 λ 2 = 1 − 5 2 \lambda_2=\displaystyle\frac{1-\sqrt5}{2} λ2=21−5 的差是 5 \sqrt5 5,且 λ 2 100 ≈ 0 \lambda_2^{100}\approx0 λ2100≈0。 第 100 个斐波那契数 = λ 1 100 − λ 2 100 λ 1 − λ 2 = 最接近 1 5 ( 1 + 5 2 ) 100 的整数 ( 2.6.10 ) 第\,100\,个斐波那契数=\frac{\lambda^{100}_1-\lambda^{100}_2}{\lambda_1-\lambda_2}=最接近\,\frac{1}{\sqrt5}\Big(\frac{1+\sqrt5}{2}\Big)^{100}\,的整数\kern 12pt(2.6.10) 第100个斐波那契数=λ1−λ2λ1100−λ2100=最接近51(21+5)100的整数(2.6.10)每个 F k F_k Fk 都是整数,比值 F 101 / F 100 F_{101}/F_{100} F101/F100 非常接近比值 ( 1 + 5 ) / 2 (1+\sqrt5)/2 (1+5)/2。希腊人称这个数是 “黄金分割(golden mean)”,因为某些原因,矩阵的边长比例是 1.618 1.618 1.618 和 1 1 1 时会非常优美。
由特征值我们可以求得斐波那契数的通项公式 F n = 1 5 [ ( 1 + 5 2 ) n − ( 1 − 5 2 ) n ] F_n=\displaystyle\frac{1}{\sqrt5}\Big[\Big(\frac{1+\sqrt5}{2}\Big)^{n}-\Big(\frac{1-\sqrt5}{2}\Big)^{n}\Big] Fn=51[(21+5)n−(21−5)n],第 100 100 100 项是 F 100 = 354224848179261915075 F_{100}=354224848179261915075 F100=354224848179261915075。
四、矩阵的幂 A k A^k Ak
斐波那契的例子是典型的差分方程 u k + 1 = A u k \boldsymbol u_{k+1}=A\boldsymbol u_k uk+1=Auk。每步都左乘 A A A, 解是 u k = A k u 0 \boldsymbol u_k=A^k\boldsymbol u_0 uk=Aku0。我们要在三步内使用对角化矩阵快速计算 A k A^k Ak 和 u k \boldsymbol u_k uk。
特征向量矩阵 X X X 可以得到 A = X Λ X − 1 A=X\Lambda X^{-1} A=XΛX−1,这也是矩阵的一种分解,就像 A = L U A=LU A=LU 和 A = Q R A=QR A=QR 分解一样。新的分解方法很适合计算矩阵的幂,因为每次 X − 1 X^{-1} X−1 乘 X X X 都会得到 I I I: A 的幂 A k u 0 = ( X Λ X − 1 ) ( X Λ X − 1 ) ⋯ ( X Λ X − 1 ) u 0 = X Λ k X − 1 u 0 \pmb{A\,的幂}\kern 8ptA^k\boldsymbol u_0=(X\Lambda X^{-1})(X\Lambda X^{-1})\cdots(X\Lambda X^{-1})\boldsymbol u_0=X\Lambda^k X^{-1}\boldsymbol u_0 A的幂Aku0=(XΛX−1)(XΛX−1)⋯(XΛX−1)u0=XΛkX−1u0下面将 X Λ k X − 1 u 0 X\Lambda^kX^{-1}\boldsymbol u_0 XΛkX−1u0 分解成三步,以展示其中特征值是如何起作用的:
- 将 u 0 写成特征向量的组合 c 1 x 1 + c 2 x 2 + ⋯ + c n x n \color{blue}将\, \boldsymbol u_0 写成特征向量的组合 c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_n 将u0写成特征向量的组合c1x1+c2x2+⋯+cnxn。则 c = X − 1 u 0 \boldsymbol c=X^{-1}\boldsymbol u_0 c=X−1u0。
- 每个特征向量 x i 乘上 ( λ i ) k \color{blue}每个特征向量\,\boldsymbol x_i\,乘上\,(\lambda_i)^k 每个特征向量xi乘上(λi)k。现在我们有 Λ k X − 1 u 0 = Λ k c \Lambda^kX^{-1}\boldsymbol u_0=\Lambda^k\boldsymbol c ΛkX−1u0=Λkc, c = X − 1 X c \boldsymbol c=X^{-1}X\boldsymbol c c=X−1Xc 中的特征向量矩阵 X X X 中的 x i \boldsymbol x_i xi 每个乘上 ( λ i ) k (\lambda_i)^k (λi)k,即得到 Λ k c \Lambda^k\boldsymbol c Λkc。
- 将每一部分的 c i ( λ i ) k x i 加起来求出解 u k = A k u 0 \color{blue}将每一部分的\,c_i(\lambda_i)^k\boldsymbol x_i\,加起来求出解\,\boldsymbol u_k=A^k\boldsymbol u_0 将每一部分的ci(λi)kxi加起来求出解uk=Aku0。这个就是 X Λ k X − 1 u 0 X\Lambda^k X^{-1}\boldsymbol u_0 XΛkX−1u0。
u k + 1 = A u k 的解 u k = A k u 0 = c 1 ( λ 1 ) k x 1 + c 2 ( λ 2 ) k x 2 + ⋯ + c n ( λ n ) k x n ( 6.2.11 ) \boldsymbol u_{k+1}=A\boldsymbol u_k\,\boldsymbol{的解}\kern 20pt{\color{blue}\boldsymbol u_k=A^k\boldsymbol u_0=c_1(\lambda_1)^k\boldsymbol x_1+c_2(\lambda_2)^k\boldsymbol x_2+\cdots+c_n(\lambda_n)^k\boldsymbol x_n}\kern 15pt(6.2.11) uk+1=Auk的解uk=Aku0=c1(λ1)kx1+c2(λ2)kx2+⋯+cn(λn)kxn(6.2.11)
使用矩阵语言 A k A^k Ak 等于 ( X Λ X − 1 ) k (X\Lambda X^{-1})^k (XΛX−1)k 就是 X X X 乘 Λ k \Lambda^k Λk 乘 X − 1 X^{-1} X−1。在步骤 1 1 1 中, X X X 中的特征向量得到组合 u 0 = c 1 x 1 + c 2 x 2 + ⋯ + c n x n \boldsymbol u_0=c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_n u0=c1x1+c2x2+⋯+cnxn 中的 c ′ s c's c′s: 步骤 1 u 0 = [ x 1 ⋯ x n ] [ c 1 ⋮ c n ] ,这个就是 u 0 = X c ( 6.2.12 ) \boldsymbol{步骤\,1}\kern 10pt\boldsymbol u_0=\begin{bmatrix}\,\\\boldsymbol x_1&\cdots&\boldsymbol x_n\\\,\end{bmatrix}\begin{bmatrix}c_1\\\vdots\\c_n\end{bmatrix},这个就是\,{\color{blue}\boldsymbol u_0=X\boldsymbol c}\kern 15pt(6.2.12) 步骤1u0= x1⋯xn c1⋮cn ,这个就是u0=Xc(6.2.12)步骤 1 1 1 的系数是 c = X − 1 u 0 \boldsymbol c=X^{-1}\boldsymbol u_0 c=X−1u0。然后步骤 2 2 2 左乘 Λ k \Lambda^k Λk,最终的结果是步骤 3 3 3 的 u k = ∑ c i ( λ i ) k x i \boldsymbol u_k=\sum c_i(\lambda_i)^k\boldsymbol x_i uk=∑ci(λi)kxi,这个就是 X X X 和 Λ k \Lambda^k Λk 和 X − 1 u 0 X^{-1}\boldsymbol u_0 X−1u0 的乘积: A k u 0 = X Λ k X − 1 u 0 = X Λ k c = [ x 1 ⋯ x n ] [ ( λ 1 ) k ⋱ ( λ n ) k ] [ c 1 ⋮ c n ] ( 6.2.13 ) {\color{blue}A^k\boldsymbol u_0}=X\Lambda^kX^{-1}\boldsymbol u_0=X\Lambda^k\boldsymbol c=\begin{bmatrix}\\\color{blue}\boldsymbol x_1&\color{blue}\cdots&\color{blue}\boldsymbol x_n\\\,\end{bmatrix}\begin{bmatrix}\color{blue}(\lambda_1)^k\\\,&\color{blue}\ddots\\\,&&\color{blue}(\lambda_n)^k\end{bmatrix}\begin{bmatrix}\color{blue}c_1\\\color{blue}\vdots\\\color{blue}c_n\end{bmatrix}\kern 15pt(6.2.13) Aku0=XΛkX−1u0=XΛkc= x1⋯xn (λ1)k⋱(λn)k c1⋮cn (6.2.13)这个结果就是 u k = c 1 ( λ 1 ) k x 1 + c 2 ( λ 2 ) k x 2 + ⋯ + c n ( λ n ) k x n \boldsymbol u_k=c_1(\lambda_1)^k\boldsymbol x_1+c_2(\lambda_2)^k\boldsymbol x_2+\cdots+c_n(\lambda_n)^k\boldsymbol x_n uk=c1(λ1)kx1+c2(λ2)kx2+⋯+cn(λn)kxn,它是 u k + 1 = A u k \boldsymbol u_{k+1}=A\boldsymbol u_k uk+1=Auk 的解。
【例3】从 u 0 = ( 1 , 0 ) \boldsymbol u_0=(1,0) u0=(1,0) 开始,计算这个快速斐波那契数的 A k u 0 A^k\boldsymbol u_0 Aku0: A = [ 1 2 1 0 ] 有 λ 1 = 2 , x 1 = [ 2 1 ] 和 λ 2 = − 1 , x 2 = [ 1 − 1 ] A=\begin{bmatrix}1&2\\1&0\end{bmatrix}有\,\lambda_1=\pmb2,\kern 3pt\boldsymbol x_1=\begin{bmatrix}2\\1\end{bmatrix}和\,\lambda_2=\pmb{-1},\kern 3pt\boldsymbol x_2=\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix} A=[1120]有λ1=2,x1=[21]和λ2=−1,x2=[1−1]这个矩阵很像斐波那契数,只是规则改为了 F k + 2 = F k + 1 + 2 F k F_{k+2}=F_{k+1}+\pmb2F_k Fk+2=Fk+1+2Fk,新的数列从 0 , 1 , 1 , 3 0,1,1,3 0,1,1,3 开始,由于 λ = 2 \lambda=2 λ=2,所有它们增长的比斐波那契数要更快。
用 3 步求出 u k = A k u 0 u 0 = c 1 x 1 + c 2 x 2 和 u k = c 1 ( λ 1 ) k x 1 + c 2 ( λ 2 ) k x 2 \pmb 用 \,3\,\pmb{步求出}\,\boldsymbol u_k=A^k\boldsymbol u_0\kern 10pt\boldsymbol u_0=c_1\boldsymbol x_1+c_2\boldsymbol x_2\,和\,\boldsymbol u_k=c_1(\lambda_1)^k\boldsymbol x_1+c_2(\lambda_2)^k\boldsymbol x_2 用3步求出uk=Aku0u0=c1x1+c2x2和uk=c1(λ1)kx1+c2(λ2)kx2 步骤 1 u 0 = [ 1 0 ] = 1 3 [ 2 1 ] + 1 3 [ 1 − 1 ] , 所以 c 1 = c 2 = 1 3 步骤 2 分别左乘两部分 ( λ 1 ) k = 2 k 和 ( λ 2 ) k = ( − 1 ) k 步骤 3 组合特征向量 c 1 ( λ 1 ) k x 1 和 c 2 ( λ 2 ) k x 2 得到 u k : u k = A k u 0 u k = 1 3 2 k [ 2 1 ] + 1 3 ( − 1 ) k [ 1 − 1 ] = [ F k + 1 F k ] \begin{array}{l}\boldsymbol{步骤\,1}\kern 15pt\boldsymbol u_0=\begin{bmatrix}1\\0\end{bmatrix}=\displaystyle\frac{1}{3}\begin{bmatrix}2\\1\end{bmatrix}+\frac{1}{3}\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix},\kern 5pt所以\,c_1=c_2=\frac{1}{3}\\\,\\\boldsymbol{步骤\,2}\kern 15pt分别左乘两部分\,(\lambda_1)^k=2^k\,和\,(\lambda_2)^k=(-1)^k\\\,\\\boldsymbol{步骤3}\kern 15pt组合特征向量\,c_1(\lambda_1)^k\boldsymbol x_1\,和\,c_2(\lambda_2)^k\boldsymbol x_2\,得到\,\boldsymbol u_k:\end{array}\\\,\\\boldsymbol u_k=A^k\boldsymbol u_0\kern 15pt\boldsymbol u_k=\frac{1}{3}2^k\begin{bmatrix}2\\1\end{bmatrix}+\frac{1}{3}(-1)^k\begin{bmatrix}\kern 7pt1\\-1\end{bmatrix}=\begin{bmatrix}F_{k+1}\\F_k\end{bmatrix} 步骤1u0=[10]=31[21]+31[1−1],所以c1=c2=31步骤2分别左乘两部分(λ1)k=2k和(λ2)k=(−1)k步骤3组合特征向量c1(λ1)kx1和c2(λ2)kx2得到uk:uk=Aku0uk=312k[21]+31(−1)k[1−1]=[Fk+1Fk]新的数是 F k = 2 k − ( − 1 ) k 3 F_k=\displaystyle\frac{2^k-(-1)^k}{3} Fk=32k−(−1)k,在 0 , 1 , 1 , 3 0,1,1,3 0,1,1,3 后的数字是 F 4 = 15 3 = 5 F_4=\displaystyle\frac{15}{3}=5 F4=315=5。
这些数字的例子后面都有一个基本的思想:跟随特征向量。它是从线性代数到微分方程的重要链接( λ k \lambda^k λk 会变成 e λ t e^{\lambda t} eλt);变化到特征向量基也会用到,最好的例子就是傅里叶级数(Fourier series),是由 d / d x \textrm d/\textrm dx d/dx 的特征向量 e i k x e^{ikx} eikx 创建的。