一、对角化矩阵
当 x\boldsymbol xx 是 AAA 的一个特征值时,则 AAA 乘上 x\boldsymbol xx 就是一个数字 λ\lambdaλ 乘 x\boldsymbol xx:Ax=λxA\boldsymbol x=\lambda \boldsymbol xAx=λx,这样矩阵所带来的困难就不存在了,我们就不用处理一个相互联系的系统,只需要分开处理特征向量。就像对角矩阵一样,它没有非对角线上的联系。对角矩阵的 100100100 次方就很容易计算。
我们使用合适的特征向量将矩阵 AAA 转换成对角矩阵 Λ\LambdaΛ。 这个矩阵的形式是关键的概念,我们先由一个重要的计算开始,AX=XΛAX=X\LambdaAX=XΛ。
对角化\kern 10pt假设 n×nn\times nn×n 的矩阵 AAA 有 nnn 个线性无关的特征向量 x1,x2,⋯ ,xn\boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_nx1,x2,⋯,xn。将它们放在特征向量矩阵(egienvector matrix)X\pmb XX 的列中,则 X−1AXX^{-1}AXX−1AX 就是特征值矩阵(eigenvalue matrix) Λ\pmb{\Lambda}Λ:特征向量矩阵 X特征值矩阵 ΛX−1AX=Λ=[λ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)
矩阵 AAA 被 “对角化(diagonalized)”,我们使用大些的 Λ\LambdaΛ 表示特征值矩阵,因为小的 λ′s\lambda'sλ′s(特征值)都在它的对角线上。
【例1】AAA 是三角矩阵,所有它的特征值在对角线上:λ=1\lambda=1λ=1 和 λ=6\lambda=6λ=6。特征向量进到 X 中 [10] [11][1−101][1506][1101]=[1006]X−1AX=Λ\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−1A=X\Lambda X^{-1}A=XΛX−1,则 A2=XΛX−1XΛX−1A^2=X\Lambda X^{-1}X\Lambda X^{-1}A2=XΛX−1XΛX−1,所以 A2=XΛ2X−1\pmb{A^2=X\Lambda^2X^{-1}}A2=XΛ2X−1。A2 有和 X 中相同的特征向量,在 Λ2 中是 A 的特征值的平方。\pmb{A^2\,有和\,X\,中相同的特征向量,在\,\Lambda^2\,中是\,A\,的特征值的平方。}A2有和X中相同的特征向量,在Λ2中是A的特征值的平方。为什么 AX=XΛAX=X\LambdaAX=XΛ 呢? AAA 乘上它的特征向量(特征向量就是 XXX 的列),AXAXAX 的第一列是 Ax1A\boldsymbol x_1Ax1,就是 λ1x1\lambda_1\boldsymbol x_1λ1x1,XXX 的每一列都被它的特征值乘:A 乘 XAX=A[x1⋯xn ]=[λ1x1⋯λnxn ]{\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=Ax1⋯xn=λ1x1⋯λnxn技巧是将矩阵 AXAXAX 分割成 XXX 乘 Λ\LambdaΛ:X 乘 Λ[λ1x1⋯λnxn ]=[x1⋯xn ][λ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\LambdaX乘Λλ1x1⋯λnxn=x1⋯xnλ1⋱λn=XΛ这些矩阵保持右序,则 λ1\lambda_1λ1 乘第一列 x1\boldsymbol x_1x1 即如上式。此时我们完成了对角化,我们可以将 AX=XΛAX=X\LambdaAX=XΛ 写成两种方式:
AX=XΛ可以写成X−1AX=Λ或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)
矩阵 XXX 有逆矩阵,因为它的列(AAA 的特征向量)刚开始我们假设是线性无关的,如果没有 nnn 个无关的特征向量,我们就无法对角化。
AAA 和 Λ\LambdaΛ 有相同的特征值 λ1,λ2,⋯ ,λn\lambda_1,\lambda_2,\cdots,\lambda_nλ1,λ2,⋯,λn,它们的特征向量不同。原始的特征向量 x1,x2,⋯ ,xn\boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_nx1,x2,⋯,xn 的工作就是对角化 AAA,这些在 XXX 中的特征向量得到 A=XΛX−1A=X\Lambda X^{-1}A=XΛX−1,这个式子简洁,但是它有重要意义。 第 kkk 次方是 Ak=XΛkX−1A^{k} = X\Lambda^kX^{-1}Ak=XΛkX−1,这个很容易计算:Ak=(XΛX−1)(XΛX−1)⋯(XΛX−1)=XΛkX−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 的幂[1506]k=[1101][16k][1−101]=[16k−106k]=Ak\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=1k=1k=1 时得到 AAA;当 k=0k=0k=0 时得 A0=IA^0=IA0=I(λ0=1\lambda^0=1λ0=1);当 k=−1k=-1k=−1 时得到 A−1A^{-1}A−1;当 k=2k=2k=2 时 A2=[135036]A^2=\begin{bmatrix}1&35\\0&36\end{bmatrix}A2=[103536] 这个公式都适用。
下面是关于 Λ\LambdaΛ 的 444 个小注解:
注解1: 假设特征值 λ1,λ2,⋯ ,λn\lambda_1,\lambda_2,\cdots,\lambda_nλ1,λ2,⋯,λn 都不相同,则 nnn 个特征向量 x1,x2,⋯ ,xn\boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_nx1,x2,⋯,xn 会自动无关,特征向量矩阵 XXX 可逆。任何的没有重复特征值的矩阵 AAA 都可以对角化。
注解2: 我们可以用任意的非零常数乘上特征向量。A(cx)=λ(cx)A(c\boldsymbol x)=\lambda(c\boldsymbol x)A(cx)=λ(cx) 任然成立。例 111 中,我们可以将 x=(1,1)\boldsymbol x=(1,1)x=(1,1) 除以 2\sqrt22 来生成一个单位向量。
MATLAB 和几乎所有的其它代码都是得到长度 ∣∣x∣∣=1||\boldsymbol x||=1∣∣x∣∣=1 的特征向量。
注解3: XXX 中的特征向量的顺序和 Λ\LambdaΛ 中特征值的顺序一样。要反转 Λ\LambdaΛ 的顺序,也要在 XXX 中将特征向量 (1,1)(1,1)(1,1) 放在 $(1,0) $ 前:新顺序 6,1[011−1][1506][1110]=[6001]=Λ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要对角化 AAA 一定要使用特征向量矩阵,由 X−1AX=ΛX^{-1}AX=\LambdaX−1AX=Λ 可知 AX=XΛAX=X\LambdaAX=XΛ,假设 XXX 的第一列是 x\boldsymbol xx,则 AXAXAX 和 XΛX\LambdaXΛ 的第一列是 AxA\boldsymbol xAx 和 λ1x\lambda_1\boldsymbol xλ1x,要想它们相等,则 x\boldsymbol xx 一定要是特征向量。
注解4:(重复特征值的重复警告)有些矩阵的特征向量很少,这种矩阵无法对角化,下面是两个示例:无法对角化A=[1−11−1]和B=[0101]\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]它们的特征值恰好都是 000 和 000,λ=0\lambda=0λ=0 并没有什么特殊的,它们的问题是 λ\lambdaλ 的重复,第一个矩阵所有的特征向量都是 (1,1)(1,1)(1,1) 的倍数:特征向量只有一条直线Ax=0x表示[1−11−1][x]=[00]且x=c[11]\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]并没有第二个方向的特征向量,所有这个不同寻常的矩阵 AAA 无法对角化。
这些矩阵是用来判断关于特征向量叙述的最佳例子,在很多判断问题中,无法对角化的矩阵会得到错误的结果。
注意可逆与可对角化之间没有什么联系:
- 可逆性与特征值有关(λ=0\lambda=0λ=0 或 λ≠0\lambda\neq0λ=0)
- 可对角化和特征向量相关(XXX 中的特征向量是否足够)
每个特征值至少有一个特征向量!A−λIA-\lambda IA−λI 是奇异的,如果 (A−λI)x=0(A-\lambda I)\boldsymbol x=\boldsymbol 0(A−λI)x=0 可以得到 x=0\boldsymbol x=\boldsymbol 0x=0,则 λ\lambdaλ 不是特征值。这说明在求解 det(A−λI)=0\det(A-\lambda I)=0det(A−λI)=0 时出现了错误。
不同的 λ\lambdaλ 有无关的 x\boldsymbol xx\kern 8pt全部不相同的特征值对应的特征向量 x1,x2,⋯ ,xj\boldsymbol x_1,\boldsymbol x_2,\cdots,\boldsymbol x_jx1,x2,⋯,xj 都是线性无关的。任意的 n×nn\times nn×n 矩阵有 nnn 个不同的特征值(没有重复的 λ′s\lambda'sλ′s)一定可以对角化。
证明: 假设 c1x1+c2x2=0c_1\boldsymbol x_1+c_2\boldsymbol x_2=\boldsymbol 0c1x1+c2x2=0。左乘 AAA 得到 c1λ1x1+c2λ2x2=0c_1\lambda_1\boldsymbol x_1+c_2\lambda_2\boldsymbol x_2=\boldsymbol 0c1λ1x1+c2λ2x2=0,用 λ2\lambda_2λ2 乘得到 c1λ2x1+c2λ2x2=0c_1\lambda_2\boldsymbol x_1+c_2\lambda_2\boldsymbol x_2=\boldsymbol 0c1λ2x1+c2λ2x2=0,然后将两式相减:相减得到(λ1−λ2)c1x1=0因此c1=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 都不相同且 x1≠0\boldsymbol x_1\neq\boldsymbol 0x1=0,所有我们可以得到 c1=0c_1=0c1=0。同理可得 c2=0c_2=0c2=0。只有组合 c1=c2=0c_1=c_2=0c1=c2=0 可以得到 c1x1+c2x2=0c_1\boldsymbol x_1+c_2\boldsymbol x_2=\boldsymbol 0c1x1+c2x2=0,所以特征向量 x1\boldsymbol x_1x1 和 x2\boldsymbol x_2x2 一定是无关的。
这个证明可以直接扩展到 jjj 个特征向量,假设 c1x1+c2x2+⋯+cjxj=0c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_j\boldsymbol x_j=\boldsymbol 0c1x1+c2x2+⋯+cjxj=0,AAA 乘上式,然后 λj\lambda_jλj 乘上式,得到的两个式子相减,则 xj\boldsymbol x_jxj 的系数是 λj−λj=0\lambda_j-\lambda_j=0λj−λj=0,所以可以消去 xj\boldsymbol x_jxj;然后分别用 AAA 和 λj−1\lambda_{j-1}λj−1 乘得到的式子再相减,就可以消去 xj−1\boldsymbol x_{j-1}xj−1,最终只剩下 x1\boldsymbol x_1x1:我们得到(λ1−λ2)(λ1−λ3)⋯(λ1−λj)c1x1=0一定有c1=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)同理可得每个 ci=0c_i=0ci=0,当所有的 λ′s\lambda'sλ′s 都不相等,特征向量无关。所有的特征向量构成特征向量矩阵 XXX 的列。
【例2】A 的幂\pmb{A\,的幂}\kern 9ptA的幂马尔可夫矩阵 A=[0.80.30.20.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−1A=X\Lambda X^{-1}A=XΛX−1 使得这些特征值在 Λ\LambdaΛ 的对角线上:马尔可夫例子[0.80.30.20.7]=[0.610.4−1][1000.5][110.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) 在 XXX 的列,它们也是 A2A^2A2 的特征向量。A2A^2A2 有同样的 XXX,A2A^2A2 的特征向量矩阵是 Λ2\Lambda^2Λ2。
A2A^2A2 有相同的 XX\kern 15ptX A2=XΛX−1XΛX−1=XΛ2X−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)
保持这个形式,就可以看到为什么高次幂 AkA^kAk 趋近一个 “稳定状态”:A 的幂Ak=XΛkX−1=[0.610.4−1][1k00(0.5)k][110.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]当 kkk 变大,(0.5)k(0.5)^k(0.5)k 变小,极限时会消失,这个极限就是 A∞A^\inftyA∞:极限 k→∞A∞=[0.610.4−1][1000][110.4−0.6]=[0.60.60.40.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&-0.6\end{bmatrix}=\begin{bmatrix}0.6&0.6\\0.4&0.4\end{bmatrix}极限k→∞A∞=[0.60.41−1][1000][10.41−0.6]=[0.60.40.60.4]这个极限的两个列都是特征向量 x1\boldsymbol x_1x1。
问题什么时候Ak→零矩阵答案所有的 ∣λ∣<1{\color{blue}问题}\kern 5pt\boxed{什么时候 A^k\rightarrow 零矩阵}\kern 15pt{\color{blue}答案}\kern 5pt\boxed{所有的\,|\lambda|<1}问题什么时候Ak→零矩阵答案所有的∣λ∣<1
二、相似矩阵:相同的特征值
假设特征值矩阵 Λ\LambdaΛ 固定,随着特征向量矩阵 XXX 的改变,我们得到一整个家族里的不同矩阵 A=XΛX−1A=X\Lambda X^{-1}A=XΛX−1 —— 它们都和 Λ\LambdaΛ 有相同的特征值。所有的这些矩阵 AAA(有相同的 Λ\LambdaΛ)称为相似(similar)。
这个概念可以扩展至无法对角化的矩阵,我们选择一个常数矩阵(不需要是 Λ\LambdaΛ),我们观察一下这整个家族的矩阵 A=BCB−1\pmb{A=BCB^{-1}}A=BCB−1,这里任意的可逆矩阵 BBB 都可以,同样有 AAA 和 CCC 相似。
我们用 CCC 代替 Λ\LambdaΛ,因为 CCC 不一定是对角矩阵;用 BBB 代替 XXX,因为 BBB 的列不一定是特征向量。我们只需要 BBB 是可逆的 —— 它的列可以是 Rn\pmb{\textrm R}^nRn 的任意一组基。只要满足这些条件的就是相似矩阵。相似矩阵 AAA 和 CCC 有相同的特征值。
所有的矩阵 A=BCB−1A=BCB^{-1}A=BCB−1 都是 “相似” 的,它们和 CCC 有相同的特征值。
证明: 假设 Cx=λxC\boldsymbol x=\lambda\boldsymbol xCx=λx,则 BCB−1BCB^{-1}BCB−1 有相同的特征值 λ\lambdaλ 和新的特征向量 BxB\boldsymbol xBx:相同的 λ(BCB−1)(Bx)=BCx=Bλx=λ(Bx)(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)一个固定的矩阵 CCC 可以生成一个家族的相似矩阵 BCB−1BCB^{-1}BCB−1,BBB 是任意的可逆矩阵。当 CCC 是单位矩阵时,这个家族很小,唯一的成员是 BIB−1=IBIB^{-1}=IBIB−1=I,单位矩阵是唯一的所有的特征值 λ=1\lambda=1λ=1 且可以对角化的矩阵。
当 λ=1\lambda=1λ=1 和 111 但是只有一个特征向量(无法对角化)时,这个家族会大一些。最简单的 CCC 是若尔当形(Jordan form)。所有相似的 A′sA'sA′s 有两个参数 rrr 和 sss,它们不同时为零:总是有行列式 det=1\det=1det=1 和迹 trace=2trace=2trace=2。C=[1101]=若尔当形得到的 A=BCB−1=[1−rsr2−s21+rs](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 和 000,这是不重复的两个特征值。则现在的整个家族都可以对角化,且有相同的特征值矩阵 Λ\LambdaΛ。我们得到任意的 2×22\times22×2 的矩阵特征值都是 111 和 000,迹是 111 且行列式为零:所有的相似矩阵Λ=[1000]A=[1100] 或 A=[0.50.50.50.5] 或 任意的 A=xyTxTy\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这个家族包含所有的 A2=AA^2=AA2=A 的矩阵、包含当 B=IB=IB=I 时的 A=ΛA=\LambdaA=Λ。当 AAA 对称时这些也是投影矩阵。特征值 111 和 000 让生活变得简单。
三、斐波那契数
斐波那契数(Fibonacci Numbers)是很著名的数列,特征值可以告诉我们斐波那契数是如何快速增长的。每个新的斐波那契数都是前两个斐波那契数 F′sF'sF′s 的和:
序列0,1,1,2,3,5,8,13,⋯\kern 8pt\color{blue}0,1,1,2,3,5,8,13,\cdots\kern 10pt0,1,1,2,3,5,8,13,⋯来自于Fk+2=Fk+1+Fk\kern 10pt\color{blue}F_{k+2}=F_{k+1}+F_kFk+2=Fk+1+Fk
这些数字会以各种神奇的方式出现。植物和树是以螺旋形式生长的,如果把位于枝干或茎的周围的同一方向的最近的两片叶子作为周期的开始和结束,这个周期中的叶子会沿着枝干或茎绕很多圈。梨树有 888 片叶子共绕 333 圈,柳树有 131313 片叶子绕 555 圈。而向日葵花盘的螺旋线也符合斐波那契数,比较大的向日葵逆顺螺旋线有 144144144 和 233233233 个,这是斐波那契数列中的 F12F_{12}F12 和 F13F_{13}F13。我们的问题比较基础。
问题:求出斐波那契数 F100\pmb{F_{100}}F100: 使用公式 Fk+2=Fk+1+FkF_{k+2}=F_{k+1}+F_{k}Fk+2=Fk+1+Fk 一步一步的计算是很慢的方法。将 F6=8F_6=8F6=8 加上 F7=13F_7=13F7=13 可以得到 F8=21F_8=21F8=21,最终可以求得 F100F_{100}F100。但是线性代数提供了更好的方法。
关键是由一个矩阵方程 uk+1=Auk\boldsymbol u_{k+1}=A\boldsymbol u_{k}uk+1=Auk 开始,这是第一步。第二步我们将两个斐波那契数放在一个向量中来应用适配这些规则,就可以得到矩阵 AAA。
令 uk=[Fk+1Fk]\kern 8pt{\color{blue}\boldsymbol u_k=\begin{bmatrix}F_{k+1}\\\\F_k\end{bmatrix}}\kern 5ptuk=Fk+1Fk规则 Fk+2=Fk+1+FkFk+1=Fk+1\begin{array}{l}F_{k+2}=F_{k+1}+F_k\\F_{k+1}=F_{k+1}\end{array}\kern 5ptFk+2=Fk+1+FkFk+1=Fk+1 就是uk+1=[1110]uk\kern 5pt\color{blue}\boldsymbol u_{k+1}=\begin{bmatrix}1&1\\\\1&0\end{bmatrix}\boldsymbol u_kuk+1=1110uk(6.2.7)\kern 60pt(6.2.7)(6.2.7)
每一步左乘 A=[1110]A=\begin{bmatrix}1&1\\1&0\end{bmatrix}A=[1110],100100100 步后就可以得到 u100=A100u0\boldsymbol u_{100}=A^{100}\boldsymbol u_0u100=A100u0:u0=[10],u1=[11],u2=[21],u3=[32],⋯ ,u100=[F101F100]\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]这个问题就变成了特征值问题,从 AAA 的对角线减去 λ\lambdaλ 得:A−λI=[1−λ11−λ]得det(A−λI)=λ2−λ−1A-\lambda I=\begin{bmatrix}1-\lambda&1\\1&-\lambda\end{bmatrix}\kern 10pt得\kern 10pt\det(A-\lambda I)=\lambda^2-\lambda-1A−λI=[1−λ11−λ]得det(A−λI)=λ2−λ−1方程 λ2−λ−1=0\lambda^2-\lambda-1=0λ2−λ−1=0 由求根公式 −b±b2−4ac2a\displaystyle\frac{-b±\sqrt{b^2-4ac}}{2a}2a−b±b2−4ac 可以解出两个特征值:特征值λ1=1+52≈1.618和λ2=1−52≈−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由特征值可以求得特征向量 x1=(λ1,1)\boldsymbol x_1=(\lambda_1,1)x1=(λ1,1) 和 x2=(λ2,1)\boldsymbol x_2=(\lambda_2,1)x2=(λ2,1),然后找出得到 u0=(1,0)\boldsymbol u_0=(1,0)u0=(1,0) 的特征向量的组合:[10]=1λ1−λ2([λ11]−[λ21])或u0=x1−x2λ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)第三步是 u0\boldsymbol u_0u0 左乘 A100A^{100}A100 得到 u100\boldsymbol u_{100}u100,特征向量 x1\boldsymbol x_1x1 和 x2\boldsymbol x_2x2 仍然分开,分别用 (λ1)100(\lambda_1)^{100}(λ1)100 和 (λ2)100(\lambda_2)^{100}(λ2)100 乘上它们:来自 u0 的第 100 步u100=(λ1)100x1−(λ2)100x2λ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)我们需要的 F100F_{100}F100 等于 u100\boldsymbol u_{100}u100 的第二个分量,x1\boldsymbol x_1x1 和 x2\boldsymbol x_2x2 的第二分量都是 111,λ1=1+52\lambda_1=\displaystyle\frac{1+\sqrt5}{2}λ1=21+5 和 λ2=1−52\lambda_2=\displaystyle\frac{1-\sqrt5}{2}λ2=21−5 的差是 5\sqrt55,且 λ2100≈0\lambda_2^{100}\approx0λ2100≈0。第 100 个斐波那契数=λ1100−λ2100λ1−λ2=最接近 15(1+52)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)每个 FkF_kFk 都是整数,比值 F101/F100F_{101}/F_{100}F101/F100 非常接近比值 (1+5)/2(1+\sqrt5)/2(1+5)/2。希腊人称这个数是 “黄金分割(golden mean)”,因为某些原因,矩阵的边长比例是 1.6181.6181.618 和 111 时会非常优美。
由特征值我们可以求得斐波那契数的通项公式 Fn=15[(1+52)n−(1−52)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],第 100100100 项是 F100=354224848179261915075F_{100}=354224848179261915075F100=354224848179261915075。
四、矩阵的幂 AkA^kAk
斐波那契的例子是典型的差分方程 uk+1=Auk\boldsymbol u_{k+1}=A\boldsymbol u_kuk+1=Auk。每步都左乘 AAA, 解是 uk=Aku0\boldsymbol u_k=A^k\boldsymbol u_0uk=Aku0。我们要在三步内使用对角化矩阵快速计算 AkA^kAk 和 uk\boldsymbol u_kuk。
特征向量矩阵 XXX 可以得到 A=XΛX−1A=X\Lambda X^{-1}A=XΛX−1,这也是矩阵的一种分解,就像 A=LUA=LUA=LU 和 A=QRA=QRA=QR 分解一样。新的分解方法很适合计算矩阵的幂,因为每次 X−1X^{-1}X−1 乘 XXX 都会得到 III:A 的幂Aku0=(XΛX−1)(XΛX−1)⋯(XΛX−1)u0=XΛkX−1u0\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_0A的幂Aku0=(XΛX−1)(XΛX−1)⋯(XΛX−1)u0=XΛkX−1u0下面将 XΛkX−1u0X\Lambda^kX^{-1}\boldsymbol u_0XΛkX−1u0 分解成三步,以展示其中特征值是如何起作用的:
- 将 u0写成特征向量的组合c1x1+c2x2+⋯+cnxn\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−1u0\boldsymbol c=X^{-1}\boldsymbol u_0c=X−1u0。
- 每个特征向量 xi 乘上 (λi)k\color{blue}每个特征向量\,\boldsymbol x_i\,乘上\,(\lambda_i)^k每个特征向量xi乘上(λi)k。现在我们有 ΛkX−1u0=Λkc\Lambda^kX^{-1}\boldsymbol u_0=\Lambda^k\boldsymbol cΛkX−1u0=Λkc, c=X−1Xc\boldsymbol c=X^{-1}X\boldsymbol cc=X−1Xc 中的特征向量矩阵 XXX 中的 xi\boldsymbol x_ixi 每个乘上 (λi)k(\lambda_i)^k(λi)k,即得到 Λkc\Lambda^k\boldsymbol cΛkc。
- 将每一部分的 ci(λi)kxi 加起来求出解 uk=Aku0\color{blue}将每一部分的\,c_i(\lambda_i)^k\boldsymbol x_i\,加起来求出解\,\boldsymbol u_k=A^k\boldsymbol u_0将每一部分的ci(λi)kxi加起来求出解uk=Aku0。这个就是 XΛkX−1u0X\Lambda^k X^{-1}\boldsymbol u_0XΛkX−1u0。
uk+1=Auk 的解uk=Aku0=c1(λ1)kx1+c2(λ2)kx2+⋯+cn(λn)kxn(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)
使用矩阵语言 AkA^kAk 等于 (XΛX−1)k(X\Lambda X^{-1})^k(XΛX−1)k 就是 XXX 乘 Λk\Lambda^kΛk 乘 X−1X^{-1}X−1。在步骤 111 中,XXX 中的特征向量得到组合 u0=c1x1+c2x2+⋯+cnxn\boldsymbol u_0=c_1\boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_nu0=c1x1+c2x2+⋯+cnxn 中的 c′sc'sc′s:步骤 1u0=[ x1⋯xn ][c1⋮cn],这个就是 u0=Xc(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⋯xnc1⋮cn,这个就是u0=Xc(6.2.12)步骤 111 的系数是 c=X−1u0\boldsymbol c=X^{-1}\boldsymbol u_0c=X−1u0。然后步骤 222 左乘 Λk\Lambda^kΛk,最终的结果是步骤 333 的 uk=∑ci(λi)kxi\boldsymbol u_k=\sum c_i(\lambda_i)^k\boldsymbol x_iuk=∑ci(λi)kxi,这个就是 XXX 和 Λk\Lambda^kΛk 和 X−1u0X^{-1}\boldsymbol u_0X−1u0 的乘积:Aku0=XΛkX−1u0=XΛkc=[x1⋯xn ][(λ1)k ⋱ (λn)k][c1⋮cn](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)kc1⋮cn(6.2.13)这个结果就是 uk=c1(λ1)kx1+c2(λ2)kx2+⋯+cn(λn)kxn\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_nuk=c1(λ1)kx1+c2(λ2)kx2+⋯+cn(λn)kxn,它是 uk+1=Auk\boldsymbol u_{k+1}=A\boldsymbol u_kuk+1=Auk 的解。
【例3】从 u0=(1,0)\boldsymbol u_0=(1,0)u0=(1,0) 开始,计算这个快速斐波那契数的 Aku0A^k\boldsymbol u_0Aku0:A=[1210]有 λ1=2,x1=[21]和 λ2=−1,x2=[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]这个矩阵很像斐波那契数,只是规则改为了 Fk+2=Fk+1+2FkF_{k+2}=F_{k+1}+\pmb2F_kFk+2=Fk+1+2Fk,新的数列从 0,1,1,30,1,1,30,1,1,3 开始,由于 λ=2\lambda=2λ=2,所有它们增长的比斐波那契数要更快。
用 3 步求出 uk=Aku0u0=c1x1+c2x2 和 uk=c1(λ1)kx1+c2(λ2)kx2\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步骤 1u0=[10]=13[21]+13[1−1],所以 c1=c2=13 步骤 2分别左乘两部分 (λ1)k=2k 和 (λ2)k=(−1)k 步骤3组合特征向量 c1(λ1)kx1 和 c2(λ2)kx2 得到 uk: uk=Aku0uk=132k[21]+13(−1)k[1−1]=[Fk+1Fk]\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]新的数是 Fk=2k−(−1)k3F_k=\displaystyle\frac{2^k-(-1)^k}{3}Fk=32k−(−1)k,在 0,1,1,30,1,1,30,1,1,3 后的数字是 F4=153=5F_4=\displaystyle\frac{15}{3}=5F4=315=5。
这些数字的例子后面都有一个基本的思想:跟随特征向量。它是从线性代数到微分方程的重要链接(λk\lambda^kλk 会变成 eλte^{\lambda t}eλt);变化到特征向量基也会用到,最好的例子就是傅里叶级数(Fourier series),是由 d/dx\textrm d/\textrm dxd/dx 的特征向量 eikxe^{ikx}eikx 创建的。