MIT 线性代数导论 第二十二讲:矩阵对角化和幂

本讲的主要内容

  • 对角化矩阵的概念以及方法
  • 计算矩阵的幂的对角化方法
  • 几个例子

对角化矩阵、计算矩阵的幂

对于一个有 n n 个不同特征向量(其实就是说所有的特征值均不同)的矩阵 A A ,讲它的 n n 个特征向量组成一个矩阵 S S ,如果我们计算 A S AS 可以有如下过程:
A S = A ( x 1 , x 2 , x 3 . . . x n ) = ( λ 1 x 1 , λ 2 x 2 , . . . . λ n x n ) = ( x 1 , x 2 , x 3 . . . x n ) ( λ 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

一定注意上面的式子成立的条件是矩阵有 n n 个不同的特征向量,如果我们将上面的结论继续做变化:
A = S Λ S 1 A = S\Lambda S^{-1}

那么现在就可以拿到这个形式很好看的等式了。使用这个等式我们可以简化很多矩阵的幂的计算,例如计算 A 2 A^{2} :
A 2 = ( S Λ S 1 ) 2 = S Λ S 1 S Λ S 1 = S Λ 2 S 1 A^{2} = (S\Lambda S^{-1})^{2} =S\Lambda S^{-1}S\Lambda S^{-1} = S\Lambda^{2}S^{-1}

利用对角化计算差分方程

对于矩阵 A A ,如果有列向量 u i u_{i} 总有 u i + 1 = A u i u_{i+1} = Au_{i} ,现在已知 A , u 0 A, u_{0} ,如何求解 u k u_{k}
首先展开这个递推式:
u k = A u k 1 = . . . = A k u 0 u_{k} = Au_{k-1}=... = A^{k}u_{0}
然后把矩阵对角化(当然,这个问题的前提是矩阵可以对角化),有: u k = S Λ k S 1 u 0 u_{k} = S\Lambda^{k}S^{-1}u_{0} ,这时候,前提条件中的 n n 个线性无关的特征向量就有用了, 对于 u 0 u_{0} 这个 n n 维向量,可以用这 n n 个特征向量来表示,可以有:
u 0 = c 1 x 1 + c 2 x 2 + . . . + c n x n = ( x 1 , x 2 , . . . , x n ) ( c 1 c 2 . . . c n ) = S C 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
其中 S S 跟前面对角化中的矩阵是一样的,都是特征向量组成的矩阵,把这个式子代入前面的 A k u 0 A^{k}u_{0} ,就可以得到最终的结论:
u k = A k u 0 = S Λ k C u_{k} = A^{k}u_{0} = S\Lambda^{k}C
计算这个表示线性组合的向量 C C 还是比较简单的,所以计算的过程简单了一些。

计算Fibonacci 数列

这一个例子是上面的一个应用,首先我们知道斐波那契数列是:
0 , 1 , 1 , 2 , 3 , 5...... 0,1,1,2,3,5......
也就是:
F ( n ) = F ( n 1 ) + F ( n 2 ) , ( n > = 3 ) F(n) = F(n-1) + F(n-2) ,(n>=3)
为了使用对角化的知识计算,令 u k = ( F k + 1 F k ) 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.
这时候,我们可以得到:
u k + 1 = A u k A = ( 1 1 1 0 ) u_{k+1} = Au_{k},A=\begin{pmatrix} 1 &1 \\ 1&0 \end{pmatrix}
这样,我们就构造了上面一样的递推形式,接下来按照对角化矩阵 A A 然后就可以计算 S Λ k C S\Lambda^{k}C 就可以快速计算了。

用线性代数解决斐波那契数列,感觉真的是…Amazing!,学数学的人真厉害啊。

以上~

猜你喜欢

转载自blog.csdn.net/sinat_34328764/article/details/83269377