【线性代数及其应用】07 - 特征值与特征向量

特征值与特征向量

1. 特征值

1.1 什么是特征值

  有些矩阵对向量的线性变换是只改变其大小,而不改变向量的方向,这种向量叫做矩阵的特征向量,而改变的大小叫做特征值。也就是
A ∗ v 1 = λ ∗ v 1 A*v_1 = λ*v_1 Av1=λv1
  v1叫做特征向量,λ叫做特征值

1.2 特征值的求解方法

A ∗ V = λ ∗ V A*V = λ*V AV=λV

( A − λ ∗ I ) ∗ v = 0 (A-λ*I)*v = 0 (AλI)v=0

即 求 d e t ( A − λ ∗ I ) = 0 即求 det(A-λ*I)=0 det(AλI)=0

1.3 特征方程

( A − λ ∗ I ) ∗ v = 0 (A-λ*I)*v = 0 (AλI)v=0

1.4 特征向量的求解方法

  特征向量就是求特征方程的零空间

1.5 特征值、特征向量与矩阵之间的关系

  假设A的特征值是λ,A的特征向量是v,则A+nI的特征向量是λ+n,特征向量不变

1.6 对称性与特征值之间的关系

  如果矩阵是对称的,那么特征值都是实根,如果矩阵是旋转矩阵样式的完全不对称的,特征值全部是虚根。对称性越高,实根比例越高。

2.特征值的应用

2.1 对角化分解

2.1.1 含义

  对角分解是基于特征值和特征向量的矩阵分解
  我们知道,特征值具有这样的性质
A ∗ v 1 = λ 1 ∗ v 1 A*v_1 = λ_1*v1 Av1=λ1v1
  v1是矩阵A的特征向量,λ1是矩阵A的特征值。如果有矩阵S是矩阵A的特征向量的合集
A ∗ S = A ∗ { v 1 . . . v n } = { λ 1 ∗ v 1 . . . λ n ∗ v n } = S ∗ λ A*S = A*\left\{\begin{matrix}v1& ...&vn \end{matrix}\right\} =\left\{\begin{matrix}λ1*v1& ...&λn*vn \end{matrix}\right\}=S*λ AS=A{v1...vn}={λ1v1...λnvn}=Sλ

其 中 λ = ∗ { λ 1 . . . 0 . . . λ r . . . 0 . . . λ n } 其中λ = *\left\{\begin{matrix}λ1& ...&0\\...&λr&...\\0&...&λn \end{matrix}\right\} λ=λ1...0...λr...0...λn

  可得
A = S − 1 ∗ λ ∗ S A = S^{-1}*λ*S A=S1λS

2.1.2 分解条件

  可以看出来,只有A有n个线性无关的特征向量的时候,才能对角化,如果有n个不同的特征值,必定有n个线性无关的特征向量,但是没有n个不同的特征值,不一定不能进行对角化分解

2.1.3 分解方法

  分解方法就是,只要能够求得特征值和特征向量即可构造矩阵S和λ
  先求特征值
A ∗ v = λ ∗ v A*v=λ*v Av=λv

( A − λ ∗ I ) ∗ v = 0 (A-λ*I)*v=0 AλIv=0

求 d e t ∣ A − λ ∗ I ∣ = 0 即 可 解 得 特 征 值 求det|A-λ*I|=0即可解得特征值 detAλI=0
  再求特征向量
求 得 的 特 征 值 代 入 ( A − λ ∗ I ) ∗ v = 0 求得的特征值代入(A-λ*I)*v=0 AλIv=0
  求解其零空间即可获得特征向量。如果λ是重根,就看看重根能否在零空间内得到足够的特征向量,否则不能对角化

  有了特征值和特征向量即可实现对角化

2.2 A的幂次运算

  特征值和对角化的一个非常重要的应用是求矩阵A的幂次
A = S ∗ λ ∗ S − 1 A = S*λ*S^{-1} A=SλS1

A 2 = S ∗ λ ∗ S − 1 ∗ S ∗ λ ∗ S − 1 = S ∗ λ 2 ∗ S − 1 A^2 = S*λ*S^{-1}* S*λ*S^{-1}=S*λ^2*S^{-1} A2=SλS1SλS1=Sλ2S1

λ 2 = { σ 1 2 . . . 0 . . . σ r 2 . . . 0 . . . σ n 2 } λ^2 = \left\{\begin{matrix}σ_1^2&...&0\\...&σ_r^2&...\\0&...&σ_n^2\end{matrix}\right\} λ2=σ12...0...σr2...0...σn2
  通过这种方式,利用特征值,可以非常方便的求A的高阶幂次
A n = ( S ∗ λ ∗ S − 1 ) n = S ∗ λ n ∗ S − 1 A^n = (S*λ*S^{-1})^n=S*λ^n*S^{-1} An=(SλS1)n=SλnS1

2.3 差分方程

2.3.1 一阶差分方程

  一般来说差分方程对应着幂矩阵的应用(Ak),微分方程对应着指数矩阵的应用(eAk)。
  一阶差分方程写作
X k + 1 = A ∗ X k = A X k = A k ∗ X 0 X_{k+1}= A*X_k = AX_k=A^k*X_0 Xk+1=AXk=AXk=AkX0
  求解差分方程与A的幂次就有关系了,具体求解方法见2.3.3

2.3.2 高阶差分方程

  高阶差分方程是指带有多阶未知数的方程,一般需要增加一个恒等式,配成一阶差分方程

  比如:求解斐波那契数列
X k + 1 = X k + X k − 1 X_{k+1} = X_k + X_{k-1} Xk+1=Xk+Xk1

  引入恒等式
X k = X k X_k = X_k Xk=Xk

  变量代换
Y k + 1 = { X k + 1 X k } Y_{k+1} = \left\{\begin{matrix}X_{k+1}\\X_k\end{matrix}\right\} Yk+1={Xk+1Xk}
Y k = { X k X k − 1 } Y_{k} = \left\{\begin{matrix}X_{k}\\X_{k-1}\end{matrix}\right\} Yk={XkXk1}

  则
Y k + 1 = A ∗ Y k = { 1 1 1 0 } ∗ Y k Y_{k+1} = A*Y{k}= \left\{\begin{matrix}1&1\\1&0\end{matrix}\right\}*Yk Yk+1=AYk={1110}Yk

2.3.3 差分方程的用处

  特征值在差分方程中,可以用于描述一个系统的迭代的终态,或者描述稳定性问题。

  比如
X k + 1 = A X k = A k ∗ X 0 X_{k+1}=AX_k=A^k*X_0 Xk+1=AXk=AkX0
  这个方程可以用于描述人口迁移、生物演化、运行系统等。

  如果A可以进行对角化,那么必定有n个特征向量,将X0分解为特征向量的线性组合

X 0 = c 1 ∗ v 1 + c 2 ∗ v 2 + . . . + c n ∗ v n X0 = c1*v1+c2*v2+...+cn*vn X0=c1v1+c2v2+...+cnvn
  由于A可以对角化
A ∗ { v 1 , v 2 , v 3 . . . , v n } = { v 1 , v 2 , . . . v n } ∗ λ A*\{v_1,v_2,v_3...,v_n\}=\{v_1,v_2,...v_n\}*λ A{v1,v2,v3...,vn}={v1,v2,...vn}λ
  A的幂次乘以特征向量得到
A 2 ∗ v 1 = A ∗ A ∗ v 1 = A ∗ λ 1 ∗ v 1 = λ 1 ∗ A ∗ v 1 = λ 1 2 ∗ v 1 A^2*v_1 = A*A*v_1 = A*λ_1*v_1 = λ_1*A*v_1 = λ_1^2*v_1 A2v1=AAv1=Aλ1v1=λ1Av1=λ12v1
  所以,迭代方程可以表示为
X k = c 1 ∗ λ 1 k ∗ v 1 + . . . + c n ∗ λ n k ∗ v n X_k = c_1*λ_1^k*v_1+...+c_n*λ_n^k*v_n Xk=c1λ1kv1+...+cnλnkvn
  会有这些情况

  • 如果有一个特征值为1,其他特征值全部小于1,最终系统会达到稳定状态,也就是特征值1的那个特征向量
  • 如果全部特征值都小于1,系统最终会退化,向量结果会全部趋近0。原点被称为吸引子
  • 如果特征值全部都大于1,系统最终会发散,向量结果全部趋于无穷大。向量会远离原点。这个时候原点称为排斥子
  • 如果部分特征值大于1,部分特征值小于1,向量的某些方向会趋近于原点,某些方向会远离原点,结果依然发散。原点被称为鞍点
  • 如果特征值部分含有虚数,必定具有旋转分量。如果v1和v2的共轭特征值的模大于1,会在v1和v2平面上远离原点旋转。如果共轭特征值的模小于1,会在v1和v2平面上靠近原点旋转。如果模等于1,就是圆旋转

2.4 求解微分方程

2.4.1 微分方程的求解

X ′ ( t ) = A ∗ X ( t ) X'(t)=A*X(t) X(t)=AX(t)
  回忆差分方程的求解是先找到了方程的特解X0,然后将特解用特征向量进行分解,Xk就是特征值与特征向量乘积的组合了
X ( 0 ) = c 1 ∗ v 1 + . . . + c n ∗ v n X(0)=c_1*v_1+...+c_n*v_n X(0)=c1v1+...+cnvn

X ( k ) = c 1 ∗ λ 1 k ∗ 1 + . . . . + c n ∗ λ k k ∗ v n X(k)=c1*λ_1^k*_1+....+cn*λ_k^k*v_n X(k)=c1λ1k1+....+cnλkkvn
  在微分方程中,其实就是用特征值的指数替换了特征值的幂次而已
X ( 0 ) = c 1 ∗ v 1 + . . . + c n ∗ v n X(0)=c_1*v_1+...+c_n*v_n X(0)=c1v1+...+cnvn

X ( t ) = c 1 ∗ e λ 1 ∗ t + . . . . + c n ∗ e λ k ∗ t ∗ v n X(t)=c1*e^{λ_1*t}+....+cn*e^{λ_k*t}*v_n X(t)=c1eλ1t+....+cneλktvn

2.4.2 微分方程的稳态

  与差分方程一样,微分方程也有稳态稳态。

  • 如果有一个特征值为0,其余特征值小于0,则X(t)中当t趋近于无穷时,结果是一个稳态
  • 如果特征值全部大于1,X(t)是发散的,值趋于无穷,零点是一个排斥子
  • 如果特征值全部小于1,X(t)是退化的,值趋于0,零点是一个吸引子
  • 如果有的特征值大于0,有的特征值小于0,零点是一个鞍点

  因为特征值之和等于矩阵的迹,特征值之积等于矩阵的行列式值,对于2x2矩阵的稳定性判断,我们希望结果是收敛的,必有特征值都小于0,所以有如下判据
t r a c e ( A ) < 0 trace(A)<0 trace(A)<0

d e t ( A ) > 0 det(A)>0 det(A)>0

2.4.3 解耦合

  如果能够把X(t)中全部的变量单独分解开来,一个方程中都是自己的导数,就是一种解耦合。只要把系数矩阵A变成λ,就保证了每个变量的导数都只和自己有关,即实现了解耦合。使用特征向量可以实现解耦合。

  解耦合的作用是在原来混杂的微分方程中,分解出构成他们的独立的变量。找到了各个独立分量之后,原来的耦合的变量,就是根据特征向量重新组合的结果。

  在差分方程中,做的是对X0变成特征向量的线性次数的重新组合;在微分方程中,利用解耦得到独立变量,做的是X(t)变成特征向量的函数次数的重新组合。

(1)变量代换

  使用特征向量S来进行解耦合
令 X ( t ) = S ∗ Y ( t ) 令 X(t)=S*Y(t) X(t)=SY(t)

其 中 S = { v 1 , v 2 , v 3 . . . . . , v n } 其中S=\{v_1,v_2,v_3.....,v_n\} S={v1,v2,v3.....,vn}
  把X替换后可以得到
S ∗ Y ′ ( t ) = A ∗ S ∗ Y ( t ) S*Y'(t)=A*S*Y(t) SY(t)=ASY(t)

(2)解耦合

  下面求解函数Y(t)我们知道
A = S ∗ λ ∗ S − 1 A = S*λ*S^{-1} A=SλS1
  可以得到
S ∗ Y ′ ( t ) = S ∗ λ ∗ Y ( t ) S*Y'(t)=S*λ*Y(t) SY(t)=SλY(t)

  两边同时乘以S-1,实现了微分方程的解耦
Y ′ ( t ) = λ ∗ Y ( t ) Y'(t)=λ*Y(t) Y(t)=λY(t)

{ y 1 ′ ( t ) . . . . . y n ′ ( t ) } = { λ 1 . . . 0 . . . . . . . . . 0 . . . λ n } ∗ { y 1 ( t ) . . . . . y n ( t ) } \left\{ \begin{matrix} y_1'(t)\\ .....\\ y_n'(t) \end{matrix} \right\} =\left\{ \begin{matrix} λ_1 & ... & 0 \\ ... & ... & ... \\ 0 & ... & λ_n \end{matrix} \right\} *\left\{ \begin{matrix} y_1(t)\\ .....\\ y_n(t) \end{matrix} \right\} y1(t).....yn(t)=λ1...0.........0...λny1(t).....yn(t)

  解得Y(t)
Y ( t ) = { c 1 ∗ e λ 1 ∗ t . . . . . c n ∗ e λ n ∗ t } Y(t)= \left\{ \begin{matrix} c1*e^{λ1*t}\\ .....\\ cn*e^{λn*t} \end{matrix} \right\} Y(t)=c1eλ1t.....cneλnt

(3)使用解耦合结果可以验证微分方程特征值公式

  原来的变量x其实就是y的解耦合微分方程组的线性组合。Y(t)其实可以理解为X(t)在各个特征向量方向上的分量
X ( t ) = S ∗ Y ( t ) = c 1 ∗ e λ 1 ∗ t ∗ v 1 + . . . . + c n ∗ e λ n ∗ t ∗ v n X(t)=S*Y(t)=c1*e^{λ1*t}*v1+....+cn*e^{λn*t}*vn X(t)=SY(t)=c1eλ1tv1+....+cneλntvn

2.4.4 指数矩阵的意义

  如果保留了矩阵求解微分方程可以得到一个指数矩阵
X ′ ( t ) = A ∗ X ( t ) X'(t)=A*X(t) X(t)=AX(t)

X ( t ) = e A ∗ t ∗ X ( 0 ) X(t)=e^{A*t}*X(0) X(t)=eAtX(0)

  如果通过特征向量拆解为解耦合微分方程组
Y ′ ( t ) = λ ∗ Y ( t ) Y'(t)= λ*Y(t) Y(t)=λY(t)

Y ( t ) = e λ ∗ t ∗ Y ( 0 ) Y(t)=e^{λ*t}*Y(0) Y(t)=eλtY(0)

X ( t ) = S ∗ Y ( t ) = S ∗ e λ ∗ t ∗ S − 1 ∗ X ( 0 ) X(t)=S*Y(t)=S*e^{λ*t}*S^{-1}*X(0) X(t)=SY(t)=SeλtS1X(0)
  如何理解这个指数矩阵呢?这个可以用个泰勒公式展开进行进一步表达
e A ∗ t = I + A ∗ t + ( A ∗ t ) 2 2 + . . . . + ( A ∗ t ) n n ! e^{A*t}=I+A*t+\frac{(A*t)^2}{2}+....+\frac{(A*t)^n}{n!} eAt=I+At+2(At)2+....+n!(At)n
  如果用SλS-1代替A
e A ∗ t = I + S ∗ λ ∗ S − 1 + . . . . + S ∗ λ n ∗ S − 1 ∗ t n n ! = S ∗ e λ ∗ S − 1 e^{A*t}=I+S*λ*S^{-1}+....+\frac{S*λ^n*S^{-1}*t^n}{n!}=S*e^λ*S^{-1} eAt=I+SλS1+....+n!SλnS1tn=SeλS1

2.4.5 求解二阶微分方程的原理和方法

  二阶微分方程与二阶差分方程类似,也可以通过配一个恒等式的方法,把二阶微分方程变成一阶的微分方程

2.5 马尔科夫链与稳态

2.5.1 马尔科夫矩阵

  马尔科夫矩阵是一种求解演化问题的概率矩阵,比如每年城市人口和乡村人口都会发生变迁,城市人口有10%的流入农村,而农村人口会有20%流入城市,则可以构建下列的迁入迁出矩阵
T = { 0.1 0.8 0.9 0.2 } T=\left\{\begin{matrix}0.1&0.8\\0.9&0.2\end{matrix}\right\} T={0.10.90.80.2}
  具有以下特征

  • 所有元素必定大于0
  • 所有列的和都为1
  • 1必定是马尔科夫矩阵的一个特征值,其余都小于1

  
A − λ I = { a 11 − λ a 12 a 21 a 22 − λ } A-λI=\left\{\begin{matrix}a11-λ&a12\\a21&a22-λ\end{matrix}\right\} AλI={a11λa21a12a22λ}
  把所有数都加到最后一列
A − λ I = { a 11 − λ a 12 a 21 + a 11 − λ a 12 + a 22 − λ } A-λI=\left\{\begin{matrix}a11-λ&a12\\a21+a11-λ&a12+a22-λ\end{matrix}\right\} AλI={a11λa21+a11λa12a12+a22λ}
  由各列之和为1可得
A − λ I = { a 11 − λ a 12 1 − λ 1 − λ } A-λI=\left\{\begin{matrix}a11-λ&a12\\1-λ&1-λ\end{matrix}\right\} AλI={a11λ1λa121λ}
  λ=1时有一行为0,必定使得行列式值为0,所以λ是一个特征值

2.5.2 稳态

  延续上面的人口迁移问题,若第一年城市人口x1,农村人口x2,第二年呢?

x 1 ′ = 0.9 ∗ x 1 + 0.2 ∗ x 2 x1' = 0.9*x1+0.2*x2 x1=0.9x1+0.2x2

x 2 ′ = 0.1 ∗ x 1 + 0.8 ∗ x 2 x2' = 0.1*x1+0.8*x2 x2=0.1x1+0.8x2

  可以写作差分方程

X 2 = T ∗ X 1 X_2 = T*X_1 X2=TX1
  n年之后的人口为
X n = T n ∗ X 1 X_n = T^n*X_1 Xn=TnX1

  所以差分方程对角化展开式可以写作
X n = c 1 ∗ λ 1 n ∗ v 1 + . . . + c k ∗ λ k n ∗ v k X_n = c_1*λ_1^n*v_1+...+c_k*λ_k^n*v_k Xn=c1λ1nv1+...+ckλknvk
  因为其中一个特征值为1,其余所有特征值小于1,所以随着时间推移,最终人口总数会趋于恒定,是一个常量

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值