您的位置:首页 > 其它

线性代数学习笔记(九)

2016-09-13 01:45 316 查看
说在前面:这一章真的比较复杂,前前后后花了一天才理清楚,对应的视频是第23节,貌似网易公开课这集的评论普遍也是比较难。


微分方程


一阶微分方程

一句话总结:我已经给出公式u(t)=C1eλ1tx1+C2eλ2tx2u(t)=C1eλ1tx1+C2eλ2tx2 ,你们往里面带特征值λ和特征向量x就行了!

这章用线代方法找微分方程(组)du/dt=Audu/dt=Au 的“通解”。注意,通解≠所有解(具体百度之):

u是标量时,du/dt=λudu/dt=λu的通解是 u=Ceλtu=Ceλt;u是向量时,每个分量 uiui 的通解 是n个不同的CieλitCieλit 的线性组合
当u二维时,向量 u 的通解:u(t)=C1eλ1tx1+C2eλ2tx2u(t)=C1eλ1tx1+C2eλ2tx2 (λ是A的特征值;x是λ对应的特征向量;C是任意常数,可由u的初值确定)
Strang没说怎么推理得到这个通解,只Check一下正确性:将解分别带入 du/dt=Audu/dt=Au的左右两侧,得到λx=Ax,完毕。我认为他是估计大家事先都知道解是什么(其实大家不一定见过微分方程),然后说这问题也能从线代来解决(之前他也用线代推出过一些图论和电路的公式)

这样,解微分方程=找A的特征值与特征向量。



Note我经常弄混的一个地方是u的分量的意义:

方程组中,du1 /dt = ...u1 + ... u2 + ...,这个是条件,用所有分量来对u1的变化趋势进行限制
解中,u1(t)=C1eλ1tx11+C2eλ2tx22=f(t)u1(t)=C1eλ1tx11+C2eλ2tx22=f(t),注意变量只有t;x是常量,C虽可变,但只有固定C之后,u才有意义,所以也视C为常量


二阶微分方程

在微分方程教材中,解my''+by'+ky=0这样的二阶微分方程的步骤是:

设y=eλt,将其带入原式得到:(mλ2+bλ+k)eλt=0
这样只能是(mλ2+bλ+k)=0了,解方程得到λ1与λ2,对应y1=eλ1t和y2=eλ2t
通解y=C1*y1+C2*y2

现在用线代的视角解二阶微分,注意一阶和二阶微分的不同:

一阶微分如果只有一个式子,可直接得到解;如果有两个式子,则通过上述方法来解
(这里介绍的)二阶微分只有一个式子,技巧在于将y视为u1,y'视为u2,这样就将问题化为一阶微分方程了(时刻感到线代世界的奇妙)!解得的u包括u1(也就是y)与u2(也就是y')的通解,一举两得

例如这样,注意,第一个式子是为了构造出矩阵A而生拼硬凑的(但是是正确的)。




n阶微分方程

解法是类似的,多少阶都看成u的一个分量就可以了。


稳定性

当t→∞时,如果u=0,则系统趋于stability。由微分方程的通解可以看出:

假如λ是实数,如果对所有λ,都有λ<0(注意不能等于0),那么u=0
假如λ是复数,对于e(r+is)t,只需要实数r<0,就有u=0;虚数模长为1,没有影响:eist=cos st + i sin st
对于二阶矩阵,只需要:迹(主对角线元素之和)<0 且 行列式>0,即可满足稳定性

当t→∞时,如果u=某个常数,则系统趋于steady state,需要的条件是:某几个特征值为0,其余所有特征值<0(我觉得stability和steady state意思差不多,可能是为了强调steady state是一个临界状态吧)

如果有一个特征值大于0,则系统blow up!


关于eAt


将微分方程的解化为eAt

假如A有n个相互独立的特征向量,我们可以设微分方程的解为u=Svu=Sv,S的列向量是A的特征向量,其本质是一堆数字常量;v是变量。

因为S是一堆数字,所以可以直接提出,这样方程du/dt=Audu/dt=Au变为:

S∗dv/dt=ASvS∗dv/dt=ASv

有:

dv/dt=S−1ASv=Λvdv/dt=S−1ASv=Λv

ΛΛ除了主对角线是特征值外,其余元素都是零。上式其实是将u的各个变量化成v,从而实现解耦合(像du1/dt的解和u1,u2...un都相关这样叫做耦合,现在dv1/dt只和v1相关,dv2/dt只和v2相关,这就没有耦合,从u到v的过程叫做“解耦合”)。解上式,得:

v(t)=eΛtv(0)v(t)=eΛtv(0) (只有Λ才能这么解,稍后解释)

通过v得到u:

u(t)=Sv(t)=SeΛtv(0)=SeΛtS−1u(0)=eAtu(0)u(t)=Sv(t)=SeΛtv(0)=SeΛtS−1u(0)=eAtu(0) (eAt与SeΛtS-1的关系稍后解释)


别急!什么是eAt

指数的幂是矩阵?!这需要用泰勒级数来解释,Strang提到有两个经典的泰勒展开公式(我们只需用到第一个):

eAt=I+At+(At)2/2+(At)3/6+...+(At)n/(n!)+...=∑∞0(At)n/(n!)eAt=I+At+(At)2/2+(At)3/6+...+(At)n/(n!)+...=∑0∞(At)n/(n!)
(I−At)−1=I+At+(At)2+(At)3+...+(At)n+...=∑∞0(At)n(I−At)−1=I+At+(At)2+(At)3+...+(At)n+...=∑0∞(At)n


用泰勒级数来解释eAt

(解释1)

回头再看,eΛteΛt按照泰勒展开,得到I+Λt+(Λt)2/2+(Λt)3/6+...I+Λt+(Λt)2/2+(Λt)3/6+...,由于是对角矩阵,Λ平方相当于对角元素各自平方,这样可知展开后的矩阵的每个对角线元素,是λ_i的展开式。

说了这么多废话就是想说:eΛteΛt的对角线元素是eλiteλit

(解释2)

我们再将eAteAt展开,并用A=SΛS−1A=SΛS−1带入,就有:




有什么用?

u(t)=SeΛtS−1u(0)=eAtu(0)u(t)=SeΛtS−1u(0)=eAtu(0)

这个公式将向量形式的解与标量形式的解统一了,方便记忆。注意,u(t)=eAtu(0)u(t)=eAtu(0)是一定成立的,但是u(t)=SeΛtS−1u(0)u(t)=SeΛtS−1u(0)只有在A能对角化时才可以。

上式中,S是静止的,u(0)是给定的,所以变化的只有eΛt,微分方程的解是否稳定也在于eΛt的变化趋势。由于Λ是对角矩阵,eΛt的展开式也能很方便地看出(也是一个对角矩阵,对角线元素就是eλt),所以:

所有λ都小于0时,随着t增大,eΛt趋于0,u也趋于0
当有几个λ=0,其余都小于0时,随着t增大,eΛt只有一个元素等于1,其余都趋于0,u也趋于一个稳定的分布
只要有一个λ>0,u都会blow up!

(上面其实只是在新的视角上把前面的部分复述一遍。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: