• 线性代数笔记24——微分方程和exp(At)


      原文:https://mp.weixin.qq.com/s/COpYKxQDMhqJRuMK2raMKQ

      微分方程指含有未知函数及其导数的关系式,解微分方程就是找出未知函数。未知函数是一元函数的,叫常微分方程;未知函数是多元函数的,叫做偏微分方程。常微分方程有时也简称方程。微分方程是一门复杂的学科,对于常微分方程来说,可以使用特征值和特征向量的知识求解。

      

      相关前置知识:

        微分方程:单变量微积分11——常微分方程和分离变量

        泰勒公式:单变量微积分30——幂级数和泰勒级数 

        泰勒公式在0点展开的原因:多项式函数能够拟合非线性问题原理

        求逆矩阵:线性代数笔记8——求解逆矩阵

        求行列式:线性代数20——行列式和代数余子式

        特征值和特征向量:线性代数22——特征值和特征向量

          矩阵对角化:线性代数笔记23——矩阵的对角化和方幂

    常微分方程的一般解法

      根据概念构造一个常微分方程:

      目标是求得原函数u=u(t)的具体形式。通过积分求解:

      这就是最终答案的通解,C是任意常数。实际上这种解法就是利用了不定积分的知识:

      

      如果du/dt=u,可以使用分离变量法的求解方式:

      也就是说,当函数的导数是函数本身的时候,这个函数就是型如Aet的函数,由于A=eC是任意常数,所以经常用C代替A,写成u=Cet的形式。

      同理,对于du/dt=λu,微分方程的解是u(t)=Ceλt。当t=0时:

      由于C是任意常数,因此可以取C=u(0),得到u(t)= u(0)eλt,这样做可以去掉常数C。在实际问题中,u可以表示关于时间t的函数,对于时间来说,通常可以把t=0看作初始条件。

    常微分方程与矩阵

      现在将常微分方程扩展为常微分方程组,u1=u1(t),u2=u2(t),初始条件是t=0,初始值是u(0)=(1,0),求解微分方程:

      可以把微分方程组写成向量矩阵的形式:

      相当于将常微分方程中转换成了du/dt = Au的线性形式。

    常微分方程的线性代数解法

      对于du/dt = Au来说,u1和u2之间存在耦合(没有耦合就没必要写成方程组了),A表示它们的耦合关系:

      A可以用特征值和特征向量对角化,因此方程的解和矩阵A的特征值和特征向量存在关联关系。先求矩阵A的特征值。

      或许你可以马上看出A是个奇异矩阵,因此一个特征值是λ1=0。特征值之和是矩阵的迹,迹是矩阵主对角线元素和,因此可以求得另一个特征值是λ2=(-1-2)-0=-3。

      当然也可以用正统的方法求解:

      接下来根据特征方程求得特征向量。

    特解

      微分方程组有两组特解:

      这是两个纯指数解的组合。需要注意的是,这里x1和x2都是二维向量,因此v1和v2也是二维的。

      来验证一下v1,如果u=v1是方程的解,把v1代入原方程:

      只要验证①=②是否成立就可以了,假设等式成立:

      x1和λ1是Ax=λx的一组特征向量和特征值,因此①=②成立,v1是微分方程的解。同理,v2也是微分方程的解。

    通解

      对于du/dt = Au来说,如果v1和v2是方程的解,那么它们的线性组合也是方程的解,因此微分方程的通解是:

      验证的方法和验证特解类似:

      只要验证③=④是否成立就可以了,假设等式成立:

      x1和λ1是Ax=λx的一组特征向量和特征值,因此⑤成立。同理,⑥也成立,因此通解成立。

      最后将λ和x的值代入通解:

      如果没有初始条件,到这里就结束了,这就是u(t)的形态。本例给出了初始值,可以由此继续计算出C1和C2

      当t→∞时:

      随着t的增加,u(t)逐渐收敛到一个定值,我们称u(t)为稳态。

      通解指出了当A是2×2矩阵时u(t)达到稳态的条件:A的其中一个特征值是0,且另一个特征值小于0(如果是复数,则复数的实部小于0)。如果λ1=0, λ2>0,u(t)是发散的。

    解耦

      回顾上一节的内容,在通过初始值求解C的时候:

      如果用S表示特征向量矩阵,则上式可以写成Sc=u(0),即通过Sc=u(0)可以求得c。

      常微分方程组du/dt = Auu=(u1, u2),u1, u2是两个互相耦合的未知函数,A表明了它们的耦合关系,求解微分方程组的关键是如何解耦,而解耦的方式正是利用特征值和特征向量。现在的问题是,能否把微分方程的解表示成S和Λ的形式(Λ是特征值矩阵,参考上一章内容)?

      既然u是通过A耦合的,A又能通过S和Λ对角化(A=SΛS-1),因此u可以用特征向量矩阵S解耦,令u=Sv,v(t)是某个未知的常微分方程组:

      S是常矩阵,因此:

      根据上一章矩阵对角化的内容:

      这实际上是得到了没有耦合的新方程组:

      每个方程都可以套用一开始讲过的内容:du/dt=λu,微分方程的解是u(t)=Ceλt,再代入初始条件t=0,u(t)=u(0)eλt

      将二者合并:

      v(0)的具体值我们不知道也不关心,只知道是个常向量,Sc=u(0),c是任意常向量,设c=v(0):

      更进一步:

      接下来解释为什么会得到这个结论。

    矩阵指数exp(At)

      A是矩阵,eAt是以矩阵为指数的表达式,它代表什么意思呢?

      我们知道f(x)在x=0点处的泰勒展开式:

      ex在x0=0点处的泰勒展开式是:

      0的阶乘是1。展开式是收敛的,越靠后的项对总体的影响越小,越接近于0。证明起来较为容易:

      因此ex是收敛的。

      同样,eAt也在At=O点处进行泰勒展开,注意这里的OA的同阶零矩阵,eO等于单位矩阵:

      eAt也是收敛的。

      上一章已经讲过矩阵的对角化:

      代入到eAt中:

      中间的一大堆正好是e∧t的泰勒展开式,因此eAt最终可以写成:

      这就是矩阵指数的公式,当然,上式成立的前提是A可以对角化,即An×n存在n个独立的特征向量。

      最后再来看看e∧t是什么。

      和通解的形式一致,如果有初始值,可以根据初始值计算出具体的C。

    二阶常微分方程

      现在有一个二阶常微分方程:

      求解时需要把方程转换成矩阵的形式:

      这就又变成了du/dt=Au的形式,可以用矩阵直接求解。

    综合示例

      求解三阶常微分方程并构建eAt

      接下来需要求得A的特征值和特征矩阵。根据特征方程可得到:

      接下来通过3个特征值求的特征向量:

      第1个特征向量的特解是:

      类似的方式求得另外两个特征向量:

      u(t)的通解:

      最后来构建eAt

      

      

     相关前置知识:

        微分方程:单变量微积分11——常微分方程和分离变量

        泰勒公式:单变量微积分30——幂级数和泰勒级数 

        泰勒公式在0点展开的原因:多项式函数能够拟合非线性问题原理

        求逆矩阵:线性代数笔记8——求解逆矩阵

        求行列式:线性代数20——行列式和代数余子式

        特征值和特征向量:线性代数22——特征值和特征向量

          矩阵对角化:线性代数笔记23——矩阵的对角化和方幂


      作者:我是8位的

      出处:http://www.cnblogs.com/bigmonkey

      本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

      扫描二维码关注作者公众号“我是8位的”

  • 相关阅读:
    【Java】Swing-LookAndFeel 初解
    【软件】软件发布版本号说明
    【Gradle】Gradle compile 运用
    【Java】String,StringBuilder,StringBuffer 区别与实现
    Java面试题
    java面向对象_抽象类和接口
    Java学习_int和Integer的区别+包装类
    PHP-格式标签
    PHP+Zend 输出时中文乱码问题
    JSP学习
  • 原文地址:https://www.cnblogs.com/bigmonkey/p/11869737.html
Copyright © 2020-2023  润新知