原文: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位的”

线性代数笔记24——微分方程和exp(At)的更多相关文章

  1. JAVA自学笔记24

    JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...

  2. 线性代数笔记13——Ax=b的通解

    关于最简行阶梯矩阵和矩阵秩,可参考<线性代数笔记7——再看行列式与矩阵> 召唤一个方程Ax = b: 3个方程4个变量,方程组有无数解,现在要关注的是b1b2b3之间满足什么条件时方程组有 ...

  3. 【线性代数】6-3:微分方程的应用(Applications to Differential Equations)

    title: [线性代数]6-3:微分方程的应用(Applications to Differential Equations) categories: Mathematic Linear Algeb ...

  4. 【线性代数】2-4:矩阵操作(Matrix Operations)

    title: [线性代数]2-4:矩阵操作(Matrix Operations) toc: true categories: Mathematic Linear Algebra date: 2017- ...

  5. 线性代数之——微分方程和 exp(At)

    本节的核心是将常系数微分方程转化为线性代数问题. \[\frac{du}{dt}=\lambda u \quad 的解为 \quad u(t) = Ce^{\lambda t}\] 代入 \(t=0\ ...

  6. Linux实战教学笔记24:SSH连接原理及ssh-key

    目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...

  7. Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net

    在前面的笔记中已经介绍了如何在ASP.NET WebForm中使用Ext.Net,由于这个系列一直在WebForm中使用,所以并没有涉及到ASP.NET MVC中的用法. 如果你要在ASP.NET M ...

  8. Java学习笔记24(Map集合)

    Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...

  9. 线性代数笔记10——矩阵的LU分解

    在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...

随机推荐

  1. vivo web service:亿万级规模web服务引擎架构

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q vivo web service是开发团队围绕奇点 ...

  2. Excel映射到实体-easyexcel工具

    来源 项目需要把Excel进行解析,并映射到对象属性,实现类似Mybatis的ORM的效果.使用的方式是自定义注解+POI,这种方式代码复杂而且不易于维护. easyexcel是阿里巴巴开源的一个框架 ...

  3. PHP 字符串大全

    PHP字符串函数是核心的一部分.无需安装即可使用这些函数 函数名称 描述 addcslashes 以 C 语言风格使用反斜线转义字符串中的字符 addslashes 使用反斜线引用字符串 bin2he ...

  4. Dynamics 365 Customer Engagement V9.X新引入的自动编号属性介绍

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  5. The Library:2 Vulnhub Walkthrough

    主机层面扫描探测: ╰─ nmap -p1-65535 -sV -A 10.10.202.132 Starting Nmap 7.70 ( https://nmap.org ) at 2019-08- ...

  6. ProjectServer2010升级到ProjectServer2016,Sharepoint2010升级到Sharepoint2016第一章

    之后还原 Project Server 2010 数据库和包含 Project Web App 网站数据的 SharePoint 内容数据库,您可以运行数据和 Project Web App 网站集升 ...

  7. Flutter速记

    一.安装 参考https://www.jianshu.com/p/cda416e2fc0d         二.换图标   三.打包 参考:https://www.cnblogs.com/shuang ...

  8. Cocos2d-x项目编译为Android应用——命令行方式

    配置: 相关工具:Cocos2d-x 3.2 + Ant 1.9.4 + Android NDK r9d + Android SDK 运行平台:OS X 10.9.4+ Xcode 6 前言:笔者使用 ...

  9. java之集合工具类Collections

    Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...

  10. Goland安装

    Goland安装 http://c.biancheng.net/view/6124.html