线性代数学习笔记7-2:特征值的应用——相似对角化、求矩阵的幂、差分方程与解的稳态

知道如何求解特征值后,下面介绍特征值的具体应用

类似消元法的LU分解、施密特正交化的QR分解,特征值部分可以引出对角化分解,但注意对角化的前提在于,矩阵A必须具有n个线性无关的特征向量(可能有/没有重复的特征值,没有重根 ⇒ \Rightarrow n个线性无关的特征向量,必要不充分条件)

ps. 当矩阵不具有n个线性无关的特征向量,则无法对角化,但可以三角化

矩阵对角化

假设已经找到所有特征向量,将它们作为列向量构成矩阵 S = [ x 1 x 2 ⋯ x n ] \boldsymbol{S}=\left[\begin{array}{llll} \mathbf{x}_{1} & \mathbf{x}_{2} & \cdots & \mathbf{x}_{\mathrm{n}} \end{array}\right] S=[x1x2xn]
那么,根据特征值的特点,有 A S = A [ x 1 x 2 ⋯ x n ] = [ λ 1 x 1 λ 2 x 2 ⋯ λ n x n ] = [ x 1 x 2 ⋯ x n ] [ λ 1 0 ⋯ 0 0 λ 2 0 ⋮ ⋱ ⋮ 0 ⋯ 0 λ n ] = S Λ \begin{aligned} \boldsymbol{A} \boldsymbol{S} &=\boldsymbol{A}\left[\begin{array}{llll} \mathbf{x}_{1} & \mathbf{x}_{2} & \cdots & \mathbf{x}_{\mathrm{n}} \end{array}\right] \\ &=\left[\begin{array}{lllll} \lambda_{1} \mathbf{x}_{1} & \lambda_{2} \mathbf{x}_{2} & \cdots & \lambda_{\mathrm{n}} \mathbf{x}_{\mathrm{n}} \end{array}\right] \\ &=\left[\begin{array}{llll} \mathbf{x}_{1} & \mathbf{x}_{2} & \cdots & \mathbf{x}_{\mathrm{n}} \end{array}\right]\left[\begin{array}{cccc} \lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & & 0 \\ \vdots & & \ddots & \vdots \\ 0 & \cdots & 0 & \lambda_{\mathrm{n}} \end{array}\right] \\ &=\boldsymbol{S} \boldsymbol{\Lambda} \end{aligned} AS=A[x1x2xn]=[λ1x1λ2x2λnxn]=[x1x2xn] λ1000λ2000λn =SΛ
其中,所有特征值作为对角元,组成矩阵 Λ = [ λ 1 0 ⋯ 0 0 λ 2 0 ⋮ ⋱ ⋮ 0 ⋯ 0 λ n ] \boldsymbol{\Lambda}=\left[\begin{array}{cccc} \lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & & 0 \\ \vdots & & \ddots & \vdots \\ 0 & \cdots & 0 & \lambda_{\mathrm{n}} \end{array}\right] Λ= λ1000λ2000λn

再次强调,上述操作的前提是,矩阵A必须具有n个线性无关的特征向量,这样才保证 S \boldsymbol S S可逆
最终,矩阵对角化表示为 A = S Λ S − 1 \boldsymbol{A}=\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1} A=SΛS1

之前说过,若矩阵 A \mathbf A A经过初等变换能得到矩阵 B \mathbf B B,则 A \mathbf A A B \mathbf B B等价(相抵),记为 A ≅ B \mathbf A \cong \mathbf B AB
任何矩阵,有唯一的相抵标准形 A ≅ ( Ir ⁡ 0 0 0 ) \mathbf A\cong\left(\begin{array}{cc} \operatorname{Ir} & 0 \\ 0 & 0 \end{array}\right) A(Ir000),从而行秩=列秩
消元和列操作能得到“相抵标准型”(只保留了最内核的秩信息),而这里得到“相似标准形”(保有矩阵操作的基本性质——特征值)

可以相似对角化的前提条件:

  • n 阶方阵 A ∼ 对角矩阵    ⟺    A 有 n 个线性无关的特征向量 n阶方阵\mathbf A\sim 对角矩阵\iff \mathbf A有n个线性无关的特征向量 n阶方阵A对角矩阵An个线性无关的特征向量(这条是可相似对角化的本质核心,后面都是推论)
  • n 阶方阵 A ∼ 对角矩阵 d i a g ( λ 1 , λ 2 , . . . , λ n ) ⇒ λ 1 , λ 2 , . . . , λ n 就是 A 的全部特征值 n阶方阵\mathbf A\sim 对角矩阵diag(\lambda_1,\lambda_2,...,\lambda_n)\Rightarrow \lambda_1,\lambda_2,...,\lambda_n就是\mathbf A的全部特征值 n阶方阵A对角矩阵diag(λ1,λ2,...,λn)λ1,λ2,...,λn就是A的全部特征值
  • 上两条的推论: n 阶方阵 A ∼ 对角矩阵    ⟺    A 的每个 k i 重特征值的特征子空间维数都为 k i    ⟺    A 的每个 k i 重特征值都对应 k i 个线性无关的特征向量    ⟺    A 的每个 k i 重特征值 λ i 都满足 R a n k ( λ i I − A ) = k i n阶方阵\mathbf A\sim 对角矩阵\iff \\ \mathbf A的每个k_i重特征值的特征子空间维数都为k_i\iff \\ \mathbf A的每个k_i重特征值都对应k_i个线性无关的特征向量\iff \\ \mathbf A的每个k_i重特征值\lambda_i都满足Rank\mathbf{(\lambda_i I-A})=k_i n阶方阵A对角矩阵A的每个ki重特征值的特征子空间维数都为kiA的每个ki重特征值都对应ki个线性无关的特征向量A的每个ki重特征值λi都满足Rank(λiIA)=ki
  • n 阶方阵 A 的特征值都不相同 / 都是单根 ⇒ A ∼ 对角矩阵 n阶方阵\mathbf A的特征值都不相同/都是单根\Rightarrow A\sim 对角矩阵 n阶方阵A的特征值都不相同/都是单根A对角矩阵
    (相当于所有特征向量都线性无关)
  • 一个特别的情况:
    n 阶方阵 A 是实对称矩阵 ⇒ A ∼ 对角矩阵 n阶方阵\mathbf A是实对称矩阵\Rightarrow A\sim 对角矩阵 n阶方阵A是实对称矩阵A对角矩阵

另外,方阵 A \mathbf A A为实对称矩阵的情况下,其特性带来一些特殊的性质:

  • n阶实对称矩阵 A \mathbf A A的特征值都是实数,且不同特征值对应的特征向量相互正交(实对称矩阵一定有 n n n个无关正交向量)
  • 实对称矩阵正交相似于对角矩阵:n阶实对称矩阵 A \mathbf A A在相似对角化时,一定存在一个正交矩阵 C \mathbf C C,可以用于“变换坐标系”,即 C − 1 A C = d i a g ( λ 1 , λ 2 , . . . , λ n ) \mathbf {C^{-1}AC}=diag(\lambda_1,\lambda_2,...,\lambda_n) C1AC=diag(λ1,λ2,...,λn)

应用:矩阵的幂

对角化的应用之一,就是为我们提供了新的视角来看待矩阵的幂(前提:矩阵A具有n个线性无关的特征向量
由于 A = S Λ S − 1 \boldsymbol{A}=\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1} A=SΛS1,我们都能轻易得到 A \boldsymbol{A} A k k k次幂的 A k \boldsymbol{A}^k Ak的信息: A k = ( S Λ S − 1 ) ( S Λ S − 1 ) . . . ( S Λ S − 1 ) = S Λ k S − 1 \boldsymbol{A}^k=(\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1})(\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1})...(\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1})=\boldsymbol{S}\boldsymbol{\Lambda}^k\boldsymbol{S}^{-1} Ak=(SΛS1)(SΛS1)...(SΛS1)=SΛkS1这就是说:

  • A k \boldsymbol{A}^k Ak的特征向量与 A \boldsymbol{A} A相同,而对应的特征值变为 Λ \boldsymbol{\Lambda} Λ的幂次 Λ k \boldsymbol{\Lambda}^k Λk
  • 矩阵的幂乘以向量 A k u 0 \boldsymbol{A}^k \mathbf{u}_{0} Aku0,可以简化表示为通式 A k u 0 = S Λ k S − 1 S c = S Λ k c = c 1 λ 1 k x 1 + c 2 λ 2 k x 2 + … + c n λ n k x n \boldsymbol{A}^k \mathbf{u}_{0}=\boldsymbol{S}\boldsymbol{\Lambda}^k\boldsymbol{S}^{-1}\boldsymbol{S} \mathbf{c}=\boldsymbol{S}\boldsymbol{\Lambda}^k\mathbf{c}=c_{1} \lambda_{1}^{k} \mathbf{x}_{1}+c_{2} \lambda_{2}^{k} \mathbf{x}_{2}+\ldots+c_{n} \lambda_{n}^{k} \mathbf{x}_{n} Aku0=SΛkS1Sc=SΛkc=c1λ1kx1+c2λ2kx2++cnλnkxn
    其中需要将 u 0 \mathbf{u}_{0} u0表示为特征向量的线性组合 u 0 = S c \mathbf{u}_{0}=\boldsymbol{S} \mathbf{c} u0=Sc,并且注意前提是需要一整套线性无关的特征向量/或者说特征向量矩阵 S \boldsymbol{S} S可逆(否则无法保证任意 u 0 \mathbf{u}_{0} u0都可以被拆解)
    具体细节后文会介绍

推论:

  • 若矩阵A具有n个线性无关的特征向量,如果其所有特征值 ∣ λ i ∣ < 1 |\lambda_i|<1 λi<1,则 k → ∞ 时 A k → 0 k\rightarrow \infty时\boldsymbol{A}^k\rightarrow 0 kAk0(因为 Λ k → 0 \boldsymbol{\Lambda}^k\rightarrow 0 Λk0,故 A k = S Λ k S − 1 → 0 \boldsymbol{A}^k=\boldsymbol{S}\boldsymbol{\Lambda}^k\boldsymbol{S}^{-1}\rightarrow 0 Ak=SΛkS10

应用:求差分方程

对于一个一阶差分方程( u k \mathbf{u}_{k} uk为向量, A \boldsymbol{A} A为系数矩阵) u k + 1 = A u k \mathbf{u}_{k+1}=\boldsymbol{A} \mathbf{u}_{k} uk+1=Auk后一项由前一项 u k \mathbf{u}_{k} uk给出,已知条件是初始的 u 0 \mathbf{u}_{0} u0,现在希望求 u k \mathbf{u}_{k} uk

首先,很容易求解得到 u k = A k u 0 \mathbf{u}_{k}=\boldsymbol{A}^k \mathbf{u}_{0} uk=Aku0,然而这样形式的解没有实际意义(仍需要计算大量矩阵的幂)

注意这里再次出现「矩阵的幂」,那么容易想到进行对角化,向特征值和特征向量上靠拢
具体而言,求解过程是:

  • 求出 A \boldsymbol{A} A的所有特征向量,(假设具有n个线性无关的特征向量,才能继续)则所有特征向量张成整个空间,从而将 u 0 \mathbf{u}_{0} u0表示为特征向量的线性组合 u 0 = c 1 x 1 + c 2 x 2 + … + c n x n = S c \mathbf{u}_{0}=c_{1} \mathbf{x}_{1}+c_{2} \mathbf{x}_{2}+\ldots+c_{n} \mathbf{x}_{n}=\boldsymbol{S} \mathbf{c} u0=c1x1+c2x2++cnxn=Sc其中,列向量 c \mathbf{c} c保存了各个特征向量的系数
  • 对角化得到 A = S Λ S − 1 \boldsymbol{A}=\boldsymbol{S}\boldsymbol{\Lambda}\boldsymbol{S}^{-1} A=SΛS1,则第 k k k u k \mathbf{u}_{k} uk A k u 0 = S Λ k S − 1 S c = S Λ k c = c 1 λ 1 k x 1 + c 2 λ 2 k x 2 + … + c n λ n k x n \boldsymbol{A}^k \mathbf{u}_{0}=\boldsymbol{S}\boldsymbol{\Lambda}^k\boldsymbol{S}^{-1}\boldsymbol{S} \mathbf{c}=\boldsymbol{S}\boldsymbol{\Lambda}^k\mathbf{c}=c_{1} \lambda_{1}^{k} \mathbf{x}_{1}+c_{2} \lambda_{2}^{k} \mathbf{x}_{2}+\ldots+c_{n} \lambda_{n}^{k} \mathbf{x}_{n} Aku0=SΛkS1Sc=SΛkc=c1λ1kx1+c2λ2kx2++cnλnkxn

直观理解:找到特征向量,则不论多少次矩阵幂,始终都是对于特征向量进行缩放,则容易获得 A u 0 = c 1 λ 1 x 1 + c 2 λ 2 x 2 + … + c n λ n x n \boldsymbol{A} \mathbf{u}_{0}=c_{1} \lambda_{1} \mathbf{x}_{1}+c_{2} \lambda_{2} \mathbf{x}_{2}+\ldots+c_{n} \lambda_{n} \mathbf{x}_{n} Au0=c1λ1x1+c2λ2x2++cnλnxn A k u 0 = c 1 λ 1 k x 1 + c 2 λ 2 k x 2 + … + c n λ n k x n \boldsymbol{A}^{k} \mathbf{u}_{0}=c_{1} \lambda_{1}^{k} \mathbf{x}_{1}+c_{2} \lambda_{2}^{k} \mathbf{x}_{2}+\ldots+c_{n} \lambda_{n}^{k} \mathbf{x}_{n} Aku0=c1λ1kx1+c2λ2kx2++cnλnkxn

关于“稳态”:
  • 对于实数特征值,征值 ∣ λ i ∣ < 1 |\lambda_i|<1 λi<1的项最终会消失,特征值 ∣ λ i ∣ = 1 |\lambda_i|=1 λi=1的项恒定,特征值 ∣ λ i ∣ > 1 |\lambda_i|>1 λi>1的项最终不断增长
  • 对于复数特征值,虚部引入了复平面上的“旋转”,故特征值的幅值仍然确定稳态,而相位则对应了每次做矩阵乘法时特征向量的旋转角度
    详见线性代数学习笔记7-5:复习——正交、投影、特征值、差分/微分方程
  • 那么,方程的解就是 u k = A k u 0 = S Λ k c \mathbf{u}_{k}=\boldsymbol{A}^{k} \mathbf{u}_{0}=\boldsymbol{S}\boldsymbol{\Lambda}^k\mathbf{c} uk=Aku0=SΛkc

举例:求Fibonacci数列

斐波那契数列为0,1,1,2,3,5,8,13,其通项公式为 F k + 2 = F k + 1 + F k F_{k+2}=F_{k+1}+F_{k} Fk+2=Fk+1+Fk,需要求 F 100 F_{100} F100

首先要寻找/构造差分方程,由于通项公式给出的是二阶差分方程(同时出现了前后三项),我们可以额外增加一个方程,得到一个方程组(可表示为矩阵向量乘法),从而构造一阶的差分方程 { 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. {Fk+2=Fk+1+FkFk+1=Fk+1其中,将前后两项组成的列向量视为一个整体,即令 u k = [ F k + 1 F k ] \mathbf{u}_{k}=\left[\begin{array}{l}F_{k+1} \\F_{k}\end{array}\right] uk=[Fk+1Fk],则出现一阶的差分方程 u k + 1 = [ 1 1 1 0 ] u k \mathbf{u}_{k+1}=\left[\begin{array}{ll}1 & 1 \\1 & 0\end{array}\right] \mathbf{u}_{k} uk+1=[1110]uk
至此,转化为上面的问题 u k + 1 = A u k \mathbf{u}_{k+1}=\boldsymbol{A} \mathbf{u}_{k} uk+1=Auk,其中 A = [ 1 1 1 0 ] \boldsymbol{A} =\left[\begin{array}{ll}1 & 1 \\1 & 0\end{array}\right] A=[1110],给出初始的 u 0 \mathbf{u}_{0} u0,现在希望求 u 100 \mathbf{u}_{100} u100

  • A \boldsymbol{A} A为对称阵,特征值必为实数,且对称矩阵特征向量正交,可以求出 λ 1 = 1 + 5 2 ≈ 1.618 , x 1 = [ λ 1 1 ] \lambda_{1}=\frac{1+\sqrt{5}}{2}\approx 1.618,\quad\mathbf{x}_{1}=\left[\begin{array}{c}\lambda_{1} \\1\end{array}\right] λ1=21+5 1.618,x1=[λ11] λ 2 = 1 − 5 2 ≈ − 0.618 , x 2 = [ λ 2 1 ] \lambda_{2}=\frac{1-\sqrt{5}}{2}\approx -0.618,\quad\mathbf{x}_{2}=\left[\begin{array}{c}\lambda_{2} \\1\end{array}\right] λ2=215 0.618,x2=[λ21]
  • 分解 u 0 \mathbf u_0 u0得到 u 0 = [ F 1 F 0 ] = [ 1 0 ] = c 1 x 1 + c 2 x 2 , c 1 = 1 5 , c 2 = − 1 5 \mathbf{u}_{0}=\left[\begin{array}{l}F_{1} \\F_{0}\end{array}\right]= \left[\begin{array}{l}1 \\0\end{array}\right]=c_{1} \mathbf{x}_{1}+c_{2} \mathbf{x}_{2}, \quad c_{1}=\frac{1}{\sqrt{5}}, c_{2}=-\frac{1}{\sqrt{5}} u0=[F1F0]=[10]=c1x1+c2x2,c1=5 1,c2=5 1

这里求解特征向量时有一定技巧:
求解 ( A − λ I ) x = 0 \mathbf{( A-\lambda I)}\boldsymbol x=0 (AλI)x=0,由于 d e t ( A − λ I ) = 0 det \mathbf{( A-\lambda I)}=0 det(AλI)=0,则矩阵 ( A − λ I ) = [ 1 − λ 1 1 − λ ] \mathbf{( A-\lambda I)}=\left[\begin{array}{ll}1-\lambda & 1 \\1 & -\lambda\end{array}\right] (AλI)=[1λ11λ]必然是二阶的不可逆矩阵,从而方程的两行一定线性相关,解这个方程只需满足其中任意一行即可(必然同时满足另一行),由此,我们直接从第二行得到方程的解,即特征向量 x = [ λ 1 ] \mathbf{x} =\left[\begin{array}{c}\lambda \\1\end{array}\right] x=[λ1]
可以将 x = [ λ 1 ] \mathbf{x} =\left[\begin{array}{c}\lambda \\1\end{array}\right] x=[λ1]回代 ( A − λ I ) x = 0 \mathbf{( A-\lambda I)}\boldsymbol x=0 (AλI)x=0验证:第二行结果为0;第一行结果 λ 2 − λ − 1 \lambda^{2}-\lambda-1 λ2λ1就是特征多项式 det ⁡ ( A − λ I ) = ∣ 1 − λ 1 1 − λ ∣ \operatorname{det}(\boldsymbol{A}-\lambda \boldsymbol{I})=\left|\begin{array}{cc} 1-\lambda & 1 \\ 1 & -\lambda \end{array}\right| det(AλI)= 1λ11λ ,因而也为0,可见 x = [ λ 1 ] \mathbf{x} =\left[\begin{array}{c}\lambda \\1\end{array}\right] x=[λ1]就是方程 ( A − λ I ) x = 0 \mathbf{( A-\lambda I)}\boldsymbol x=0 (AλI)x=0的解(特征向量)

  • 由上,有 u k = A k u 0 = S Λ k c = c 1 λ 1 k x 1 + c 2 λ 2 k x 2 \mathbf{u}_{k}=\boldsymbol{A}^k \mathbf{u}_{0}=\boldsymbol{S}\boldsymbol{\Lambda}^k\mathbf{c}=c_{1} \lambda_{1}^{k} \mathbf{x}_{1}+c_{2} \lambda_{2}^{k} \mathbf{x}_{2} uk=Aku0=SΛkc=c1λ1kx1+c2λ2kx2带入数据,可以得到 [ F 100 F 99 ] = A 99 [ F 1 F 0 ] = [ λ 1 λ 2 1 1 ] [ λ 1 99 λ 2 99 ] [ c 1 c 2 ] = [ c 1 λ 1 100 + c 2 λ 2 100 c 1 λ 1 99 + c 2 λ 2 99 ] \left[\begin{array}{c}F_{100} \\F_{99}\end{array}\right]= \boldsymbol{A}^{99}\left[\begin{array}{l}F_{1} \\F_{0}\end{array}\right] =\left[\begin{array}{cc}\lambda_{1} & \lambda_{2} \\1 & 1\end{array}\right] \left[\begin{array}{cc}\lambda_{1}{ }^{99} & \\& \lambda_{2}{ }^{99}\end{array}\right] \left[\begin{array}{l}c_{1} \\c_{2}\end{array}\right] =\left[\begin{array}{l}c_{1} \lambda_{1}^{100}+c_{2} \lambda_{2}{ }^{100}\\c_{1} \lambda_{1}^{99}+c_{2} \lambda_{2}{ }^{99}\end{array}\right] [F100F99]=A99[F1F0]=[λ11λ21][λ199λ299][c1c2]=[c1λ1100+c2λ2100c1λ199+c2λ299]
    此即Fibonacci数列的通项公式

分析:
由于 ∣ λ 2 ∣ ≈ 0.618 < 1 |\lambda_2|\approx 0.618<1 λ20.618<1,则 k → ∞ 时 λ 2 k → 0 k\rightarrow \infty时\lambda_2^k\rightarrow 0 kλ2k0
∣ λ 1 ∣ ≈ 1.618 > 1 |\lambda_1|\approx 1.618>1 λ11.618>1,故 λ 1 \lambda_1 λ1控制着Fibonacci数列的增长;
总体上,这个数列不断增长(不稳定),增长的速度由特征值决定

  • 最终可得, F 100 = c 1 λ 1 100 + c 2 λ 2 100 ≈ c 1 λ 1 100 F_{100}=c_{1} \lambda_{1}^{100}+c_{2} \lambda_{2}{ }^{100}\approx c_{1} \lambda_{1}^{100} F100=c1λ1100+c2λ2100c1λ1100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值