线性代数笔记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 = Au,u=(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点处进行泰勒展开,注意这里的O是A的同阶零矩阵,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)的更多相关文章
- JAVA自学笔记24
JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...
- 线性代数笔记13——Ax=b的通解
关于最简行阶梯矩阵和矩阵秩,可参考<线性代数笔记7——再看行列式与矩阵> 召唤一个方程Ax = b: 3个方程4个变量,方程组有无数解,现在要关注的是b1b2b3之间满足什么条件时方程组有 ...
- 【线性代数】6-3:微分方程的应用(Applications to Differential Equations)
title: [线性代数]6-3:微分方程的应用(Applications to Differential Equations) categories: Mathematic Linear Algeb ...
- 【线性代数】2-4:矩阵操作(Matrix Operations)
title: [线性代数]2-4:矩阵操作(Matrix Operations) toc: true categories: Mathematic Linear Algebra date: 2017- ...
- 线性代数之——微分方程和 exp(At)
本节的核心是将常系数微分方程转化为线性代数问题. \[\frac{du}{dt}=\lambda u \quad 的解为 \quad u(t) = Ce^{\lambda t}\] 代入 \(t=0\ ...
- Linux实战教学笔记24:SSH连接原理及ssh-key
目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...
- Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net
在前面的笔记中已经介绍了如何在ASP.NET WebForm中使用Ext.Net,由于这个系列一直在WebForm中使用,所以并没有涉及到ASP.NET MVC中的用法. 如果你要在ASP.NET M ...
- Java学习笔记24(Map集合)
Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...
- 线性代数笔记10——矩阵的LU分解
在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...
随机推荐
- java8-Optional的引入
背景 NPE问题,100%的Java程序员都碰到,并且曾经是心中的痛. 1965年英国TonyHoare引入了Null引用,后续的设计语言包括Java都保持了这种设计. 一个例子 业务模型 Perso ...
- Consul初探-从安装到运行
前言 伟大领袖毛主席说过:实践是检验真理的唯一标准!经过上一篇的学习,我基本掌握了 Consul 的基本原理,接下来就是动手实践了:Consul 的部署方式分为两种,分别是二进制包和docker方式, ...
- 教你用python假装黑客装逼,当着朋友的面破解他的网站密码!
如何破解iphone登陆密码 今天看了一篇关于如何破解iphone手机密码的文章,瞬间觉得科学技术不是第一生产力,why? 根据“可靠消息”称,即便美国FBI也无法轻易的对iphone手机进行暴力破解 ...
- 关于Fastjson 1.2.24 反序列化导致任意命令执行漏洞
环境搭建: sudo apt install docker.io git clone https://github.com/vulhub/vulhub.git cd vulhub fastjson 1 ...
- CAS服务端数据源设置
2.CAS服务端数据源设置 2.1需求分析 我们现在让用户名密码从我们的品优购的user表里做验证 2.2配置数据源 (1)修改cas服务端中web-inf下deployerConfigContext ...
- Struts2.0
流程详解: 配置详解: constant (常用常量配置) 使用Struts2 框架 ,先要导入Struts2 需要的jar 包 , 通过配置中央控制器 以及web.xml 来实现 Str ...
- chunked
简介 chunked是一种HTTP协议的分块传输编码的机制,即一个HTTP消息可以分成多个部分进行传输,它对于HTTP请求和HTTP响应都适用.对于非持续连接,浏览器通过连接是否关闭来界定请求和响应实 ...
- September 08th, 2019. Sunday, Week 37th.
A heavy drew refreshed the earth at night. 夜晚厚重的露水滋养着大地. From Leo Tolstoy. Today is the White Drew D ...
- IT兄弟连 HTML5教程 HTML5的基本语法 小结及习题
小结 一个完整的HTML文件由标题.段落.列表.表格.文本,即嵌入的各种对象所组成,这些逻辑上统一的对象称为元素.HTML文档主体结构分为两部分,一部分是定义文档类型,另一部分则是定义文档主体的结构框 ...
- python __getattr__和 __getattribute__
__getattr__ 这个魔法函数会在类中查找不到属性时调用 class User: def __init__(self): self.info = 1 def __getattr__(self, ...