第二十二课时:对角化和A 的幂
本讲主要讲:Ax=λx,特征值、特征向量的应用以及为什么需要特征值和特征向量。
1.对角化矩阵
1.1 对角化的定义
上一讲我们提到关键方程
Ax=λx
Ax=\\lambda x,通过
det(A−λI)=0
\\det(A-\\lambda I)=0得到特征向量
λ
\\lambda,再带回关键方程算出特征向量
x
x。
在得到特征值与特征向量后,该如何使用它们?我们可以利用特征向量来对角化给定矩阵。
有矩阵AA,它的特征向量为
x1,x2,⋯,xn
x_1, x_2, \\cdots, x_n,使用特征向量作为列向量组成一个矩阵
S=[x1x2⋯xn]
S=\\Bigg[x_1x_2\\cdots x_n\\Bigg],即特征向量矩阵, 再使用如下公式将
A
A对角化。
将AA对角化:
S−1AS=Λ(1)
S^{-1}AS=\\Lambda\\tag{1}
注意到公式中有
S−1
S^{-1},也就是说特征向量矩阵S
S必须是可逆的,于是我们需要nn个线性无关的特征向量。现在,假设
A
A有nn个线性无关的特征向量,将它们按列组成特征向量矩阵S
S,则AS=A[x1x2⋯xn]AS=A\\Bigg[x_1x_2\\cdots x_n\\Bigg],当我们分开做矩阵与每一列相乘的运算时,易看出Ax1
Ax_1就是矩阵与自己的特征向量相乘,其结果应该等于λ1x1
\\lambda_1x_1。那么AS=[(λ1x1)(λ2x2)⋯(λnxn)]
AS=\\Bigg[(\\lambda_1x_1)(\\lambda_2x_2)\\cdots(\\lambda_nx_n)\\Bigg]。可以进一步化简原式,使用右乘向量按列操作矩阵的方法,将特征值从矩阵中提出来,得到
[x1x2⋯xn]⎡⎣⎢⎢⎢⎢⎢λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λ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。
于是我们看到,从AS
AS出发,得到了SΛ
S\\Lambda,特征向量矩阵又一次出现了,后面接着的是一个对角矩阵,即特征值矩阵。这样,再继续左乘S−1
S^{-1}就得到了公式(1)
(1)。当然,所以运算的前提条件是特征向量矩阵S
S可逆,即矩阵AA有n
n个线性无关的特征向量。这个式子还要另一种写法,A=SΛS−1A=S\\Lambda S^{-1}。
矩阵分解的三种方法
\\color{red}{矩阵分解的三种方法}
1. 矩阵的对角化:
S−1AS=Λ;
S^{-1}AS=\\Lambda;
2.矩阵消元法中的
A=LU
A=LU 矩阵分解;
3.格拉姆-施密特正交化中的
A=QR
A=QR 矩阵。1.2 哪些矩阵可以对角化?
当矩阵A没有重复的特征值,矩阵
A
A必有nn个线性无关的特征向量,则称A
A可以对角化(diagonalizable);
如果存在重复的特征值,那么我们就需要做额外的检查,就是说上面的条件是充分非必要条件。例如:
1)单位阵的特征值为重特征值11,但是其具有n
n 个线性无关的特征向量。举二阶单位矩阵为例,因为特征向量在(A−λI)
(A−λI)的零空间中,满足(A−λI)x=[0000]x=0
(A−λI)x=\\begin{bmatrix}0& 0\\\\0&0 \\end{bmatrix}x=0。可看出零空间有两维,所以具有两个线性无关的特征向量[10]
\\begin{bmatrix}1\\\\ 0\\end{bmatrix}和[01]
\\begin{bmatrix}0\\\\ 1 \\end{bmatrix}。其实,若A
A为对角矩阵,A=S−1AS=Λ=AA=S^{−1}AS=Λ=A,A
A的特征值就是AA的对角线元素。2) 对于
A=[2012]
A=\\begin{bmatrix}2& 1\\\\0&2 \\end{bmatrix}的三角矩阵,特侦值就是矩阵对角线上的元素2,其特征向量在A−λI
A-\\lambda I的零空间中,满足(A−λI)x=[0010]=0
(A-\\lambda I)x=\\begin{bmatrix}0& 1\\\\0&0 \\end{bmatrix}=0,求解可得x=[10]
x=\\begin{bmatrix} 1\\\\0 \\end{bmatrix},而没第二个特征向量。因为(A−λI)
(A−λI)的零空间只有一维,A
A不可对角化。2.特征值和特征向量的应用
2.1 矩阵的幂
此处我们重点关注可对角化的情况,我们来看如何应用这个公式,比如说要计算A2A^2。
先从Ax=λx
Ax=\\lambda x开始,如果两边同乘以A
A,有A2x=λAx=λ2xA^2x=\\lambda Ax=\\lambda^2x。
再从A=SΛS−1
A=S\\Lambda S^{-1}开始推导,则有A2=SΛS−1SΛS−1=SΛ2S−1
A^2=S\\Lambda S^{-1}S\\Lambda S^{-1}=S\\Lambda^2S^{-1}。同样得到特征值取平方,特征向量不变。,于是得出结论:对于矩阵
Ak
A^k,其特征值也会取平方Λk
\\Lambda^k,而特征向量不变。两种方法描述的是同一个现象,即对于矩阵幂运算
A2
A^2,其特征向量不变,而特征值做同样的幂运算。对角矩阵
Λ2=⎡⎣⎢⎢⎢⎢⎢λ210⋮00λ22⋮0⋯⋯⋱⋯00⋮λ2n⎤⎦⎥⎥⎥⎥⎥.
\\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}.
特征值和特征向量给我们了一个深入理解矩阵幂运算的方法,
Ak=SΛkS−1
A^k=S\\Lambda^kS^{-1}。当
A
A 的所有特征值|λi|<1
|\\lambda_i|<1 时,从SΛkS−1
S\\Lambda^kS^{-1}易得k→∞
k\\to\\infty,则Ak→0
A^k\\to 0(趋于稳定),这样的矩阵称作稳定矩阵。2.2 一阶差分方程
求
uk+1=Auk
u_{k+1}=Au_k
下一讲涉及微分方程(differential equation),会有求导的内容,本讲先引入简单的差分方程(difference equation)。本例是一个一阶差分方程组(first order system)。即:从
u1=Au0
u_1=Au_0开始,u2=A2u0
u_2=A^2u_0,所有uk=Aku0
u_k=A^ku_0。要解此方程,需要将
u0
u_0展开为矩阵A
A特征向量的线性组合,即
u0=c1x1+c2x2+⋯+cnxn=[x1x2⋯xn]⎡⎣⎢⎢⎢⎢c1c2⋮cn⎤⎦⎥⎥⎥⎥=Scu_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。
于是Au0=c1Ax1+c2Ax2+⋯+cnAxn=c1λ1x1+c2λ2x2+⋯+cnλnxn
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=[x1x2⋯xn]⎡⎣⎢⎢⎢⎢⎢λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢c1c2⋮cn⎤⎦⎥⎥⎥⎥=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=SΛS−1u0=SΛS−1Sc=SΛc
Au_0=S\\Lambda S^{-1}u_0=S\\Lambda S^{-1}Sc=S\\Lambda c。
那么如果我们要求
A100u0
A^{100}u_0,则只需要将
λ
\\lambda变为
λ100
\\lambda^{100},而系数
c
c与特征向量xx均不变。
当我们真的要计算
A100u0
A^{100}u_0时,就可以使用
SΛ100c=c1λ1001x1+c2λ1002x2+⋯+cnλ100nxn
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。2.3 斐波那契数列(Fibonacci sequence)
斐波那契数列是:
0,1,1,2,3,5,8,13,⋯,F100=?
0,1,1,2,3,5,8,13,\\cdots,F_{100}=?,我们要求第一百项的公式,并观察这个数列是如何增长的。
可以想象这个数列并不是稳定数列,因此无论如何该矩阵的特征值并不都小于一,这样才能保持增长。而他的增长速度,则有特征值来决定。
已知Fk+2=Fk1+Fk
F_{k+2}=F_{k_1}+F_{k},但这不是uk+1=Auk
u_{k+1}=Au_{k}的形式,而且我们只要一个方程,而不是方程组,同时这是一个二阶差分方程(就像含有二阶导数的微分方程,希望能够化简为一阶倒数,也就是一阶差分)。求解问题:
1) 使用一个小技巧,令uk=[Fk+1Fk]
u_{k}=\\begin{bmatrix}F_{k+1}\\\\F_{k}\\end{bmatrix},再追加一个方程组成方程组:{Fk+2Fk+1=Fk+1+Fk=Fk+1
\\begin{cases}F_{k+2}& =F_{k+1}+F_{k}\\\\F_{k+1}& =F_{k+1}\\end{cases},再把方程组用矩阵表达得到[Fk+2Fk+1]=[1110][Fk+1Fk]
\\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},于是我们得到了uk+1=Auk,A=[1110]
u_{k+1}=Au_{k}, A=\\begin{bmatrix}1& 1\\\\1& 0\\end{bmatrix}。我们把二阶标量方程(second-order scalar problem)转化为一阶向量方程组(first-order system)。2)我们的矩阵
A=[1110]
A=\\begin{bmatrix}1& 1\\\\1& 0\\end{bmatrix}是一个对称矩阵,所以它的特征值将会是实数,且他的特征向量将会互相正交。因为是二阶,我们可以直接利用迹与行列式解方程组{λ1+λ2λ1⋅λ2=1=−1
\\begin{cases}\\lambda_1+\\lambda_2& =1\\\\\\lambda_1\\cdot\\lambda_2& =-1\\end{cases}。在求解之前,我们先写出一般解法并观察|A−λI|=∣∣∣1−λ11−λ∣∣∣=λ2−λ−1=0
\\left|A-\\lambda I\\right|=\\begin{vmatrix}1-\\lambda& 1\\\\1& -\\lambda\\end{vmatrix}=\\lambda^2-\\lambda-1=0,与前面斐波那契数列的递归式Fk+2=Fk+1+Fk→Fk+2−Fk+1−Fk=0
F_{k+2}=F_{k+1}+F_{k}\\rightarrow F_{k+2}-F_{k+1}-F_{k}=0比较,我们发现这两个式子在项数与幂次上非常相近。
用求根公式解特征值得{λ1=12(1+5√)≈1.618λ2=12(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},得到两个不同的特征值,一定会有两个线性无关的特征向量,则该矩阵可以被对角化。
我们先来观察这个数列是如何增长的,数列增长由什么来控制?——特征值。哪一个特征值起决定性作用?——较大的一个。
F100=c1(1+5√2)100+c2(1−5√2)100≈c1(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},由于−0.618
-0.618在幂增长中趋近于0
0,所以近似的忽略该项,剩下较大的项,我们可以说数量增长的速度大约是1.6181.618。可以看出,这种问题与求解Ax=b
Ax=b不同,这是一个动态的问题,A
A的幂在不停的增长,而问题的关键就是这些特征值。3)继续求解特征向量,A−λI=[1−λ11−λ]A-\\lambda I=\\begin{bmatrix}1-\\lambda& 1\\\\1& -\\lambda\\end{bmatrix},因为有根式且矩阵只有二阶,我们直接观察
[1−λ11−λ][??]=0
\\begin{bmatrix}1-\\lambda& 1\\\\1& -\\lambda\\end{bmatrix}\\begin{bmatrix}?\\\\?\\end{bmatrix}=0,由于A−λI
A-\\lambda I是奇异矩阵,所以A−λI
A-\\lambda I的零空间有非零向量,则
[1−λ11−λ][λ1]=[λ(1−λ)+1λ−λ]=[00]
\\begin{bmatrix}1-\\lambda& 1\\\\1& -\\lambda\\end{bmatrix} \\begin{bmatrix}\\lambda\\\\1\\end{bmatrix}=\\begin{bmatrix}\\lambda(1-\\lambda)+ 1\\\\\\lambda -\\lambda\\end{bmatrix}=\\begin{bmatrix}0\\\\0\\end{bmatrix}
即
λ2−λ−1=0
\\lambda^2-\\lambda-1=0,则其特征向量为
[λ1]
\\begin{bmatrix}\\lambda\\\\1\\end{bmatrix},即
x1=[λ11],x2=[λ21]
x_1=\\begin{bmatrix}\\lambda_1\\\\1\\end{bmatrix}, x_2=\\begin{bmatrix}\\lambda_2\\\\1\\end{bmatrix}。
最后,计算初始项
u0=[F1F0]=[10]
u_0=\\begin{bmatrix}F_1\\\\F_0\\end{bmatrix}=\\begin{bmatrix}1\\\\0\\end{bmatrix},现在将初始项用特征向量表示出来
[10]=c1x1+c2x2
\\begin{bmatrix}1\\\\0\\end{bmatrix}=c_1x_1+c_2x_2,计算系数得
c1=5√5,c2=−5√5
c_1=\\frac{\\sqrt{5}}{5}, c_2=-\\frac{\\sqrt{5}}{5}。回顾整个问题 对于动态增长的一阶方程组,初始向量是
u0
u_0,关键在于确定A
A的特征值及特征向量。特征值将决定增长的趋势,发散至无穷还是收敛于某个值。接下来需要找到一个展开式,把u0u_0展开成特征向量的线性组合。
再下来就是套用公式,即A
A的kk次方表达式Ak=SΛkS−1
A^k=S\\Lambda^kS^{-1},则有u99=Au98=⋯=A99u0=SΛ99S−1Sc=SΛ99c
u_{99}=Au_{98}=\\cdots=A^{99}u_{0}=S\\Lambda^{99}S^{-1}Sc=S\\Lambda^{99}c,代入特征值、特征向量得:
u99=[F100F99]=[1+5√211−5√21]⎡⎣⎢⎢(1+5√2)9900(1−5√2)99⎤⎦⎥⎥⎡⎣5√5−5√5⎤⎦=[c1λ1001+c2λ1002c1λ991+c2λ992]
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}.
最终结果为F100=c1λ1001+c2λ1002
F_{100}=c_1\\lambda_1^{100}+c_2\\lambda_2^{100}。
原式的通解为uk=c1λkx1+c2λkx2
u_k=c_1\\lambda^kx_1+c_2\\lambda^kx_2。下一讲将介绍求解微分方程。
3.总结
1.
A
A对角化: S−1AS=ΛS^{-1}AS=\\Lambda1.1
矩阵分解的三种方法
\\color{red}{矩阵分解的三种方法}:
1. 矩阵的对角化:S−1AS=Λ;
S^{-1}AS=\\Lambda;
2.矩阵消元法中的A=LU
A=LU 矩阵分解;
3.格拉姆-施密特正交化中的A=QR
A=QR 矩阵。1.2
哪些矩阵可以对角化
\\color{red}{哪些矩阵可以对角化}:
1.当矩阵A没有重复的特征值,矩阵A
A必有nn个线性无关的特征向量,则称A
A可以对角化(diagonalizable);
2.如果存在重复的特征值,那么我们就需要做额外的检查,就是说上面的条件是充分非必要条件。2.特征值和特征向量的应用
2.1 矩阵的幂1.对于矩阵AkA^k,其特征值也会取平方
Λk
\\Lambda^k,而特征向量不变。
2.当A
A 的所有特征值|λi|<1
|\\lambda_i|<1 时,从SΛkS−1
S\\Lambda^kS^{-1}易得k→∞
k\\to\\infty,则Ak→0
A^k\\to 0(趋于稳定),这样的矩阵称作稳定矩阵。2.2一阶差分方程(求
uk+1=Auk
u_{k+1}=Au_k)和斐波那契数列(Fibonacci sequence)。
第二十三课时:微分方程和
eAt
e^{At}
1.微分方程
dudt=Au
\\frac{\\mathrm{d}u}{\\mathrm{d}t}=Au
本讲主要讲解解一阶方程(first-order system)一阶倒数(first derivative)常系数(constant coefficient)线性方程,上一讲介绍了如何计算矩阵的幂,本讲将进一步涉及矩阵的指数形式。我们通过解2个例子来详细介绍计算方法。
1.1 例子1
两个关于时间的方程组
⎧⎩⎨du1dtdu2dt=−u1+2u2=u1−2u2
\\begin{cases}\\frac{\\mathrm{d}u_1}{\\mathrm{d}t}& =-u_1+2u_2\\\\\\frac{\\mathrm{d}u_2}{\\mathrm{d}t}& =u_1-2u_2\\end{cases},则系数矩阵是A=[−112−2]
A=\\begin{bmatrix}-1& 2\\\\1& -2\\end{bmatrix},设初始条件为在0
0时刻u(0)=[u1u2]=[10]u(0)=\\begin{bmatrix}u_1\\\\u_2\\end{bmatrix}=\\begin{bmatrix}1\\\\0\\end{bmatrix}。
这个初始条件的意义可以看做在开始时一切都在u1
u_1中,但随着时间的推移,将有du2dt>0
\\frac{\\mathrm{d}u_2}{\\mathrm{d}t}>0,因为u1
u_1项初始为正,u1
u_1中的事物会流向u2
u_2。随着时间的发展我们可以追踪流动的变化。根据上一讲所学的知识,我们知道第一步需要找到特征值与特征向量。
A=[−112−2]
A=\\begin{bmatrix}-1& 2\\\\1& -2\\end{bmatrix},很明显这是一个奇异矩阵,所以第一个特征值是λ1=0
\\lambda_1=0,另一个特征向量可以从迹得到tr(A)=−3
tr(A)=-3。当然我们也可以用一般方法计算|A−λI|=∣∣∣−1−λ12−2−λ∣∣∣=λ2+3λ=0
\\left|A-\\lambda I\\right|=\\begin{vmatrix}-1-\\lambda& 2\\\\1& -2-\\lambda\\end{vmatrix}=\\lambda^2+3\\lambda=0。(教授提前剧透,特征值
λ2=−3
\\lambda_2=-3将会逐渐消失,因为答案中将会有一项为e−3t
e^{-3t},该项会随着时间的推移趋近于0
0。答案的另一部分将有一项为e0te^{0t},该项是一个常数,其值为1
1,并不随时间而改变。通常含有00特征值的矩阵会随着时间的推移达到稳态。)求特征向量,
λ1=0
\\lambda_1=0时,即求A
A的零空间,很明显x1=[21]x_1=\\begin{bmatrix}2\\\\1\\end{bmatrix};λ2=−3
\\lambda_2=-3时,求A+3I
A+3I的零空间,[2121]
\\begin{bmatrix}2& 2\\\\1& 1\\end{bmatrix}的零空间为x2=[1−1]
x_2=\\begin{bmatrix}1\\\\-1\\end{bmatrix}。则方程组的通解为:
u(t)=c1eλ1tx1+c2eλ2tx2
u(t)=c_1e^{\\lambda_1t}x_1+c_2e^{\\lambda_2t}x_2,通解的前后两部分都是该方程组的纯解,即方程组的通解就是两个与特征值、特征向量相关的纯解的线性组合。我们来验证一下,比如取u=eλ1tx1
u=e^{\\lambda_1t}x_1带入dudt=Au
\\frac{\\mathrm{d}u}{\\mathrm{d}t}=Au,对时间求导得到λ1eλ1tx1=Aeλ1tx1
\\lambda_1e^{\\lambda_1t}x_1=Ae^{\\lambda_1t}x_1,化简得λ1x1=Ax1
\\lambda_1x_1=Ax_1。对比上一讲,解
uk+1=Auk
u_{k+1}=Au_k时得到uk=c1λkx1+c2λkx2
u_k=c_1\\lambda^kx_1+c_2\\lambda^kx_2,而解dudt=Au
\\frac{\\mathrm{d}u}{\\mathrm{d}t}=Au我们得到u(t)=c1eλ1tx1+c2eλ2tx2
u(t)=c_1e^{\\lambda_1t}x_1+c_2e^{\\lambda_2t}x_2。继续求
c1,c2
c_1,c_2,u(t)=c1⋅1⋅[21]+c2⋅e−3t⋅[1−1]
u(t)=c_1\\cdot 1\\cdot\\begin{bmatrix}2\\\\1\\end{bmatrix}+c_2\\cdot e^{-3t}\\cdot\\begin{bmatrix}1\\\\-1\\end{bmatrix},已知t=0
t=0时,[10]=c1[21]+c2[1−1]
\\begin{bmatrix}1\\\\0\\end{bmatrix}=c_1\\begin{bmatrix}2\\\\1\\end{bmatrix}+c_2\\begin{bmatrix}1\\\\-1\\end{bmatrix}(Sc=u(0)
Sc=u(0)),所以c1=13,c2=13
c_1=\\frac{1}{3}, c_2=\\frac{1}{3}。
于是我们写出最终结果,u(t)=13[21]+13e−3t[1−1]
u(t)=\\frac{1}{3}\\begin{bmatrix}2\\\\1\\end{bmatrix}+\\frac{1}{3}e^{-3t}\\begin{bmatrix}1\\\\-1\\end{bmatrix}。稳定性:这个流动过程从
u(0)=[10]
u(0)=\\begin{bmatrix}1\\\\0\\end{bmatrix}开始,初始值1
1的一部分流入初始值00中,经过无限的时间最终达到稳态u(∞)=[2313]
u(\\infty)=\\begin{bmatrix}\\frac{2}{3}\\\\\\frac{1}{3}\\end{bmatrix}。所以,要使得u(t)→0
u(t)\\to 0,则需要负的特征值。
但如果特征值为复数呢?如λ=−3+6i
\\lambda=-3+6i,我们来计算∣∣e(−3+6i)t∣∣
\\left|e^{(-3+6i)t}\\right|,其中的∣∣e6it∣∣
\\left|e^{6it}\\right|部分为|cos6t+isin6t|=1
\\left|\\cos 6t+i\\sin 6t\\right|=1,因为这部分的模为cos2α+sin2α=1
\\cos^2\\alpha+\\sin^2\\alpha=1,这个虚部就在单位圆上转悠。所以只有实数部分才是重要的。
所以我们可以把前面的结论改为需要实部为负数的特征值。实部会决定最终结果趋近于0
0或∞\\infty,虚部不过是一些小杂音。收敛态:需要其中一个特征值实部为
0
0,而其他特征值的实部皆小于00。发散态:如果某个特征值实部大于
0
0。上面的例子中,如果将AA变为−A
-A,特征值也会变号,结果发散。再进一步,我们想知道如何从直接判断任意二阶矩阵的特征值是否均小于零。对于二阶矩阵
A=[acbd]
A=\\begin{bmatrix}a& b\\\\c& d\\end{bmatrix},矩阵的迹为a+d=λ1+λ2
a+d=\\lambda_1+\\lambda_2,如果矩阵稳定,则迹应为负数。但是这个条件还不够,有反例迹小于0
0依然发散:[−2001]\\begin{bmatrix}-2& 0\\\\0& 1\\end{bmatrix},迹为−1
-1但是仍然发散。还需要加上一个条件,因为detA=λ1⋅λ2
\\det A=\\lambda_1\\cdot\\lambda_2,所以还需要行列式为正数。即:如果矩阵稳定,则迹应为负数;且行列式为正数。(
λ1+λ2<0,λ1⋅λ2>0
\\lambda_1+\\lambda_20)总结:
原方程组有两个相互耦合的未知函数,u1,u2
u_1, u_2相互耦合,矩阵A
A 表明u1,u2u_1,u_2 相互耦合,而特征值和特征向量的作则就是解耦,也就是对角化(diagonalize)。(实际上能把这个解表示成S
S和ΛΛ的形式)回到原方程组
dudt=Au
\\frac{\\mathrm{d}u}{\\mathrm{d}t}=Au,将u
u表示为特征向量的线性组合u=Svu=Sv(S
S 是特征向量矩阵,以特征向量为基),代入原方程有Sdvdt=ASvS\\frac{\\mathrm{d}v}{\\mathrm{d}t}=ASv,两边同乘以S−1
S^{-1}得dvdt=S−1ASv=Λv
\\frac{\\mathrm{d}v}{\\mathrm{d}t}=S^{-1}ASv=\\Lambda v。以特征向量为基,将u
u表示为SvSv,得到关于v
v的对角化方程组,新方程组不存在耦合,此时⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪dv1dtdv2dt⋮dvndt=λ1v1=λ2v2⋮=λnvn\\begin{cases}\\frac{\\mathrm{d}v_1}{\\mathrm{d}t}& =\\lambda_1v_1\\\\\\frac{\\mathrm{d}v_2}{\\mathrm{d}t}& =\\lambda_2v_2\\\\\\vdots& \\vdots\\\\\\frac{\\mathrm{d}v_n}{\\mathrm{d}t}& =\\lambda_nv_n\\end{cases},这是一个各未知函数间没有联系的方程组,它们的解的一般形式为v(t)=eΛtv(0)
v(t)=e^{\\Lambda t}v(0),则原方程组的解的一般形式为u(t)=eAtu(0)=SeΛtS−1u(0)
u(t)=e^{At}u(0)=Se^{\\Lambda t}S^{-1}u(0)。这里引入了指数部分为矩阵的形式。2.指数矩阵
eAt
e^{At}
2.1证明
SeΛtS−1=eAt
Se^{\\Lambda t}S^{-1}=e^{At}
在上面的结论中,我们见到了
eAt
e^{At}。这种指数部分带有矩阵的情况称为指数矩阵(exponential matrix)。
理解指数矩阵的关键在于,将指数形式展开称为幂基数形式,就像ex=1+x22+x36+⋯
e^x=1+\\frac{x^2}{2}+\\frac{x^3}{6}+\\cdots一样,将eAt
e^{At}展开成幂级数的形式为:
eAt=I+At+(At)22+(At)36+⋯+(At)nn!+⋯(1)
e^{At}=I+At+\\frac{(At)^2}{2}+\\frac{(At)^3}{6}+\\cdots+\\frac{(At)^n}{n!}+\\cdots\\tag{1}
再说些题外话,有两个极具美感的泰勒级数:
1.
ex=∑xnn!
e^x=\\sum \\frac{x^n}{n!};
2.11−x=∑xn
\\frac{1}{1-x}=\\sum x^n。分析:
1. 如果把第二个泰勒级数(2.)写成指数矩阵形式,有(I−At)−1=I+At+(At)2+(At)3+⋯
(I-At)^{-1}=I+At+(At)^2+(At)^3+\\cdots,这个式子只有在t
t非常小的时候,后面的高次项近似等于零,所以可以用来近似I−AtI-At的逆矩阵,通常近似为I+At
I+At,当然也可以再加几项。
2. 第一个级数(1.)对我们而言比第二个级数(2.)好,因为第一个级数总会收敛于某个值,所以ex
e^x总会有意义,而第二个级数需要A
A特征值的绝对值小于11(因为涉及矩阵的幂运算)。我们看到这些泰勒级数的公式对矩阵同样适用。
回到正题,我们需要证明SeΛtS−1=eAt
Se^{\\Lambda t}S^{-1}=e^{At},继续使用泰勒级数:
eAt=I+At+(At)22+(At)36+⋯+(At)nn!+⋯eAt=SS−1+SΛS−1t+SΛ2S−12t2+SΛ3S−16t3+⋯+SΛnS−1n!tn+⋯eAt=S(I+Λt+Λ2t22+Λ3t33+⋯+Λntnn+⋯)S−1eAt=SeΛtS−1
e^{At}=I+At+\\frac{(At)^2}{2}+\\frac{(At)^3}{6}+\\cdots+\\frac{(At)^n}{n!}+\\cdots\\\\
e^{At}=SS^{-1}+S\\Lambda S^{-1}t+\\frac{S\\Lambda^2S^{-1}}{2}t^2+\\frac{S\\Lambda^3S^{-1}}{6}t^3+\\cdots+\\frac{S\\Lambda^nS^{-1}}{n!}t^n+\\cdots\\\\
e^{At}=S\\left(I+\\Lambda t+\\frac{\\Lambda^2t^2}{2}+\\frac{\\Lambda^3t^3}{3}+\\cdots+\\frac{\\Lambda^nt^n}{n}+\\cdots\\right)S^{-1}\\\\
e^{At}=Se^{\\Lambda t}S^{-1}需要注意的是:
eAt
e^{At}的泰勒级数展开是恒成立的,但我们推出的版本却需要矩阵可对角化这个前提条件。2.2
eΛt
e^{\\Lambda t}的特性
最后,我们来看看什么是
eΛt
e^{\\Lambda t}:
1.我们将eAt
e^{At}变为对角矩阵就是因为对角矩阵简单、没有耦合,eΛt=⎡⎣⎢⎢⎢⎢⎢eλ1t0⋮00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt⎤⎦⎥⎥⎥⎥⎥
e^{\\Lambda t}=\\begin{bmatrix}e^{\\lambda_1t}& 0& \\cdots& 0\\\\0& e^{\\lambda_2t}& \\cdots& 0\\\\\\vdots& \\vdots& \\ddots& \\vdots\\\\0& 0& \\cdots& e^{\\lambda_nt}\\end{bmatrix}。
有了u(t)=SeΛtS−1u(0)
u(t)=Se^{\\Lambda t}S^{-1}u(0),再来看矩阵的稳定性可知,所有特征值的实部均为负数时矩阵收敛,此时对角线上的指数收敛为0
0。
2.如果我们画出复平面,则要使微分方程存在稳定解,则特征值存在于复平面的左侧(即实部为负);要使矩阵的幂收敛于00,则特征值存在于单位圆内部(即模小于1
1),这是幂稳定区域。(上一讲的差分方程需要计算矩阵的幂。)2.3 微分方程的推广
同差分方程一样,我们来看二阶情况如何计算,有y′′+by′+k=0y\’\’+by\’+k=0。我们也模仿差分方程的情形,构造方程组
{y′′y′=−by′−ky=y′
\\begin{cases}y\’\’& =-by\’-ky\\\\y\’& =y\’\\end{cases},写成矩阵形式有[y′′y′]=[−b1−k0][y′y]
\\begin{bmatrix}y\’\’\\\\y\’\\end{bmatrix}=\\begin{bmatrix}-b& -k\\\\1& 0\\end{bmatrix}\\begin{bmatrix}y\’\\\\y\\end{bmatrix},令u′=[y′′y′], u=[y′y]
u\’=\\begin{bmatrix}y\’\’\\\\y\’\\end{bmatrix}, \\ u=\\begin{bmatrix}y\’\\\\y\\end{bmatrix}。
继续推广,对于5
5阶微分方程y′′′′′+by′′′′+cy′′′+dy′′+ey′+f=0y\’\’\’\’\’+by\’\’\’\’+cy\’\’\’+dy\’\’+ey\’+f=0,则可以写作⎡⎣⎢⎢⎢⎢⎢⎢y′′′′′y′′′′y′′′y′′y′⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢−b1000−c0100−d0010−e0001−f0000⎤⎦⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢y′′′′y′′′y′′y′y⎤⎦⎥⎥⎥⎥⎥⎥
\\begin{bmatrix}y\’\’\’\’\’\\\\y\’\’\’\’\\\\y\’\’\’\\\\y\’\’\\\\y\’\\end{bmatrix}=\\begin{bmatrix}-b& -c& -d& -e& -f\\\\1& 0& 0& 0& 0\\\\0& 1& 0& 0& 0\\\\0& 0& 1& 0& 0\\\\0& 0& 0& 1& 0\\end{bmatrix}\\begin{bmatrix}y\’\’\’\’\\\\y\’\’\’\\\\y\’\’\\\\y\’\\\\y\\end{bmatrix},这样我们就把一个五阶微分方程化为5×5
5\\times 5一阶方程组了,然后就是求特征值、特征向量了步骤了。3. 本章总结
- 微分方程
dudt=Au
\\frac{\\mathrm{d}u}{\\mathrm{d}t}=Au的求解,以及其稳定性、收敛性和发散性的证明。
u(t)=eAtu(0)=SeΛtS−1u(0)
u(t)=e^{At}u(0)=Se^{\\Lambda t}S^{-1}u(0)的推导过程;微分方程的推广。
SeΛtS−1=eAt
Se^{\\Lambda t}S^{-1}=e^{At}及
eAt
e^{At}的性质。
第二十四讲:马尔科夫矩阵、傅里叶级数
1.马尔科夫矩阵
1.1马尔可夫矩阵的定义
马尔科夫矩阵(Markov matrix)是指具有以下两个特性的矩阵:
马尔科夫矩阵(Markov matrix)的定义:
1.矩阵中的所有元素大于等于0
0;(因为马尔科夫矩阵与概率有关,而概率是非负的。)
2.每一列的元素之和为11。对于马尔科夫矩阵,我们关心幂运算过程中的稳态(steady state)。与上一讲不同,指数矩阵关系特征值是否为
0
0,而幂运算要达到稳态需要特征值为11。
根据上面两条性质,我们可以得出两个推论:马尔可夫矩阵的性质:
1.马尔科夫矩阵必有特征值为1
1;
2.其他的特征值的绝对值皆小于11。使用第二十二讲中得到的公式进行幂运算
uk=Aku0=SΛkS−1u0=SΛkS−1Sc=SΛkc=c1λk1x1+c2λk2x2+⋯+cnλknxn
u_k=A^ku_0=S\\Lambda^kS^{-1}u_0=S\\Lambda^kS^{-1}Sc=S\\Lambda^kc=c_1\\lambda_1^kx_1+c_2\\lambda_2^kx_2+\\cdots+c_n\\lambda_n^kx_n,从这个公式很容易看出幂运算的稳态。比如我们取λ1=1
\\lambda_1=1,其他的特征值绝对值均小于1
1,于是在经过kk次迭代,随着时间的推移,其他项都趋近于0
0,于是在k→∞k\\to\\infty时,有稳态uk=c1x1
u_k=c_1x_1,这也就是初始条件u0
u_0的第1
1个分量。1.2稳定性证明
我们来证明第一个推论,取A=⎡⎣⎢0.10.20.70.010.9900.30.30.4⎤⎦⎥A=\\begin{bmatrix}0.1& 0.01& 0.3\\\\0.2& 0.99& 0.3\\\\0.7& 0& 0.4\\end{bmatrix},则
A−I=⎡⎣⎢−0.90.20.70.01−0.0100.30.3−0.6⎤⎦⎥
A-I=\\begin{bmatrix}-0.9& 0.01& 0.3\\\\0.2& -0.01& 0.3\\\\0.7& 0& -0.6\\end{bmatrix}。观察A−I
A-I易知其列向量中元素之和均为0
0,因为马尔科夫矩阵的性质就是各列向量元素之和为11,现在我们从每一列中减去了1
1,所以这是很自然的结果。而如果列向量中元素和为00,则矩阵的任意行都可以用“零减去其他行之和”表示出来,即该矩阵的行向量线性相关。
用以前学过的子空间的知识描述,当n
n阶方阵各列向量元素之和皆为11时,则有⎡⎣⎢⎢⎢⎢11⋮1⎤⎦⎥⎥⎥⎥
\\begin{bmatrix}1\\\\1\\\\\\vdots\\\\1\\end{bmatrix}在矩阵A−I
A-I左零空间中,即(A−I)T
(A-I)^T行向量线性相关。而A
A特征值11所对应的特征向量将在A−I
A-I的零空间中,因为Ax=x→(A−I)x=0
Ax=x\\rightarrow(A-I)x=0。
另外,特征值具有这样一个性质:矩阵与其转置的特征值相同。因为我们在行列式一讲了解了性质10,矩阵与其转置的行列式相同,那么如果det(A−λI)=0
\\det(A-\\lambda I)=0,则有det(A−λI)T=0
\\det(A-\\lambda I)^T=0,根据矩阵转置的性质有det(AT−λIT)=0
\\det(A^T-\\lambda I^T)=0,即det(AT−λI)=0
\\det(A^T-\\lambda I)=0。这正是AT
A^T特征值的计算式。
然后计算特征值λ1=1
\\lambda_1=1所对应的特征向量,(A−I)x1=0
(A-I)x_1=0,得出x1=⎡⎣⎢0.6330.7⎤⎦⎥
x_1=\\begin{bmatrix}0.6\\\\33\\\\0.7\\end{bmatrix},特征向量中的元素皆为正。1.3 马尔可夫矩阵的应用
接下来介绍马尔科夫矩阵的应用,我们用麻省和加州这两个州的人口迁移为例:
[ucalumass]k+1=[0.90.10.20.8][ucalumass]k
\\begin{bmatrix}u_{cal}\\\\u_{mass}\\end{bmatrix}_{k+1} =\\begin{bmatrix}0.9& 0.2\\\\0.1& 0.8\\end{bmatrix}\\begin{bmatrix}u_{cal}\\\\u_{mass}\\end{bmatrix}_k,元素非负,列和为一。这个式子表示每年有10
10%的人口从加州迁往麻省,同时有20
20%的人口从麻省迁往加州。注意使用马尔科夫矩阵的前提条件是随着时间的推移,矩阵始终不变。
设初始情况[ucalumass]0=[01000]
\\begin{bmatrix}u_{cal}\\\\u_{mass}\\end{bmatrix}_0=\\begin{bmatrix}0\\\\1000\\end{bmatrix},我们先来看第一次迁徙后人口的变化情况:[ucalumass]1=[0.90.10.20.8][01000]=[200800]
\\begin{bmatrix}u_{cal}\\\\u_{mass}\\end{bmatrix}_1=\\begin{bmatrix}0.9& 0.2\\\\0.1& 0.8\\end{bmatrix}\\begin{bmatrix}0\\\\1000\\end{bmatrix}=\\begin{bmatrix}200\\\\800\\end{bmatrix},随着时间的推移,会有越来越多的麻省人迁往加州,而同时又会有部分加州人迁往麻省。计算特征值:我们知道马尔科夫矩阵的一个特征值为
λ1=1
\\lambda_1=1,则另一个特征值可以直接从迹算出λ2=0.7
\\lambda_2=0.7。计算特征向量:带入
λ1=1
\\lambda_1=1求A−I
A-I的零空间有[−0.10.10.2−0.2]
\\begin{bmatrix}-0.1& 0.2\\\\0.1& -0.2\\end{bmatrix},则x1=[21]
x_1=\\begin{bmatrix}2\\\\1\\end{bmatrix},此时我们已经可以得出无穷步后稳态下的结果了。u∞=c1[21]
u_{\\infty}=c_1\\begin{bmatrix}2\\\\1\\end{bmatrix}且人口总数始终为1000
1000,则c1=10003
c_1=\\frac{1000}{3},稳态时[ucalumass]∞=[2000310003]
\\begin{bmatrix}u_{cal}\\\\u_{mass}\\end{bmatrix}_{\\infty}=\\begin{bmatrix}\\frac{2000}{3}\\\\\\frac{1000}{3}\\end{bmatrix}。注意到特征值为1
1的特征向量元素皆为正。为了求每一步的结果,我们必须解出所有特征向量。带入λ2=0.7\\lambda_2=0.7求
A−0.7I
A-0.7I的零空间有[0.20.10.20.1]
\\begin{bmatrix}0.2& 0.2\\\\0.1& 0.1\\end{bmatrix},则x2=[−11]
x_2=\\begin{bmatrix}-1\\\\1\\end{bmatrix}。
通过u0
u_0解出c1,c2
c_1, c_2,uk=c11k[21]+c20.7k[−11]
u_k=c_11^k\\begin{bmatrix}2\\\\1\\end{bmatrix}+c_20.7^k\\begin{bmatrix}-1\\\\1\\end{bmatrix},带入k=0
k=0得u0=[01000]=c1[21]+c2[−11]
u_0=\\begin{bmatrix}0\\\\1000\\end{bmatrix}=c_1\\begin{bmatrix}2\\\\1\\end{bmatrix}+c_2\\begin{bmatrix}-1\\\\1\\end{bmatrix},解出c1=10003,c2=20003
c_1=\\frac{1000}{3}, c_2=\\frac{2000}{3}。
另外,有时人们更喜欢用行向量,此时将要使用行向量乘以矩阵,其行向量各分量之和为1
1。2.傅里叶级数
2.1 傅里叶级数的引出及定义
在介绍傅里叶级数(Fourier series)之前,先来回顾一下投影。
设q1,q2,⋯qnq_1,q_2,\\cdots q_n为一组标准正交基,则向量v
v在该标准正交基上的展开为v=x1q1+x2q2+⋯+xnqnv=x_1q_1+x_2q_2+\\cdots+x_nq_n,此时我们想要得到各系数xi
x_i的值。比如求x1
x_1的值,我们自然想要消掉除x1q1
x_1q_1外的其他项,这时只需要等式两边同乘以qT1
q_1^T,因为的qi
q_i向量相互正交且长度为1
1,则qTiqj=0,q2i=1q_i^Tq_j=0, q_i^2=1所以原式变为qT1v=x1
q_1^Tv=x_1。
写为矩阵形式有[q1 q2 ⋯ qn]⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=v
\\Bigg[q_1\\ q_2\\ \\cdots\\ q_n\\Bigg]\\begin{bmatrix}x_1\\\\x_2\\\\\\vdots\\\\x_n\\end{bmatrix}=v,即Qx=v
Qx=v。所以有x=Q−1v
x=Q^{-1}v,而在第十七讲我们了解到标准正交基有QT=Q−1
Q^T=Q^{-1},所以我们不需要计算逆矩阵可直接得出x=QTv
x=Q^Tv。此时对于x
x的每一个分量有xi=qTivx_i=q_i^Tv。
接下来介绍傅里叶级数。先写出傅里叶级数的展开式:
f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+⋯
f(x)=a_0+a_1\\cos x+b_1\\sin x+a_2\\cos 2x+b_2\\sin 2x+\\cdots
傅里叶发现,如同将向量
v
v展开(投影)到向量空间的一组标准正交基中,在函数空间中,我们也可以做类似的展开。将函数f(x)f(x)投影在一系列相互正交的函数中。函数空间中的
f(x)
f(x)就是向量空间中的
v
v;函数空间中的1,cosx,sinx,cos2x,sin2x,⋯1,\\cos x,\\sin x,\\cos 2x,\\sin 2x,\\cdots就是向量空间中的
q1,q2,⋯,qn
q_1,q_2,\\cdots,q_n;不同的是,函数空间是无限维的而我们以前接触到的向量空间通常是有限维的。2.2 各个基系数的求解
再来介绍何为“函数正交”。对于向量正交我们通常使用两向量内积(点乘)为零判断。我们知道对于向量
v,w
v,w的内积为vTw=v1w1+v2w2+⋯+vnwn=0
v^Tw=v_1w_1+v_2w_2+\\cdots+v_nw_n=0,也就是向量的每个分量之积再求和。而对于函数f(x)⋅g(x)
f(x)\\cdot g(x)内积,同样的,我们需要计算两个函数的每个值之积而后求和,由于函数取值是连续的,所以函数内积为:
fTg=∫f(x)g(x)dx
f^Tg=\\int f(x)g(x)\\mathrm{d}x
在本例中,由于傅里叶级数使用正余弦函数,它们的周期都可以算作
2π
2\\pi,所以本例的函数点积可以写作
fTg=∫2π0f(x)g(x)dx
f^Tg=\\int_0^{2\\pi}f(x)g(x)\\mathrm{d}x。我来检验一个内积
∫2π0sinxcosxdx=12sin2x∣∣2π0=0
\\int_0^{2\\pi}\\sin{x}\\cos{x}\\mathrm{d}x=\\left.\\frac{1}{2}\\sin^2x\\right|_0^{2\\pi}=0,其余的三角函数族正交性结果可以参考傅里叶级数的“希尔伯特空间的解读”一节。
最后我们来看
cosx
\\cos x项的系数是多少(
a0
a_0是
f(x)
f(x)的平均值)。同向量空间中的情形一样,我们在等式两边同时做
cosx
\\cos x的内积,原式变为
∫2π0f(x)cosxdx=a1∫2π0cos2xdx
\\int_0^{2\\pi}f(x)\\cos x\\mathrm{d}x=a_1\\int_0^{2\\pi}\\cos^2x\\mathrm{d}x,因为正交性等式右边仅有
cosx
\\cos x项不为零。进一步化简得
a1π=∫2π0f(x)cosxdx→a1=1π∫2π0f(x)cosxdx
a_1\\pi=\\int_0^{2\\pi}f(x)\\cos x\\mathrm{d}x\\rightarrow a_1=\\frac{1}{\\pi}\\int_0^{2\\pi}f(x)\\cos x\\mathrm{d}x。
于是,我们把函数
f(x)
f(x)展开到了函数空间的一组标准正交基上。3. 本章总结
1.马尔科夫矩阵
马尔科夫矩阵(Markov matrix)的定义:
1.矩阵中的所有元素大于等于0
0;(因为马尔科夫矩阵与概率有关,而概率是非负的。)
2.每一列的元素之和为11。马尔可夫矩阵的性质:
1.马尔科夫矩阵必有特征值为1
1;
2.其他的特征值的绝对值皆小于11。2.傅立叶级数
暂无评论内容