1. 程式人生 > >MIT 線性代數導論 第二十二講:矩陣對角化和冪

MIT 線性代數導論 第二十二講:矩陣對角化和冪

本講的主要內容

  • 對角化矩陣的概念以及方法
  • 計算矩陣的冪的對角化方法
  • 幾個例子

對角化矩陣、計算矩陣的冪

對於一個有 nn 個不同特徵向量(其實就是說所有的特徵值均不同)的矩陣 AA,講它的 nn 個特徵向量組成一個矩陣 SS ,如果我們計算 ASAS 可以有如下過程: AS=A(x1,x2,x3...xn)=(λ1x1,λ2x2,....λnxn)=(x1,x2,x3...xn)(λ1...0.........0...λn)=SΛ AS = A(x_{1}, x_{2}, x_{3}...x_{n}) = (\lambda_{1}x_{1},\lambda_{2}x_{2},....\lambda_{n}x_{n})=(x_{1}, x_{2},x_{3}...x_{n})\begin{pmatrix} \lambda_{1} &... & 0\\ ... & ... & ...\\ 0 &... & \lambda_{n} \end{pmatrix}=S\Lambda

一定注意上面的式子成立的條件是矩陣有 nn 個不同的特徵向量,如果我們將上面的結論繼續做變化: A=SΛS1 A = S\Lambda S^{-1}

那麼現在就可以拿到這個形式很好看的等式了。使用這個等式我們可以簡化很多矩陣的冪的計算,例如計算 A2A^{2}: A2=(SΛS1)2=SΛS1SΛS1=SΛ2S1 A^{2} = (S\Lambda S^{-1})^{2} =S\Lambda S^{-1}S\Lambda S^{-1} = S\Lambda^{2}S^{-1}

利用對角化計算差分方程

對於矩陣 AA ,如果有列向量 uiu_{i} 總有 ui+1=Auiu_{i+1} = Au_{i},現在已知 A,u0A, u_{0},如何求解 uku_{k}? 首先展開這個遞推式: uk=Auk1=...=Aku0 u_{k} = Au_{k-1}=... = A^{k}u_{0} 然後把矩陣對角化(當然,這個問題的前提是矩陣可以對角化),有:uk=SΛkS1u0u_{k} = S\Lambda^{k}S^{-1}u_{0}

=SΛkS1u0,這時候,前提條件中的 nn 個線性無關的特徵向量就有用了, 對於 u0u_{0} 這個nn維向量,可以用這 nn 個特徵向量來表示,可以有: u0=c1x1+c2x2+...+cnxn=(x1,x2,...,xn)(c1c2...cn)=SC u_{0} = c_{1}x_{1} + c_{2}x_{2} +...+c_{n}x_{n} = (x_{1}, x_{2}, ...,x_{n})\begin{pmatrix} c_{1}\\ c_{2}\\ ... \\ c_{n} \end{pmatrix}= SC 其中 SS 跟前面對角化中的矩陣是一樣的,都是特徵向量組成的矩陣,把這個式子代入前面的 Aku0A^{k}u_{0},就可以得到最終的結論: uk=Aku0=SΛkC u_{k} = A^{k}u_{0} = S\Lambda^{k}C 計算這個表示線性組合的向量 CC 還是比較簡單的,所以計算的過程簡單了一些。

計算Fibonacci 數列

這一個例子是上面的一個應用,首先我們知道斐波那契數列是: 0,1,1,2,3,5...... 0,1,1,2,3,5...... 也就是: F(n)=F(n1)+F(n2),(n>=3) F(n) = F(n-1) + F(n-2) ,(n>=3) 為了使用對角化的知識計算,令 uk=(Fk+1Fk)u_{k} = \begin{pmatrix} F_{k+1}\\ F_{k} \end{pmatrix},構造差分方程組: {F(k+2)=F(k+1)+F(k)F(k+1)=F(k+1) \left\{\begin{matrix} F(k+2) = F(k+1) + F(k)\\ F(k+1) = F(k+1) \end{matrix}\right. 這時候,我們可以得到: uk+1=AukA=(1110) u_{k+1} = Au_{k},A=\begin{pmatrix} 1 &1 \\ 1&0 \end{pmatrix} 這樣,我們就構造了上面一樣的遞推形式,接下來按照對角化矩陣 AA 然後就可以計算 SΛkCS\Lambda^{k}C就可以快速計算了。

用線性代數解決斐波那契數列,感覺真的是…Amazing!,學數學的人真厲害啊。

以上~