线性微分方程

一般理论

指数矩阵函数的求法

3Blue1Brown e的矩阵指数

数学上有这种问题:计算\(e^{\boldsymbol{A}t}\)

A是个矩阵,言下之意,计算出来的结果也是个矩阵。

指数里面有个矩阵,这事情看起来挺奇妙的,但是他代表了一种很优美的运算。指数矩阵可以用来解一类重要的微分方程,在物理学里有应用。量子物理里面到处都是,薛定谔方程。

\[e^{-i\hat{H}t/}\]
补充

宇宙万物往往可以用微分方程的语言来描述,尤其是物理系统中。电学系统也差不多是。动力系统 (dynamical system),可能叫动态系统更合适,这个小分支对控制来说应该也挺有用的,后面学学系统的整理一下。

当然上面的,物理,量子,薛定谔,是3B1B视频里提的,我也不懂,至于还把他写出来,因为不懂所以看起来高端嘛。。

将矩阵指数可视化的一个不错的方式是用流。

想要搞明白这个运算到底是在干什么,因为一个常数的指数塞了个矩阵,这事怎么看都怎么奇怪。着显然不是像\(e^3\)这样\(e \cdot e \cdot e\)

定义用到了一个无穷项多项式。

\[e^x= x^0 + x^1 + \frac{1}{2}x^2 + \frac{1}{6}x^3 + \cdots + \frac{1}{n!}x^n + \cdots\]

当带入2时,求和正好就是e^2。这是个级数,巧的是,前面我也整理了级数的内容。

出于各种原因,数学家喜欢试着往级数里面塞各种东西看看,比如复数,或者矩阵。这些东西看起来不能当指数用,但是当把这些东西写进级数里时,也会写作\(\exp(\pi i)\)。这个记号还是稍稍体现了这些函数和实变量之间的联系的,尽管带进去的变量作为指数显然没啥意义。再有一种记号就是直接写成\(e^{\pi i}\),把一串式子浓缩成一个简单的形式,所以说e的肩膀上实数是泰勒展开定理,肩膀上是其他奇怪的东西是"定义"。指数矩阵代表的实际上是后面那一串东西。

\[e^{\pi i}= (\pi i)^0 + (\pi i)^1 + \frac{1}{2}(\pi i)^2 + \frac{1}{6}(\pi i)^3 + \cdots + \frac{1}{n!}(\pi i)^n + \cdots\] \[e^{\begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}}= \begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}^0 + \begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}^1 + \frac{1}{2}\begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}^2 + \frac{1}{6}\begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}^3 + \cdots + \frac{1}{n!}\begin{bmatrix} 3 & 1 & 4 \\ 1 & 5 & 9 \\ 2 & 6 & 5 \\ \end{bmatrix}^n + \cdots\]

这也使得我们在分析指数矩阵的不得不硬着头皮看后面这一长串东西,因为\(e^{\boldsymbol{A}t}\)只是个记号。

低情商(cynically):滥用数学符号。

高情商(charitably):数学界"发现"和"发明"的统一

现在来搞清楚这里到底是什么意思。首先这必须是个方阵,乘方就是矩阵连乘,加法也是矩阵加法。那么把这个加法扩展到无穷有没有问题呢?后面再说。

先来考虑一个简单的矩阵

\[e^{\begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}} = \begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}^0 + \begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}^1 + \frac{1}{2}\begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}^2 + \frac{1}{6}\begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}^3 + \cdots + \frac{1}{n!}\begin{bmatrix} 0 & -\pi \\ \pi & 0 \\ \end{bmatrix}^n + \cdots\]

一直算下去会发现,这个矩阵接近一个定值

\[\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ \end{bmatrix}\]

即总和为负单位矩阵,如果熟悉欧拉公式,可以发现上面这是矩阵版本。

提示

回忆一下欧拉公式

\[e^{i\pi} = \cos\pi + i\sin\pi = -1\]

指数里面有了复数,联系起了三角函数和指数函数。

欧拉公式有一种用级数证明的方式。在级数论和复变函数里面有过程。

实际规律就是,这一长串矩阵运算会趋近一个定值。

虽然感觉有点东西了,但是还是不理解,为啥要这么搞呢?想解决什么问题呢?在欣然接收这个运算前,先得大概了解他想算什么,怎样光看输入,就大概知道结果呢?比如怎么看出上面的结果就是个负单位矩阵。

数学里,定义往往不是起点而是目标,但是数学家研究的顺寻往往与教科书相反。

数学教材上:

定义👉定理👉证明👉举例

书上会先给出定义,然后来几个定理,然后证明定理,最后配几个例题使用定理,就基本结束了。

对于数学研究:

特殊问题👉一般问题👉普适结论👉下定义

先琢磨一个特殊的问题,在扩展到一般,看看有没有普适结论,最后给出定义或者扩展以前的定义。

虐恋动力学。

两个人小红和小黑。

数值代表热情或者冷淡。

小红\(\frac{dx}{dt} = -y\),属于你对我越好我对你越差,你对我越差我对你越好,就喜欢反着来。

小黑\(\frac{dy}{dt} = x\),是你好我也好,你坏我也坏。

微分方程组,怎么解呢?可以一下看出sinx是个解。但是,

我们的目标是系统的解更普遍的这一类方程,不仅仅是这一个,而且要不是那种"一下看出"的方法,因为有人一下看不出,这个问题也是矩阵指数的出处。当有好几个不断变化的量时,整合成一个高维空间的一个点的坐标是很有用的,对于两个人,看成二维空间的一个点,或者列向量,一个东西

\(\left [ \begin{array}{c} x \\ y \\ \end{array} \right ]\) ,显然这个点随着时间在动,自然而然我们想知道这个点是怎么动的。即点的变化率,\(\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ]\)这就是速度向量,那么变化率和点的位置正好是有关系的。

\[\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ] = \left [ \begin{array}{c} -y \\ x \\ \end{array} \right ]\]

那么写成这种形式

\[\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ] = \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ \end{array} \right ]\]

上面是小红,下面是小黑

一个很猛的思路:

\[\frac{d}{dt}\overrightarrow{\boldsymbol{v}}(t) = \boldsymbol{M}\overrightarrow{\boldsymbol{v}}(t)\]

某向量的变化率等于一个矩阵乘这个向量自己。

上面这个系统的矩阵M是个90°的旋转矩阵,观察矩阵的列大概就知道对向量做了个什么变换了。

因此,这一直在做圆周运动,单位时间内转过的角度就等于半径的数值,单位时间转一弧度。转一圈需要2pi时间。

如果用一个更普遍的式子来表达这种旋转的话

\[\left [ \begin{array}{c} x(t) \\ y(t) \\ \end{array} \right ] = \left [ \begin{array} {c} \cos(t) & -\sin(t) \\ \sin(t) & \cos(t) \\ \end{array} \right ] \left [ \begin{array}{c} x_0 \\ y_0 \\ \end{array} \right ]\]

从旋转矩阵的角度入手的,抛开了变化率这个事情。因此向预测t时间后的状态,可以用这个矩阵乘以初始状态,就得到了t时刻后的状态。

注意

其实话讲到这个份上,状态转移矩阵的概念呼之欲出,但是这里还是先不呼出来

下面那个式子真的是满足上面那个导数方程的。

那么由特殊到一般,是不是真的存在解任意方程组的"旋转矩阵"呢?无论系数是什么。

最简单的是一维的e的实数次幂。

对比一下

\[\frac{d}{dt}\overrightarrow{\boldsymbol{v}}(t) = \boldsymbol{M}\overrightarrow{\boldsymbol{v}}(t)\] \[\frac{d}{dt}x(t) = r\cdot x(t)\]

这个值的变化速率等于r倍的自己,因此变化速率越来越大,增长越来越快,带来的就是陡峭上升的曲线。(暂时忘掉指数函数)

一个数值变化的速率与数值本身成比例这个概念很有用。这个方程描述了很多现象,复利、人口增长。

这个正向循环增长的就是指数增长。其实这个方程由很多姐,初始值越大,最终解的初始坡度就越大。结合方程来看,完全合理。

函数的导数是函数乘以r,。在推广到高维之前,强调一下,不要把指数的部分直接看成是解本身。指数部分作用于初始值以后,才是方程的解。

那么在2维的情况下,我们有个变化的向量,变化率是一个矩阵乘以自己,所以最终的解其实也是个指数项,再乘以一个初始向量。

\[\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ] = \left [ \begin{array} {c} a & b \\ c & d \\ \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ \end{array} \right ]\] \[\left [ \begin{array}{c} x \\ y \\ \end{array} \right ] = e^{ \left [ \begin{array} {c} a & b \\ c & d \\ \end{array} \right ]t } \left [ \begin{array}{c} x_0 \\ y_0 \\ \end{array} \right ]\]

所以最终的解也是个指数项,只不过指数的部分会变成随时间变化的矩阵,初始条件是个向量。

指数矩阵的定义,很大程度上是为了保证上面式子的正确性。

当把这些东西一项项加起来时,会发现这不就是泰勒级数的展开式嘛。

\[\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ] = \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ \end{array} \right ]\]

从变化率是自己的旋转角度来看,用旋转的角度预测向量的位置:

\[\left [ \begin{array}{c} x(t) \\ y(t) \\ \end{array} \right ] = \left [ \begin{array} {c} \cos(t) & -\sin(t) \\ \sin(t) & \cos(t) \\ \end{array} \right ] \left [ \begin{array}{c} x_0 \\ y_0 \\ \end{array} \right ]\]

我们用定义来看,这个指数矩阵

\[\left [ \begin{array}{c} x \\ y \\ \end{array} \right ] = e^{ \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]t } \left [ \begin{array}{c} x_0 \\ y_0 \\ \end{array} \right ]\]

把简记符号,展开来看

\[e^{ \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]t} = t^0\left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]^0 + t^1\left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]^1 + \frac{1}{2}t^2\left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]^2 + \frac{1}{6}t^3\left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]^3 + \cdots + \frac{1}{n!}t^n\left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]^n\] \[e^{ \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ]t} = \left [ \begin{array} {c} 1 - \frac{t^2}{2!} + \frac{t^4}{4!} - \frac{t^6}{6!} + \cdots & -t + \frac{t^3}{3!} - \frac{t^5}{5!} + \frac{t^7}{7!} - \cdots \\ t - \frac{t^3}{3!} + \frac{t^5}{5!} - \frac{t^7}{7!} + \cdots & 1 - \frac{t^2}{2!} + \frac{t^4}{4!} - \frac{t^6}{6!} + \cdots \\ \end{array} \right ]\]

这一眼看过去这不就是泰勒级数嘛,这不就三角函数嘛。从几何角度和代数角度,居然统一了,只不过统一的比较崎岖。但是没关系,指数矩阵可以解这样的方程。

补充

李群李代数?周期群?

如果熟悉虚数指数的话,可以把这两个量封装到一个复数里。

\[\frac{d}{dt}[x(t) + i y(t)] = -y(t) + ix(t) = i[x(t) + i y(t)]\]

令\(z = x + iy\),则\(\dot z = iz\)

复数变化率等于i乘自己,也就是转90°,用\(e^{it}\)来描述旋转是很自然的。

下面的是拿来做对比的。

\[\left [ \begin{array}{c} \dot{x} \\ \dot{y} \\ \end{array} \right ] = \left [ \begin{array}{c} -y \\ x \\ \end{array} \right ] = \left [ \begin{array} {c} 0 & -1 \\ 1 & 0 \\ \end{array} \right ] \left [ \begin{array}{c} x \\ y \\ \end{array} \right ]\]

实际上,还有无数的数学或物理上的东西。

此外,四元数也是个例子 \(e^{(ai+bj+ck)t}\)

我们可以提炼出简洁想法:如果再一个平面中做了一个90°旋转的操作,那么对这个旋转操作乘上时间,然后来个指数,就得到了这个平面的所有旋转操作。

通常这个平面是高维空间里的。

基解矩阵的求法