线性代数及矩阵论(六)

线性代数原文 MIT 18.06 线性代数笔记
矩阵论笔记来自 工程矩阵理论
综合线性代数 机器学习的数学基础
配合视频 线性代数 工程矩阵理论

二十一、特征值和特征向量

1.特征值、特征向量的由来

给定矩阵 A A A,矩阵 A A A乘以向量 x x x,就像是使用矩阵 A A A作用在向量 x x x上,最后得到新的向量 A x Ax Ax。在这里,矩阵 A A A就像是一个函数,接受一个向量 x x x作为输入,给出向量 A x Ax Ax作为输出。

在这一过程中,我们对一些特殊的向量很感兴趣,他们在输入 x x x输出 A x Ax Ax的过程中始终保持同一个方向,这是比较特殊的,因为在大多情况下, A x Ax Ax x x x指向不同的方向。在这种特殊的情况下, A x Ax Ax平行于 x x x,我们把满足这个条件的 x x x成为特征向量(Eigen vector)。这个平行条件用方程表示就是:

A x = λ x (1) Ax=\lambda x\tag{1} Ax=λx(1)

  • 对这个式子,我们试着计算特征值为 0 0 0的特征向量,此时有 A x = 0 Ax=0 Ax=0,也就是特征值为 0 0 0的特征向量应该位于 A A A的零空间中。

    也就是说,如果矩阵是奇异的,那么它将有一个特征值为 λ = 0 \lambda = 0 λ=0

  • 我们再来看投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT的特征值和特征向量。用向量 b b b乘以投影矩阵 P P P得到投影向量 P b Pb Pb,在这个过程中,只有当 b b b已经处于投影平面(即 A A A的列空间)中时, P b Pb Pb b b b才是同向的,此时 b b b投影前后不变( P b = 1 ⋅ b Pb=1\cdot b Pb=1b)。

    即在投影平面中的所有向量都是投影矩阵的特征向量,而他们的特征值均为 1 1 1

    再来观察投影平面的法向量,也就是投影一讲中的 e e e向量。我们知道对于投影,因为 e ⊥ C ( A ) e\bot C(A) eC(A),所以 P e = 0 e Pe=0e Pe=0e,即特征向量 e e e的特征值为 0 0 0

    于是,投影矩阵的特征值为 λ = 1 , 0 \lambda=1, 0 λ=1,0

  • 再多讲一个例子,二阶置换矩阵 A = [ 0 1 1 0 ] A=\begin{bmatrix}0&1\\1&0\end{bmatrix} A=[0110],经过这个矩阵处理的向量,其元素会互相交换。

    那么特征值为 1 1 1的特征向量(即经过矩阵交换元素前后仍然不变)应该型为 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11]

    特征值为 − 1 -1 1的特征向量(即经过矩阵交换元素前后方向相反)应该型为 [ 1 − 1 ] \begin{bmatrix}1\\-1\end{bmatrix} [11]

再提前透露一个特征值的性质:对于一个 n × n n\times n n×n的矩阵,将会有 n n n个特征值,而这些特征值的和与该矩阵对角线元素的和相同,因此我们把矩阵对角线元素称为矩阵的迹(trace)。 ∑ i = 1 n λ i = ∑ i = 1 n a i i \sum_{i=1}^n \lambda_i=\sum_{i=1}^n a_{ii} i=1nλi=i=1naii

在上面二阶转置矩阵的例子中,如果我们求得了一个特征值 1 1 1,那么利用迹的性质,我们就可以直接推出另一个特征值是 − 1 -1 1

一些结论:

  1. 对于方阵 A A A和方阵 B B B A B AB AB B A BA BA有相同的特征值
  2. 若A的特征值是 λ {\lambda} λ,那么 k A , A m , a A + b E , A − 1 , A ∗ , a A − 1 + b A ∗ kA,A^{m},aA+bE,A^{-1},A^{*},aA^{-1}+bA^{*} kAAmaA+bEA1AaA1+bA的特征值是 k λ , λ m , a λ + b , λ − 1 , ∣ A ∣ λ , a + b ∣ A ∣ λ k{\lambda},{\lambda}^{m},a{\lambda}+b,{\lambda}^{-1},\frac{|A|}{\lambda},\frac{a+b|A|}{\lambda} kλλmaλ+bλ1λAλa+bA(从特征值的意义上理解)
  3. 若矩阵 A A A的特征值是 λ {\lambda} λ,那么矩阵 f ( A ) f(A) f(A)的特征值是 f ( λ ) f({\lambda}) f(λ) f ( x ) f(x) f(x)可以是任意函数,包括 e x e^x ex,如 e A e^A eA的特征值是 e λ 1 , e λ 2 , e λ 3 , ⋯   , e λ n e^{\lambda_1},e^{\lambda_2},e^{\lambda_3},\cdots,e^{\lambda_n} eλ1,eλ2,eλ3,,eλn
  4. 逆矩阵的特征值和特征向量

2.求解 A x = λ x Ax=\lambda x Ax=λx

对于方程 A x = λ x Ax=\lambda x Ax=λx,有两个未知数,我们需要利用一些技巧从这一个方程中一次解出两个未知数,先移项得 ( A − λ E ) x = 0 (A-\lambda E)x=0 (AλE)x=0

观察 ( A − λ E ) x = 0 (A-\lambda E)x=0 (AλE)x=0,右边的矩阵相当于将 A A A矩阵平移了 λ \lambda λ个单位,而如果方程有解,则这个平移后的矩阵 ( A − λ E ) (A-\lambda E) (AλE)一定是奇异矩阵。根据前面学到的行列式的性质,则有 ∣ A − λ E ∣ = 0 (2) |A-\lambda{E}|=0\tag{2} AλE=0(2)

这样一来,方程中就没有 x x x了,这个方程也叫作特征方程(characteristic equation)。有了特征值,代回 ( A − λ E ) x = 0 (A-\lambda E)x=0 (AλE)x=0,继续求 ( A − λ E ) (A-\lambda E) (AλE)的零空间即可。

  • 现在计算一个简单的例子, A = [ 3 1 1 3 ] A=\begin{bmatrix}3&1\\1&3\end{bmatrix} A=[3113],再来说一点题外话,这是一个对称矩阵,我们将得到实特征值,前面还有置换矩阵、投影矩阵,矩阵越特殊,则我们得到的特征值与特征向量也越特殊。看置换矩阵中的特征值,两个实数 1 , − 1 1, -1 1,1,而且它们的特征向量是正交的。

    回到例题,计算 ∣ A − λ E ∣ = ∣ 3 − λ 1 1 3 − λ ∣ |{A-\lambda{E}}|=\begin{vmatrix}3-\lambda&1\\1&3-\lambda\end{vmatrix} AλE=3λ113λ,也就是对角矩阵平移再取行列式。原式继续化简得 ( 3 − λ ) 2 − 1 = λ 2 − 6 λ + 8 = 0 , λ 1 = 4 , λ 2 = 2 (3-\lambda)^2-1=\lambda^2-6\lambda+8=0, \lambda_1=4,\lambda_2=2 (3λ)21=λ26λ+8=0,λ1=4,λ2=2。可以看到一次项系数 − 6 -6 6与矩阵的迹有关,常数项与矩阵的行列式有关。

    (由此,若两个矩阵 A , B A,B A,B相似可得到 t r ( A ) = t r ( B ) , ∣ A ∣ = ∣ B ∣ tr(A)=tr(B),|A|=|B| tr(A)=tr(B),A=B)继续计算特征向量, A − 4 E = [ − 1 1 1 − 1 ] A-4E=\begin{bmatrix}-1&1\\1&-1\end{bmatrix} A4E=[1111],显然矩阵是奇异的(如果是非奇异说明特征值计算有误),解出矩阵的零空间 x 1 = [ 1 1 ] x_1=\begin{bmatrix}1\\1\end{bmatrix} x1=[11];同理计算另一个特征向量, A − 2 E = [ 1 1 1 1 ] A-2E=\begin{bmatrix}1&1\\1&1\end{bmatrix} A2E=[1111],解出矩阵的零空间 x 2 = [ 1 − 1 ] x_2=\begin{bmatrix}1\\-1\end{bmatrix} x2=[11]

    回顾前面转置矩阵的例子,对矩阵 A ′ = [ 0 1 1 0 ] A'=\begin{bmatrix}0&1\\1&0\end{bmatrix} A=[0110] λ 1 = 1 , x 1 = [ 1 1 ] , λ 2 = − 1 , x 2 = [ − 1 1 ] \lambda_1=1, x_1=\begin{bmatrix}1\\1\end{bmatrix}, \lambda_2=-1, x_2=\begin{bmatrix}-1\\1\end{bmatrix} λ1=1,x1=[11],λ2=1,x2=[11]。看转置矩阵 A ′ A' A与本例中的对称矩阵 A A A有什么联系。

    易得 A = A ′ + 3 E A=A'+3E A=A+3E,两个矩阵特征向量相同,而其特征值刚好相差 3 3 3。也就是如果给一个矩阵加上 3 E 3E 3E,则它的特征值会加 3 3 3,而特征向量不变。这也很容易证明,如果 A x = λ x Ax=\lambda x Ax=λx,则 ( A + 3 E ) x = λ x + 3 x = ( λ + 3 ) x (A+3E)x=\lambda x+3x=(\lambda+3)x (A+3E)x=λx+3x=(λ+3)x,所以 x x x还是原来的 x x x,而 λ \lambda λ变为 λ + 3 \lambda+3 λ+3

接下来,看一个关于特征向量认识的误区:已知 A x = λ x , B x = α x Ax=\lambda x, Bx=\alpha x Ax=λx,Bx=αx,则有 ( A + B ) x = ( λ + α ) x (A+B)x=(\lambda+\alpha)x (A+B)x=(λ+α)x,当 B = 3 E B=3E B=3E时,在上例中我们看到,确实成立,但是如果 B B B为任意矩阵,则推论不成立,因为这两个式子中的特征向量 x x x并不一定相同,所以两个式子的通常情况是 A x = λ x , B y = α y Ax=\lambda x, By=\alpha y Ax=λx,By=αy,它们也就无从相加了。

  • 再来看旋转矩阵的例子,旋转 9 0 ∘ 90^\circ 90的矩阵 Q = [ cos ⁡ 90 − sin ⁡ 90 sin ⁡ 90 cos ⁡ 90 ] = [ 0 − 1 1 0 ] Q=\begin{bmatrix}\cos 90&-\sin 90\\\sin 90&\cos 90\end{bmatrix}=\begin{bmatrix}0&-1\\1&0\end{bmatrix} Q=[cos90sin90sin90cos90]=[0110](将每个向量旋转 9 0 ∘ 90^\circ 90,用 Q Q Q表示因为旋转矩阵是正交矩阵中很重要的例子)。

    上面提到特征值的一个性质:特征值之和等于矩阵的迹;现在有另一个性质:特征值之积等于矩阵的行列式。 ∏ i = 1 n λ i = ∣ A ∣ \prod_{i=1}^n\lambda_i=|A| i=1nλi=A

    对于 Q Q Q矩阵,有 { λ 1 + λ 2 = 0 λ 1 ⋅ λ 2 = 1 \begin{cases}\lambda_1+\lambda_2&=0\\\lambda_1\cdot\lambda_2&=1\end{cases} {λ1+λ2λ1λ2=0=1,再来思考特征值与特征向量的由来,哪些向量旋转 9 0 ∘ 90^\circ 90后与自己平行,于是遇到了麻烦,并没有这种向量,也没有这样的特征值来满足前面的方程组。

    我们来按部就班的计算, ∣ Q − λ E ∣ = ∣ λ − 1 1 λ ∣ = λ 2 + 1 = 0 |Q-\lambda E|=\begin{vmatrix}\lambda&-1\\1&\lambda\end{vmatrix}=\lambda^2+1=0 QλE=λ11λ=λ2+1=0,于是特征值为 λ 1 = i , λ 2 = − i \lambda_1=i, \lambda_2=-i λ1=i,λ2=i,我们看到这两个值满足迹与行列式的方程组,即使矩阵全是实数,其特征值也可能不是实数。本例中即出现了一对共轭负数,我们可以说,如果矩阵越接近对称,那么特征值就是实数。如果矩阵越不对称,就像本例, Q T = − Q Q^T=-Q QT=Q,这是一个反对称的矩阵,于是我得到了纯虚的特征值,这是极端情况,通常我们见到的矩阵是介于对称与反对称之间的。

    于是我们看到,对于好的矩阵(置换矩阵)有实特征值及正交的特征向量,对于不好的矩阵( 9 0 ∘ 90^\circ 90旋转矩阵)有纯虚的特征值。

  • 再来看一个更糟的情况, A = [ 3 1 0 3 ] A=\begin{bmatrix}3&1\\0&3\end{bmatrix} A=[3013],这是一个三角矩阵,我们可以直接得出其特征值,即对角线元素。来看如何得到这一结论的: ∣ A − λ E ∣ = ∣ 3 − λ 1 0 3 − λ ∣ = ( 3 − λ ) 2 = 0 |A-\lambda E|=\begin{vmatrix}3-\lambda&1\\0&3-\lambda\end{vmatrix}=(3-\lambda)^2=0 AλE=3λ013λ=(3λ)2=0,于是 λ 1 = 3 , λ 2 = 3 \lambda_1=3, \lambda_2=3 λ1=3,λ2=3。而我们说这是一个糟糕的状况,在于它的特征向量。

    带入特征值计算特征向量,带入 λ 1 = 3 \lambda_1=3 λ1=3 ( A − λ E ) x = [ 0 1 0 0 ] [ x 1 x 2 ] = [ 0 0 ] (A-\lambda E)x=\begin{bmatrix}0&1\\0&0\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} (AλE)x=[0010][x1x2]=[00],算出一个特征值 x 1 = [ 1 0 ] x_1=\begin{bmatrix}1\\0\end{bmatrix} x1=[10],当我们带入第二个特征值 λ 1 = 3 \lambda_1=3 λ1=3时,我们无法得到另一个与 x 1 x_1 x1线性无关的特征向量了。

    而本例中的矩阵 A A A是一个退化矩阵(degenerate matrix),重复的特征值在特殊情况下可能导致特征向量的短缺

这一讲我们看到了足够多的“不好”的矩阵,下一讲会介绍一般情况下的特征值与特征向量。

  • 计算 ∣ A − λ E ∣ |A-{\lambda}E| AλE时,出现常数就把他融合进其他括号里,使整个式子能拆分(题给的式子一般都能拆分,往那个方向上靠),例如 ( 3 − λ ) 2 ( 1 + λ ) − 10 − ( − 7 ) ( 3 − λ ) − ( 1 + λ ) 2 = 0 (3-{\lambda})^2(1+{\lambda})-10-(-7)(3-{\lambda})-(1+{\lambda})2=0 (3λ)2(1+λ)10(7)(3λ)(1+λ)2=0,这里 − 10 -10 10 ( − 7 ) ( 3 − λ ) (-7)(3-{\lambda}) (7)(3λ)就可以融合成 ( 1 + λ ) (1+{\lambda}) (1+λ)的格式,从而把 ( 1 + λ ) (1+{\lambda}) (1+λ)提出来

二十二、对角化和 A A A的幂

1.对角化矩阵

上一讲我们提到关键方程 A x = λ x Ax=\lambda x Ax=λx,通过 ∣ A − λ E ∣ = 0 |A-\lambda E|=0 AλE=0得到特征向量 λ \lambda λ,再带回关键方程算出特征向量 x x x

在得到特征值与特征向量后,该如何使用它们?我们可以利用特征向量来对角化给定矩阵。

有矩阵 A A A,它的特征向量为 x 1 , x 2 , ⋯   , x n x_1, x_2, \cdots, x_n x1,x2,,xn,使用特征向量作为列向量组成一个矩阵 S = [ x 1 x 2 ⋯ x n ] S=\Bigg[x_1x_2\cdots x_n\Bigg] S=[x1x2xn],即特征向量矩阵, 再使用公式 S − 1 A S = Λ (1) S^{-1}AS=\Lambda\tag{1} S1AS=Λ(1) A A A对角化。注意到公式中有 S − 1 S^{-1} S1,也就是说特征向量矩阵 S S S必须是可逆的,于是我们需要 n n n个线性无关的特征向量。

现在,假设 A A A n n n个线性无关的特征向量,将它们按列组成特征向量矩阵 S S S,则 A S = A [ x 1 x 2 ⋯ x n ] AS=A\Bigg[x_1x_2\cdots x_n\Bigg] AS=A[x1x2xn],当我们分开做矩阵与每一列相乘的运算时,易看出 A x 1 Ax_1 Ax1就是矩阵与自己的特征向量相乘,其结果应该等于 λ 1 x 1 \lambda_1x_1 λ1x1。那么 A S = [ ( λ 1 x 1 ) ( λ 2 x 2 ) ⋯ ( λ n x n ) ] AS=\Bigg[(\lambda_1x_1)(\lambda_2x_2)\cdots(\lambda_nx_n)\Bigg] AS=[(λ1x1)(λ2x2)(λnxn)]。可以进一步化简原式,使用右乘向量按列操作矩阵的方法,将特征值从矩阵中提出来,得到 [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] = S Λ \Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}=S\Lambda [x1x2xn]λ1000λ2000λn=SΛ

于是我们看到,从 A S AS AS出发,得到了 S Λ S\Lambda SΛ,特征向量矩阵又一次出现了,后面接着的是一个对角矩阵,即特征值矩阵。这样,再继续左乘 S − 1 S^{-1} S1就得到了上面的公式。当然,所以运算的前提条件是特征向量矩阵 S S S可逆,即矩阵 A A A n n n个线性无关的特征向量。这个式子还要另一种写法, A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1

我们来看如何应用这个公式,比如说要计算 A 2 A^2 A2

  • 先从 A x = λ x Ax=\lambda x Ax=λx开始,如果两边同乘以 A A A,有 A 2 x = λ A x = λ 2 x A^2x=\lambda Ax=\lambda^2x A2x=λAx=λ2x,于是得出结论,对于矩阵 A 2 A^2 A2,其特征值也会取平方,而特征向量不变。
  • 再从 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS1开始推导,则有 A 2 = S Λ S − 1 S Λ S − 1 = S Λ 2 S − 1 A^2=S\Lambda S^{-1}S\Lambda S^{-1}=S\Lambda^2S^{-1} A2=SΛS1SΛS1=SΛ2S1。同样得到特征值取平方,特征向量不变。

两种方法描述的是同一个现象,即对于矩阵幂运算 A 2 A^2 A2,其特征向量不变,而特征值做同样的幂运算。对角矩阵 Λ 2 = [ λ 1 2 0 ⋯ 0 0 λ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n 2 ] \Lambda^2=\begin{bmatrix}\lambda_1^2&0&\cdots&0\\0&\lambda_2^2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n^2\end{bmatrix} Λ2=λ12000λ22000λn2

特征值和特征向量给我们了一个深入理解矩阵幂运算的方法, A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS1

再来看一个矩阵幂运算的应用:如果 k → ∞ k\to\infty k,则 A k → 0 A^k\to 0 Ak0(趋于稳定)的条件是什么?从 S Λ k S − 1 S\Lambda^kS^{-1} SΛkS1易得, ∣ λ i ∣ < 1 |\lambda_i|<1 λi<1。再次强调,所有运算的前提是矩阵 A A A存在 n n n个线性无关的特征向量。如果没有 n n n个线性无关的特征向量,则矩阵就不能对角化。

关于矩阵可对角化的条件

  • 如果一个矩阵有 n n n个互不相同的特征值(即没有重复的特征值),则该矩阵具有 n n n个线性无关的特征向量,因此该矩阵可对角化。

  • 如果一个矩阵的特征值存在重复值,则该矩阵可能具有 n n n个线性无关的特征向量。比如取 10 10 10阶单位矩阵, E 10 E_{10} E10具有 10 10 10个相同的特征值 1 1 1,但是单位矩阵的特征向量并不短缺,每个向量都可以作为单位矩阵的特征向量(别忘了特征向量和特征值的由来),我们很容易得到 10 10 10个线性无关的特征向量。当然这里例子中的 E 10 E_{10} E10的本来就是对角矩阵,它的特征值直接写在矩阵中,即对角线元素。

    同样的,如果是三角矩阵,特征值也写在对角线上,但是这种情况我们可能会遇到麻烦。矩阵 A = [ 2 1 0 2 ] A=\begin{bmatrix}2&1\\0&2\end{bmatrix} A=[2012],计算行列式值 ∣ A − λ E ∣ = ∣ 2 − λ 1 0 2 − λ ∣ = ( 2 − λ ) 2 = 0 |A-\lambda E|=\begin{vmatrix}2-\lambda&1\\0&2-\lambda\end{vmatrix}=(2-\lambda)^2=0 AλE=2λ012λ=(2λ)2=0,所以特征值为 λ 1 = λ 2 = 2 \lambda_1=\lambda_2=2 λ1=λ2=2,带回 A x = λ x Ax=\lambda x Ax=λx得到计算 [ 0 1 0 0 ] \begin{bmatrix}0&1\\0&0\end{bmatrix} [0010]的零空间,我们发现 x 1 = x 2 = [ 1 0 ] x_1=x_2=\begin{bmatrix}1\\0\end{bmatrix} x1=x2=[10],代数重度(algebraic multiplicity,计算特征值重复次数时,就用代数重度,就是它作为多项式根的次数,这里的多项式就是 ( 2 − λ ) 2 (2-\lambda)^2 (2λ)2)为 2 2 2,这个矩阵无法对角化。这就是上一讲的退化矩阵。

由于 k k k重特征值最多只会有 k k k个线性无关的特征向量,因此就有引入广义特征向量的需求(在一阶高维线性方程组部分)

2.求 u k + 1 = A u k u_{k+1}=Au_k uk+1=Auk

u 1 = A u 0 u_1=Au_0 u1=Au0开始, u 2 = A 2 u 0 u_2=A^2u_0 u2=A2u0,所有 u k = A k u 0 u_k=A^ku_0 uk=Aku0。下一讲涉及微分方程(differential equation),会有求导的内容,本讲先引入简单的差分方程(difference equation)。本例是一个一阶差分方程组(first order system)。

要解此方程,需要 u 0 u_0 u0展开为矩阵 A A A特征向量的线性组合,即 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_1x_1+c_2x_2+\cdots+c_nx_n=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=Sc u0=c1x1+c2x2++cnxn=[x1x2xn]c1c2cn=Sc。于是 A u 0 = c 1 A x 1 + c 2 A x 2 + ⋯ + c n A x n = c 1 λ 1 x 1 + c 2 λ 2 x 2 + ⋯ + c n λ n x n Au_0=c_1Ax_1+c_2Ax_2+\cdots+c_nAx_n=c_1\lambda_1x_1+c_2\lambda_2x_2+\cdots+c_n\lambda_nx_n Au0=c1Ax1+c2Ax2++cnAxn=c1λ1x1+c2λ2x2++cnλnxn。继续化简原式, A u 0 = [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n ] [ c 1 c 2 ⋮ c n ] = S Λ c Au_0=\Bigg[x_1x_2\cdots x_n\Bigg]\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\lambda_n\end{bmatrix}\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=S\Lambda c Au0=[x1x2xn]λ1000λ2000λnc1c2cn=SΛc。用矩阵的方式同样可以得到该式: A u 0 = S Λ S − 1 u 0 = S Λ S − 1 S c = S Λ c Au_0=S\Lambda S^{-1}u_0=S\Lambda S^{-1}Sc=S\Lambda c Au0=SΛS1u0=SΛS1Sc=SΛc

那么如果我们要求 A 100 u 0 A^{100}u_0 A100u0,则只需要将 λ \lambda λ变为 λ 100 \lambda^{100} λ100,而系数 c c c与特征向量 x x x均不变。

当我们真的要计算 A 100 u 0 A^{100}u_0 A100u0时,就可以使用 S Λ 100 c = c 1 λ 1 100 x 1 + c 2 λ 2 100 x 2 + ⋯ + c n λ n 100 x n S\Lambda^{100}c=c_1\lambda_1^{100}x_1+c_2\lambda_2^{100}x_2+\cdots+c_n\lambda_n^{100}x_n SΛ100c=c1λ1100x1+c2λ2100x2++cnλn100xn

接下来看一个斐波那契数列(Fibonacci sequence)的例子:

0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , ⋯   , F 100 = ? 0,1,1,2,3,5,8,13,\cdots,F_{100}=? 0,1,1,2,3,5,8,13,,F100=?,我们要求第一百项的公式,并观察这个数列是如何增长的。可以想象这个数列并不是稳定数列,因此无论如何该矩阵的特征值并不都小于一,这样才能保持增长。而他的增长速度,则有特征值来决定。

已知 F k + 2 = F k 1 + F k F_{k+2}=F_{k_1}+F_{k} Fk+2=Fk1+Fk,但这不是 u k + 1 = A u k u_{k+1}=Au_{k} uk+1=Auk的形式,而且我们只要一个方程,而不是方程组,同时这是一个二阶差分方程(就像含有二阶导数的微分方程,希望能够化简为一阶倒数,也就是一阶差分)。

使用一个小技巧,令 u k = [ F k + 1 F k ] u_{k}=\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix} uk=[Fk+1Fk],再追加一个方程组成方程组: { F k + 2 = F k + 1 + F k F k + 1 = F k + 1 \begin{cases}F_{k+2}&=F_{k+1}+F_{k}\\F_{k+1}&=F_{k+1}\end{cases} {Fk+2Fk+1=Fk+1+Fk=Fk+1,再把方程组用矩阵表达得到 [ F k + 2 F k + 1 ] = [ 1 1 1 0 ] [ F k + 1 F k ] \begin{bmatrix}F_{k+2}\\F_{k+1}\end{bmatrix}=\begin{bmatrix}1&1\\1&0\end{bmatrix}\begin{bmatrix}F_{k+1}\\F_{k}\end{bmatrix} [Fk+2Fk+1]=[1110][Fk+1Fk],于是我们得到了 u k + 1 = A u k , A = [ 1 1 1 0 ] u_{k+1}=Au_{k}, A=\begin{bmatrix}1&1\\1&0\end{bmatrix} uk+1=Auk,A=[1110]我们把二阶标量方程(second-order scalar problem)转化为一阶向量方程组(first-order system)。

我们的矩阵 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\1&0\end{bmatrix} A=[1110]是一个对称矩阵,所以它的特征值将会是实数,且他的特征向量将会互相正交。因为是二阶,我们可以直接利用迹与行列式解方程组 { λ 1 + λ 2 = 1 λ 1 ⋅ λ 2 = − 1 \begin{cases}\lambda_1+\lambda_2&=1\\\lambda_1\cdot\lambda_2&=-1\end{cases} {λ1+λ2λ1λ2=1=1。在求解之前,我们先写出一般解法并观察 ∣ A − λ E ∣ = ∣ 1 − λ 1 1 − λ ∣ = λ 2 − λ − 1 = 0 \left|A-\lambda E\right|=\begin{vmatrix}1-\lambda&1\\1&-\lambda\end{vmatrix}=\lambda^2-\lambda-1=0 AλE=1λ11λ=λ2λ1=0,与前面斐波那契数列的递归式 F k + 2 = F k + 1 + F k → F k + 2 − F k + 1 − F k = 0 F_{k+2}=F_{k+1}+F_{k}\rightarrow F_{k+2}-F_{k+1}-F_{k}=0 Fk+2=Fk+1+FkFk+2Fk+1Fk=0比较,我们发现这两个式子在项数与幂次上非常相近。

  • 用求根公式解特征值得 { λ 1 = 1 2 ( 1 + 5 ) ≈ 1.618 λ 2 = 1 2 ( 1 − 5 ) ≈ − 0.618 \begin{cases}\lambda_1=\frac{1}{2}\left(1+\sqrt{5}\right)\approx{1.618}\\\lambda_2=\frac{1}{2}\left(1-\sqrt{5}\right)\approx{-0.618}\end{cases} {λ1=21(1+5 )1.618λ2=21(15 )0.618,得到两个不同的特征值,一定会有两个线性无关的特征向量,则该矩阵可以被对角化。

我们先来观察这个数列是如何增长的,数列增长由什么来控制?——特征值。哪一个特征值起决定性作用?——较大的一个。

F 100 = c 1 ( 1 + 5 2 ) 100 + c 2 ( 1 − 5 2 ) 100 ≈ c 1 ( 1 + 5 2 ) 100 F_{100}=c_1\left(\frac{1+\sqrt{5}}{2}\right)^{100}+c_2\left(\frac{1-\sqrt{5}}{2}\right)^{100}\approx c_1\left(\frac{1+\sqrt{5}}{2}\right)^{100} F100=c1(21+5 )100+c2(215 )100c1(21+5 )100,由于 − 0.618 -0.618 0.618在幂增长中趋近于 0 0 0,所以近似的忽略该项,剩下较大的项,我们可以说数量增长的速度大约是 1.618 1.618 1.618。可以看出,这种问题与求解 A x = b Ax=b Ax=b不同,这是一个动态的问题, A A A的幂在不停的增长,而问题的关键就是这些特征值。

  • 继续求解特征向量, A − λ E = [ 1 − λ 1 1 1 − λ ] A-\lambda E=\begin{bmatrix}1-\lambda&1\\1&1-\lambda\end{bmatrix} AλE=[1λ111λ],因为有根式且矩阵只有二阶,我们直接观察 [ 1 − λ 1 1 1 − λ ] [ ? ? ] = 0 \begin{bmatrix}1-\lambda&1\\1&1-\lambda\end{bmatrix}\begin{bmatrix}?\\?\end{bmatrix}=0 [1λ111λ][??]=0,由于 λ 2 − λ − 1 = 0 \lambda^2-\lambda-1=0 λ2λ1=0,则其特征向量为 [ λ 1 ] \begin{bmatrix}\lambda\\1\end{bmatrix} [λ1],即 x 1 = [ λ 1 1 ] , x 2 = [ λ 2 1 ] x_1=\begin{bmatrix}\lambda_1\\1\end{bmatrix}, x_2=\begin{bmatrix}\lambda_2\\1\end{bmatrix} x1=[λ11],x2=[λ21]

最后,计算初始项 u 0 = [ F 1 F 0 ] = [ 1 0 ] u_0=\begin{bmatrix}F_1\\F_0\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix} u0=[F1F0]=[10],现在将初始项用特征向量表示出来 [ 1 0 ] = c 1 x 1 + c 2 x 2 \begin{bmatrix}1\\0\end{bmatrix}=c_1x_1+c_2x_2 [10]=c1x1+c2x2,计算系数得 c 1 = 5 5 , c 2 = − 5 5 c_1=\frac{\sqrt{5}}{5}, c_2=-\frac{\sqrt{5}}{5} c1=55 ,c2=55

来回顾整个问题,对于动态增长的一阶方程组,初始向量是 u 0 u_0 u0,关键在于确定 A A A的特征值及特征向量。特征值将决定增长的趋势,发散至无穷还是收敛于某个值。接下来需要找到一个展开式,把 u 0 u_0 u0展开成特征向量的线性组合。

  • 再下来就是套用公式,即 A A A k k k次方表达式 A k = S Λ k S − 1 A^k=S\Lambda^kS^{-1} Ak=SΛkS1,则有 u 99 = A u 98 = ⋯ = A 99 u 0 = S Λ 99 S − 1 S c = S Λ 99 c u_{99}=Au_{98}=\cdots=A^{99}u_{0}=S\Lambda^{99}S^{-1}Sc=S\Lambda^{99}c u99=Au98==A99u0=SΛ99S1Sc=SΛ99c,代入特征值、特征向量得 u 99 = [ F 100 F 99 ] = [ 1 + 5 2 1 − 5 2 1 1 ] [ ( 1 + 5 2 ) 99 0 0 ( 1 − 5 2 ) 99 ] [ 5 5 − 5 5 ] = [ c 1 λ 1 100 + c 2 λ 2 100 c 1 λ 1 99 + c 2 λ 2 99 ] u_{99}=\begin{bmatrix}F_{100}\\F_{99}\end{bmatrix}=\begin{bmatrix}\frac{1+\sqrt{5}}{2}&\frac{1-\sqrt{5}}{2}\\1&1\end{bmatrix}\begin{bmatrix}\left(\frac{1+\sqrt{5}}{2}\right)^{99}&0\\0&\left(\frac{1-\sqrt{5}}{2}\right)^{99}\end{bmatrix}\begin{bmatrix}\frac{\sqrt{5}}{5}\\-\frac{\sqrt{5}}{5}\end{bmatrix}=\begin{bmatrix}c_1\lambda_1^{100}+c_2\lambda_2^{100}\\c_1\lambda_1^{99}+c_2\lambda_2^{99}\end{bmatrix} u99=[F100F99]=[21+5 1215 1](21+5 )9900(215 )99[55 55 ]=[c1λ1100+c2λ2100c1λ199+c2λ299],最终结果为 F 100 = c 1 λ 1 100 + c 2 λ 2 100 F_{100}=c_1\lambda_1^{100}+c_2\lambda_2^{100} F100=c1λ1100+c2λ2100

  • 原式的通解为 u k = c 1 λ k x 1 + c 2 λ k x 2 u_k=c_1\lambda^kx_1+c_2\lambda^kx_2 uk=c1λkx1+c2λkx2

  • 总结 A S = S Λ → A = S Λ S − 1 → u k + 1 = A u k = A k + 1 u 0 , u 0 = S c → u k + 1 = S Λ k + 1 S − 1 S c = S Λ k + 1 c AS=S\Lambda\rightarrow A=S\Lambda S^{-1} \rightarrow u_{k+1}=Au_k=A^{k+1}u_0, u_0=Sc\rightarrow u_{k+1}=S\Lambda^{k+1}S^{-1}Sc=S\Lambda^{k+1}c AS=SΛA=SΛS1uk+1=Auk=Ak+1u0,u0=Scuk+1=SΛk+1S1Sc=SΛk+1c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_森罗万象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值