线性代数之——微分方程和 exp(At)
本节的核心是将常系数微分方程转化为线性代数问题。
\[\frac{du}{dt}=\lambda u \quad 的解为 \quad u(t) = Ce^{\lambda t}\]
代入 \(t=0\),可得 \(u(0) = C\),因此有 \(u(t) = u(0)e^{\lambda t}\)。这是只有一个变量的情况,在线性代数里,我们扩展到 \(n\) 个方程的情况。
\[\frac{d\boldsymbol u}{dt}=A \boldsymbol u \quad 初始条件为向量 \quad \boldsymbol u(0)_{t=0} \]
注意,这里 \(A\) 是常矩阵,不随时间而改变。而且这些方程是线性的,如果 \(\boldsymbol u(t)\) 和 \(\boldsymbol v(t)\) 都是方程组的解,那么它们的线性组合 \(C\boldsymbol u(t)+D\boldsymbol v(t)\) 也是解,我们需要 \(n\) 个这样的常数来匹配方程组的初始条件。
1. \(\frac{d\boldsymbol u}{dt}=A \boldsymbol u\) 的解
其中一个解是 \(e^{\lambda t} \boldsymbol x\),\(\lambda\) 是矩阵 \(A\) 的特征值,而 \(\boldsymbol x\) 是特征向量。将这个解代入原方程,利用 \(A\boldsymbol x=\lambda \boldsymbol x\) 可得
\[\frac{d\boldsymbol u}{dt} = \lambda e^{\lambda t} \boldsymbol x = A e^{\lambda t} \boldsymbol x=A \boldsymbol u\]
这个解的所有部分都有 \(e^{\lambda t}\),当 \(\lambda>0\) 时,解会增长;当 \(\lambda<0\) 时,解会衰减。而当 \(\lambda\) 为虚数时,则它的实部决定解是增长还是衰减。
- 例 1
求解 \(\frac{d\boldsymbol u}{dt}=A \boldsymbol u = \begin{bmatrix}0&1 \\ 1&0\end{bmatrix}\boldsymbol u,\boldsymbol u_0 = \begin{bmatrix}4 \\ 2\end{bmatrix}\)。
矩阵 \(A\) 的特征值为 1 和 -1,特征向量为 (1, 1) 和 (1, -1),因此两个纯指数解为:
\[\boldsymbol u_1(t) = e^{\lambda_1 t} \boldsymbol x_1 = e^t\begin{bmatrix}1 \\ 1\end{bmatrix}\]
\[\boldsymbol u_2(t) = e^{\lambda_2 t} \boldsymbol x_2 = e^{-t}\begin{bmatrix}1 \\ -1\end{bmatrix}\]
这些 \(\boldsymbol u\) 依然是矩阵的特征向量,它们满足 \(A\boldsymbol u_1 = \boldsymbol u_1\) 和 \(A\boldsymbol u_2 = -\boldsymbol u_2\),只不过是系数随着 \(t\) 改变罢了。方程组的全解为这些特解的线性组合。
利用初始条件我们可以确定出系数 \(C\) 和 \(D\)。
因此,我们可以通过以下三个步骤来求解 \(\frac{d\boldsymbol u}{dt}=A \boldsymbol u\)。
- 将 \(\boldsymbol u_0\) 写成特征向量的线性组合,\(\boldsymbol u_0 = c_1 \boldsymbol x_1+\cdots+c_n \boldsymbol x_n\);
- 将每个特征向量 \(\boldsymbol x_i\) 乘以 \(e^{\lambda_i t}\);
- 全解就是 \(e^{\lambda t}\boldsymbol x\) 的线性组合,\(\boldsymbol u(t) = c_1 e^{\lambda_1 t}\boldsymbol x_1+\cdots+c_ne^{\lambda_n t} \boldsymbol x_n\)。
注意,如果两个特征值相同而只有一个对应的特征向量,那么我们就需要另外一个解 \(te^{\lambda t}\boldsymbol x\)。
- 例 2
2. 二阶方程组
针对二阶方程 \(my''+by'+ky=0\),我们将之转化为矩阵形式,假设 \(m=1\)。
因此,我们需要先求解出矩阵的特征值和特征向量。
3. 2×2 矩阵的稳定性
针对方程组的解,我们想知道随着 \(t \to \infty\),解是否趋向于 \(\boldsymbol u = 0\),也就是问题是否是稳定的。这取决于矩阵的特征值。
全解是由 \(e^{\lambda t}\boldsymbol x\) 构建出来的。如果特征值 \(\lambda\) 是实数,只有当 \(\lambda<0\) 时,解才会趋向 0。如果特征值 \(\lambda\) 是复数,那么有 \(\lambda=r+is\),那么其实部必须小于零。
对 2×2 矩阵 \(\begin{bmatrix}a&b \\ c&d\end{bmatrix}\) 来说,如果其两个特征值满足上面的两个条件,则一定有:
\[\lambda_1 + \lambda_2 < 0 \to 矩阵的迹 \quad T = a + d < 0 \]
\[\lambda_1 \lambda_2 > 0 \to 矩阵的行列式 \quad D = ad - bc > 0 \]
4. 矩阵的指数次方
最后,我们想将方程组的解写成一个新的形式 \(\boldsymbol u(t) =e^{At}\boldsymbol u_0\)。
\[e^x = 1 + x+\frac{1}{2}x^2+\frac{1}{6}x^3 + \cdots\]
我们将 \(x\) 换成矩阵,可得:
\[e^{At} = I + At+\frac{1}{2}(At)^2+\frac{1}{6}(At)^3 + \cdots\]
它的导数为 \(Ae^{At}\):
\[A + A^2t+\frac{1}{2}A^3t^2+\frac{1}{6}A^4t^3 + \cdots =Ae^{At} \]
它的特征值是 \(e^{\lambda t}\):
\[(I + At+\frac{1}{2}(At)^2+\frac{1}{6}(At)^3 + \cdots)x = (1+\lambda t + \frac{1}{2}(\lambda t)^2+\frac{1}{6}(\lambda t)^3 + \cdots)x\]
假设 \(A\) 有 \(n\) 个线性不相关的特征向量,将 \(A=S\Lambda S^{-1}\) 代入 \(e^{At}\) 可得:
\[e^{At} = I + At+\frac{1}{2}(At)^2+\frac{1}{6}(At)^3 + \cdots\]
\[= I + S\Lambda S^{-1}t+\frac{1}{2}(S\Lambda S^{-1}t)(S\Lambda S^{-1}t)+ \cdots\]
将 \(S\) 和 \(S^{-1}\) 提取出来有
\[= S(I + \Lambda t+\frac{1}{2}(\Lambda t)^2+\cdots)S^{-1} = Se^{\Lambda t}S^{-1}\]
这和之前解的形式是一模一样的!
- 例 3
\(e^{At}\) 满足下面三个规则:
- \(e^{At}\) 总有逆矩阵 \(e^{-At}\);
- \(e^{At}\) 的特征值总是 \(e^{\lambda t}\);
如果 \(A\) 是反对称矩阵,即 \(A^T=-A\),那么 \(e^{-At}\) 是一个正交矩阵,转置等于逆。
例 4
获取更多精彩,请关注「seniusen」!
线性代数之——微分方程和 exp(At)的更多相关文章
- 线性代数笔记24——微分方程和exp(At)
原文:https://mp.weixin.qq.com/s/COpYKxQDMhqJRuMK2raMKQ 微分方程指含有未知函数及其导数的关系式,解微分方程就是找出未知函数.未知函数是一元函数的,叫常 ...
- 【线性代数】6-3:微分方程的应用(Applications to Differential Equations)
title: [线性代数]6-3:微分方程的应用(Applications to Differential Equations) categories: Mathematic Linear Algeb ...
- Matlab基础
基本运算: 一,矩阵的生成 clc ; clear all; close all; 1.直接输入 A = [ 1 ,2 ,3,4;2,3,4,5;3,4,5,6] A = 1 2 3 4 2 3 4 ...
- (转载)Ubuntu 安装GNU Scientific library(GSL)
背景: Blei的hlda的C语言实现需要使用C语言的科学计算包GSL,因此决定安装.由于在windows下安装极其繁琐,先在Linux上安装之. 系统环境: Linux version 2.6.35 ...
- ubuntu14.04 下安装 gsl 科学计算库
GSL(GNU Scientific Library)作为三大科学计算库之一,除了涵盖基本的线性代数,微分方程,积分,随机数,组合数,方程求根,多项式求根,排序等,还有模拟退火,快速傅里叶变换,小波, ...
- Ubuntu 安装GNU Scientific library(GSL)
注: 此系列为自己之前所搭建网站内容. 由于论文数据处理的需要,需要使用libeemd这个包,需要安装gsl科学库,windows下没有办法,只能转战ubuntu进行科学计算. GSL(GNU Sci ...
- 面向对象软件构造 (Bertrand Meyer 著)
Part A: The Issues 议题 第一章 软件品质 第二章 面向对象的标准 Part B: The Road To Object Orientation 通向面向对象之路 第三章 模块性 第 ...
- MATLAB求解代数方程、微分方程的一些常用指令
MATLAB版本:R2015b 1.求解符号矩阵的行列式.逆.特征值.特征向量 A = sym('[a11, a12; a21, a22]');deltaA = det(A)invA = inv(A) ...
- 龙哥库塔法or欧拉法求解微分方程matlab实现
举例:分别用欧拉法和龙哥库塔法求解下面的微分方程 我们知道的欧拉法(Euler)"思想是用先前的差商近似代替倒数",直白一些的编程说法即:f(i+1)=f(i)+h*f(x,y)其 ...
随机推荐
- Nodejs中获取参数以及处理参数
先看题干效果 在这里我们建了一个表单 填入表单需要提交的信息 对两个参数进行获取和一个加法计算 表单html代码 <form action='http://localhost:8080' met ...
- 微信小程序新版用户授权方式处理
最新更新(2018-12-27): 最近做了改版,做成默认进来就是首页,然后去判断有没有用户信息,没有的话再去判断用没授权过,如果授权过直接自动去获取,没有的话再跳转到授权页面.因为用户授权主要就是针 ...
- mysql对查出来的值,在sql里面拼接我们想要拼接的内容
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
- laravel4.2 union联合,join关联分组查询最新记录时,查询条件不对,解决方案
需求: 分组联合查询,或者最新记录. 问题: mysql分组的时候默认会查询第一条记录,存在gourp by时 order by 无效. 一般解决办法就是 ,select * from ( sele ...
- hive常见的几种优化手段
Hive调优的几个入手点: Hive是基于Hadoop框架的,Hadoop框架又是运行在JVM中的,而JVM最终是要运行在操作系统之上的,所以,Hive的调优可以通过如下几个方面入手: 操作系统调优 ...
- python2x和python3x的一些区别
python2x:各种按照自己代码习惯给python贡献源码 python3x:重写之后的源码,优美,清晰,简单 版本 打印函数 rang函数 输入函数 python2x print 或 print( ...
- Java学习笔记二十二:Java的方法重写
Java的方法重写 一:什么是方法的重写: 如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法. 语法规则 返回值类型.方法名.参数类型及个数都要与父类继承的 ...
- (cmath)关于头文件cmath
关于头文件cmath // -*- C++ -*- C forwarding header. // Copyright (C) 1997-2014 Free Software Foundation, ...
- shell基础笔记
什么是shell脚本 我自己对shell脚本的理解就是一系列的shell命令加入逻辑关系,实现类似"批处理"的功能.而不是简单的命令的堆砌,那样的shell脚本bug重重. 脚本开 ...
- HBase简介(梳理知识)
一. 简介 hbase是bigtable的开源山寨版本.是建立的hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统.它介于nosql和RDBMS之间,仅能通过主键(row key ...