e的矩阵指数

笔记来源: e的矩阵指数——怎么算?为什么?

在微分方程组、量子力学⋯\cdots⋯中用到了 e 的矩阵指数

将 exe^xex 写为泰勒展开式
ex=x0+x1+12x2+16x3+⋯+1n!xn+⋯e^{x}=x^0+x^1+\frac{1}{2}x^2+\frac{1}{6}x^3+\cdots+\frac{1}{n!}x^n+\cdots ex=x0+x1+21​x2+61​x3+⋯+n!1​xn+⋯

将实数 xxx 替换为矩阵 XXX
eX=X0+X1+12X2+16X3+⋯+1n!Xn+⋯e^{X}=X^0+X^1+\frac{1}{2}X^2+\frac{1}{6}X^3+\cdots+\frac{1}{n!}X^n+\cdots eX=X0+X1+21​X2+61​X3+⋯+n!1​Xn+⋯
e[abcd]=[abcd]0+12[abcd]2+16[abcd]3+⋯+1n![abcd]ne^{\begin{bmatrix}a & b\\ c & d\end{bmatrix}}= \begin{bmatrix}a & b\\ c & d\end{bmatrix}^0+ \frac{1}{2}\begin{bmatrix}a & b\\ c & d\end{bmatrix}^2+ \frac{1}{6}\begin{bmatrix}a & b\\ c & d\end{bmatrix}^3+\cdots+ \frac{1}{n!}\begin{bmatrix}a & b\\ c & d\end{bmatrix}^n e[ac​bd​]=[ac​bd​]0+21​[ac​bd​]2+61​[ac​bd​]3+⋯+n!1​[ac​bd​]n

我们从微分方程组的角度切入来了解 eee 的矩阵指数

{x′(t)=ax(t)+by(t)y′(t)=cx(t)+dy(t)[x′(t)y′(t)]=[abcd][x(t)y(t)]ddtv⃗(t)=Mv⃗(t)\begin{cases} x'(t)=ax(t)+by(t)\\ y'(t)=cx(t)+dy(t)\\ \end{cases}\\ ~\\ \begin{bmatrix}x'(t)\\ y'(t)\end{bmatrix}= \begin{bmatrix}a & b\\ c & d\end{bmatrix} \begin{bmatrix}x(t)\\ y(t)\end{bmatrix}\\ ~\\ \frac{d}{dt}\vec{v}(t)=M\vec{v}(t) {x′(t)=ax(t)+by(t)y′(t)=cx(t)+dy(t)​ [x′(t)y′(t)​]=[ac​bd​][x(t)y(t)​] dtd​v(t)=Mv(t)

如何求解这个微分方程组:
(微分方程的解是求原函数,一个原函数为一个解,下式中的向量和矩阵意味着在同时求解多个微分方程,即求解微分方程组)
ddtv⃗(t)=Mv⃗(t)\frac{d}{dt}\vec{v}(t)=M\vec{v}(t) dtd​v(t)=Mv(t)
上式中发现:v⃗(t)\vec{v}(t)v(t)的导数 = M × 其本身,我们联想到 ddxeax=aeax\frac{d}{dx}e^{ax}=ae^{ax}dxd​eax=aeax

通过一个例子来类比推导
每一个初始值x0x_0x0​都对应一个解(微分方程的解是求原函数,一个原函数为一个解)
比如:t=0,x(0)=x0=0.5t=0,x(0)=x_0=0.5t=0,x(0)=x0​=0.5,它就对应 x(t)=0.5e0.3tx(t)=0.5e^{0.3t}x(t)=0.5e0.3t 这条曲线
比如:t=0,x(0)=x0=1t=0,x(0)=x_0=1t=0,x(0)=x0​=1,它就对应 x(t)=e0.3tx(t)=e^{0.3t}x(t)=e0.3t 这条曲线
比如:t=0,x(0)=x0=3t=0,x(0)=x_0=3t=0,x(0)=x0​=3,它就对应 x(t)=3e0.3tx(t)=3e^{0.3t}x(t)=3e0.3t 这条曲线


我们将所有初值用 变量x0x_0x0​ 替代,就得到了微分方程的所有解
x(t)=x0e0.3tddtx(t)=0.3x0e0.3t=0.3x(t)x(t)=x_0e^{0.3t}\\ ~\\ \frac{d}{dt}x(t)=0.3x_0e^{0.3t}=0.3x(t) x(t)=x0​e0.3t dtd​x(t)=0.3x0​e0.3t=0.3x(t)
我们将上面两式中的0.3换为矩阵,x(t)x(t)x(t)换为向量【本质上是多个微分方程写为了矩阵形式】
v⃗(t)=[x(t)y(t)]=e[abcd]t[x(0)y(0)]ddtv⃗(t)=ddt[x(t)y(t)]=[abcd]e[abcd]t[x(0)y(0)]=[abcd][x(t)y(t)]=Mv⃗(t)\vec{v}(t)=\begin{bmatrix} x(t)\\ y(t) \end{bmatrix}=e^{ \begin{bmatrix} a & b\\ c & d \end{bmatrix}t} \begin{bmatrix} x(0)\\ y(0) \end{bmatrix}\\ ~\\ \frac{d}{dt}\vec{v}(t)= \frac{d}{dt}\begin{bmatrix} x(t)\\ y(t) \end{bmatrix}= \begin{bmatrix} a & b\\ c & d \end{bmatrix} e^{ \begin{bmatrix} a & b\\ c & d \end{bmatrix}t} \begin{bmatrix} x(0)\\ y(0) \end{bmatrix}= \begin{bmatrix} a & b\\ c & d \end{bmatrix} \begin{bmatrix} x(t)\\ y(t) \end{bmatrix}=M\vec{v}(t) v(t)=[x(t)y(t)​]=e[ac​bd​]t[x(0)y(0)​] dtd​v(t)=dtd​[x(t)y(t)​]=[ac​bd​]e[ac​bd​]t[x(0)y(0)​]=[ac​bd​][x(t)y(t)​]=Mv(t)

v⃗(t)=eMtv⃗(0)ddtv⃗(t)=Mv⃗(t)\vec{v}(t)=e^{Mt}\vec{v}(0)\\ ~\\ \frac{d}{dt}\vec{v}(t)=M\vec{v}(t) v(t)=eMtv(0) dtd​v(t)=Mv(t)
我们直接由式子推导



例子:

从代数角度求解微分方程组
初始值
{x(0)=x0y(0)=y0\begin{cases} x(0)=x_0\\ y(0)=y_0\\ \end{cases} {x(0)=x0​y(0)=y0​​
微分方程组
{x′(t)=−y(t)y′(t)=x(t)\begin{cases} x'(t)=-y(t)\\ y'(t)=x(t)\\ \end{cases} {x′(t)=−y(t)y′(t)=x(t)​

[x′(t)y′(t)]=[−y(t)x(t)]\begin{bmatrix}x'(t)\\ y'(t)\end{bmatrix}= \begin{bmatrix}-y(t)\\ x(t)\end{bmatrix} [x′(t)y′(t)​]=[−y(t)x(t)​]

[x′(t)y′(t)]=[0−110][x(t)y(t)]ddtv⃗(t)=Mv⃗(t)\begin{bmatrix}x'(t)\\ y'(t)\end{bmatrix}= \begin{bmatrix}0 & -1\\ 1 & 0\end{bmatrix} \begin{bmatrix}x(t)\\ y(t)\end{bmatrix}\\ ~\\ \frac{d}{dt}\vec{v}(t)=M\vec{v}(t) [x′(t)y′(t)​]=[01​−10​][x(t)y(t)​] dtd​v(t)=Mv(t)

M=[0−110]M=\begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix} M=[01​−10​]


v⃗(t)=[x(t)y(t)]=e[0−110]t[x(0)y(0)]\vec{v}(t)=\begin{bmatrix} x(t)\\ y(t) \end{bmatrix}=e^{ \begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix}t} \begin{bmatrix} x(0)\\ y(0) \end{bmatrix}\\ v(t)=[x(t)y(t)​]=e[01​−10​]t[x(0)y(0)​]

微分方程组的解:


从几何角度解微分方程组

速度向量和位置向量作圆周运动的视角
M=[0−110]M=\begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix} M=[01​−10​]
这里的矩阵 MMM 其实是一个逆时针旋转90°的变换


上式中位置向量为[x(t)y(t)]\begin{bmatrix}x(t)\\ y(t)\end{bmatrix}[x(t)y(t)​],将位置向量逆时针旋转90°得到速度向量ddt[x(t)y(t)]\frac{d}{dt}\begin{bmatrix}x(t)\\ y(t)\end{bmatrix}dtd​[x(t)y(t)​]


能让速度向量在运动中一直垂直于位置向量的唯一方法是绕原点作圆周运动


从基向量作圆周运动的视角

上述提到的矩阵 MMM 其两个基向量(红色、绿色向量)成90°,这两个向量随时间 ttt 一起作圆周运动

下图中的 x0=x(0)、y0=y(0)x_0=x(0)、y_0=y(0)x0​=x(0)、y0​=y(0) 即初始条件


综上:两个角度描述同一个圆周运动

速度向量和位置向量作圆周运动的视角
微分方程组:

从基向量作圆周运动的视角
微分方程组的解:

3Blue1Brown系列:e的矩阵指数相关推荐

  1. 矩阵指数(The Exponential of a Matrix)

    矩阵指数 本人另一篇相关博客:3Blue1Brown系列:e的矩阵指数 解有两种形式: 1.特征向量的线性组合 2.eAtu⃗(0)e^{At}\vec{u}(0)eAtu(0) 用新形式 eAtu⃗ ...

  2. matlab中的expotest,提高Fortran矩阵指数性能(Expokit比Matlab、Python慢)

    我正在进行一个模拟,其中的瓶颈是执行大量复杂的双精度矩阵指数运算,我发现Fortran(Expokit)对于小矩阵很好,但对于较大的矩阵,它的性能比Matlab或Python差.在 我在下面包含了一个 ...

  3. Matlab学习笔记——矩阵求幂和矩阵指数

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 矩阵求幂和矩阵指数 矩阵求幂和矩阵指数 利用MATLAB对矩阵求幂可以很容易地得到结果,例如: 矩阵求幂 元素对元 ...

  4. 矩阵指数 matlab,矩阵指数 - MATLAB Simulink Example - MathWorks 中国

    方法 1:加权平方 expmdemo1 是以下著作中算法 11.3.1 的实现: Golub, Gene H. and Charles Van Loan.Matrix Computations, 3r ...

  5. 第二十九讲 求方程组通解和特解的公式(矩阵指数)

    一,齐次方程组的通解: 通解形式:x⃗=c1x1⃗+c2x2⃗\vec{x}=c_{1}\vec{x_{1}}+c_{2}\vec{x_{2}}x=c1​x1​​+c2​x2​​ 用基本矩阵简化为:x ...

  6. 矩阵指数 matlab,空间计量-矩阵指数空间模型

    原标题:空间计量-矩阵指数空间模型 空间计量经济学 Matlab应用学习手册 空间计量经济学创造性地处理了经典计量方法在面对空间数据时的缺陷,考察了数据在地理观测值之间的关联.近年来在人文社会科学空间 ...

  7. 时间系列模型——三次指数平滑法

    ** 时间系列模型--三次指数平滑法 ** 时间序列预测技术是通过预测目标自身时间序列的处理,来研究其变化趋势,一个时间序列往往是以下几类变化形式的叠加与耦合.(1)长期趋势变动.(2)季节变动.(3 ...

  8. 矩阵指数 Matrix Exponentials

    转自:https://zh.wikipedia.org/wiki/%E7%9F%A9%E9%98%B5%E6%8C%87%E6%95%B0 其中,X. X2.X3--.Xk 都是n阶矩阵,显然 exp ...

  9. 【3B1B笔记】e的矩阵指数——怎么算?为什么?

    [[官方双语]e的矩阵指数--怎么算?为什么?] 注:本文未记录薛定谔方程及量子力学部分 1.定义 1.1定义 把不同的式子带入泰勒级数,记作e的指数 对于矩阵的式子来说,为矩阵的乘方和加减运算,但对 ...

最新文章

  1. Python3 使用推导式统计字符出现次数
  2. FixedThreadPool吞掉了异常
  3. 【图像处理】——Python实现two_pass方法来进行连通域的提取
  4. 教你如何把自己从好友的QQ中删除
  5. SCCM 2012远程控制
  6. android 纯c/c++开发(转)
  7. QT Designer前端页面添加的图标在程序运行时不显示解决方法
  8. Coursera, Big Data 3, Integration and Processing (week 1/2/3)
  9. 3dmax su 简单_Sketchup导入3DSMAX的方法 3DMAX导入SU技巧
  10. 爱思服务器shsh文件类型,爱思服务器查询shsh失败
  11. 金蝶设置盘盈盘亏单据权限
  12. 年龄到底怎么算才对_怎么算年龄才是正确的
  13. InnoDB: space header page consists of zero bytes in tablespace ./mysql/iyikcr32.ibd (table mysql/iyi
  14. java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)
  15. adb连接夜神模拟器提示:adb unable to connect to 127.0.0.162001 cannot connect to 127.0.0.16200 由于目标 计算机积极拒绝
  16. Writing a code for speed tracking control of maglev trains in MATLAB using reinforcement learning
  17. 液位系统c语言程序,基于STM32的液位控制系统设计
  18. 【开发环境】(基于Hexo)个人博客主题(Hexo Fluid)更换
  19. python编写我的世界
  20. Java实现提示音,亲测有效

热门文章

  1. 山东省耕地“进出平衡”实用工具箱
  2. 单层厚SrRuO中的拓扑霍尔效应3缺陷工程诱发的分层
  3. Jquery中的Each方法
  4. WordPress zibll子比主题美化教程(实时更新)-轻论坛
  5. 首发Yolov8涨点神器:华为诺亚2023极简的神经网络模型 VanillaNet---VanillaBlock助力检测,实现暴力涨点
  6. 仿写Android屏幕解锁小应用
  7. Wireshark协议分析从入门到精通(免费版)-陈鑫杰-专题视频课程
  8. 智慧(灯杆)路灯的外观设计针对应用场景的风格及理念有哪些?
  9. 将U盘文件系统转换为NTFS
  10. 快速掌握Nginx(二) —— Nginx的Location和Rewrite