原文: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. .net core 2.1 Nlog.Web.AspNetCore Nlog日志

    1.先创建 .net core Web 应用程序,选择API 2.安装 Nuget 包:Nlog.Web.AspNetCore install-package Nlog install-package ...

  2. report framework

    大标题 摘要: 关键字: 1 第一题:(爬虫) 1.1 问题分析及解题思路 本题需要爬取xxxx的数据,运用Python的Request爬虫框架 1.2 解题流程及代码 1.2.1定义爬虫类-构造函数 ...

  3. vue中监听路由参数的变化

    在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,期望达到数据的更新. mounted: () =>{ this.id = this.$route.query.id; this. ...

  4. 基于webpack实现多html页面开发框架七 引入第三方库如jquery

    一.解决什么问题 1.如何引入第三方库,如jquery等 二.引入jquery方法 1.下载jquery.min.js放到assets/lib下面 2.安装copy-webpack-plugin,将已 ...

  5. Spring Boot Mybatis 最基本使用mysql存储过程

    首先声明:只是用最简单的方法大致了解如何用存储过程开发,如果需要查看存储过程创建语法的自行百度搜索 一.首先创建最基本的数据库 CREATE TABLE `t_user` ( `id` varchar ...

  6. jquery仿淘宝购物车页面商品结算(附源码)

    1.效果图如下: 2.源码如下: html部分: <!doctype html> <html lang="en"> <head> <met ...

  7. SQL Server获取索引创建时间&重建时间&重组时间

    之前写过一篇博客"SQL Server中是否可以准确获取最后一次索引重建的时间?",里面主要讲述了三个问题:我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild ...

  8. 初级模拟电路:3-11 BJT实现电流源

    回到目录 1. 恒流源 (1)简易恒流源 用BJT晶体管可以构造一个简易的恒流源,实现电路如下: 图3-11.01 前面我们在射极放大电路的分压偏置时讲过,分压偏置具有非常好的稳定性,几乎不受晶体管的 ...

  9. Centos 7.5私有域名服务器部署(coredns+etcd)

    单机配置: 一.安装etcd:   1.安装 yum install etcd -y   2.启动 systemctl start etcd   3.设置开机启动 systemctl enable e ...

  10. 图片转换成base64

    let bgcImage = 'http://192.168.0.83:9080/files/4a9c3056-9b9b-4b41-b8e2-fd9f27023c41.jpg' let image = ...