研一数学基础复习笔记(五):矩阵指数与动力系统
1. 为什么面试前要看这个问题?
前一篇整理了特征值和特征向量。我们知道,特征值可以描述系统在某些特殊方向上的伸缩性质,也可以对应结构动力学中的固有频率和振型。
但如果继续思考动力学问题,还会遇到另一个问题:
已知系统当前状态,如何描述它随时间的演化?
对于一个最简单的标量微分方程:
$$ \dot{x} = ax $$它的解是:
$$ x(t) = e^{a(t-t_0)}x(t_0) $$这里的指数函数 $e^{a(t-t_0)}$ 描述了状态从 $t_0$ 到 $t$ 的演化。
如果未知量不是一个数,而是一个向量,例如:
$$ \dot{\mathbf{v}} = \mathbf{A}\mathbf{v} $$那么它的解就需要用到矩阵指数:
$$ \mathbf{v}(t) = e^{\mathbf{A}(t-t_0)}\mathbf{v}_0 $$所以矩阵指数的核心意义是:
它是标量指数函数在矩阵系统中的推广,用来描述线性动力系统的时间演化。
这在状态空间方程、结构动力学、控制理论、稳定性分析和时间积分方法中都非常重要。
2. 核心概念
2.1 从普通幂级数到矩阵幂级数
普通函数可以展开成幂级数。例如:
$$ f(x) = \sum_{k=0}^{\infty} c_k x^k $$如果把标量 $x$ 换成矩阵 $\mathbf{A}$,就可以形式上定义矩阵函数:
$$ f(\mathbf{A}) = \sum_{k=0}^{\infty} c_k \mathbf{A}^k $$这里的 $\mathbf{A}^k$ 表示矩阵的 $k$ 次幂。
这就是矩阵幂级数的基本思想。
需要注意的是,矩阵不是普通数字。矩阵乘法通常不满足交换律,所以矩阵函数的很多性质不能直接照搬标量函数。但对于同一个矩阵 $\mathbf{A}$ 的幂级数而言,$\mathbf{A}, \mathbf{A}^2, \mathbf{A}^3$ 之间自然是可交换的,因此可以比较自然地定义这些函数。
2.2 矩阵指数函数
标量指数函数有展开式:
$$ e^x = 1 + x + \frac{1}{2!}x^2 + \cdots + \frac{1}{n!}x^n + \cdots $$对应地,矩阵指数函数定义为:
$$ e^{\mathbf{A}} = \mathbf{I} + \mathbf{A} + \frac{1}{2!}\mathbf{A}^2 + \cdots + \frac{1}{n!}\mathbf{A}^n + \cdots $$其中 $\mathbf{I}$ 是单位矩阵。
这个定义非常重要,因为它使得指数函数从标量推广到了矩阵。
从动力系统角度看,矩阵指数 $e^{\mathbf{A}t}$ 可以理解为系统的状态转移矩阵。
如果系统满足:
$$ \dot{\mathbf{v}} = \mathbf{A}\mathbf{v} $$那么从初始状态 $\mathbf{v}_0$ 演化到时间 $t$ 的状态为:
$$ \mathbf{v}(t) = e^{\mathbf{A}(t-t_0)}\mathbf{v}_0 $$这和标量方程 $\dot{x}=ax$ 的解完全对应。
2.3 矩阵三角函数
类似地,也可以定义矩阵三角函数。
标量正弦函数的幂级数为:
$$ \sin x = x - \frac{1}{3!}x^3 + \frac{1}{5!}x^5 - \cdots $$于是矩阵正弦函数可以定义为:
$$ \sin \mathbf{A} = \mathbf{A} - \frac{1}{3!}\mathbf{A}^3 + \frac{1}{5!}\mathbf{A}^5 - \cdots $$标量余弦函数的幂级数为:
$$ \cos x = 1 - \frac{1}{2!}x^2 + \frac{1}{4!}x^4 - \cdots $$于是矩阵余弦函数可以定义为:
$$ \cos \mathbf{A} = \mathbf{I} - \frac{1}{2!}\mathbf{A}^2 + \frac{1}{4!}\mathbf{A}^4 - \cdots $$矩阵指数函数、矩阵正弦函数和矩阵余弦函数之间也存在类似欧拉公式的关系:
$$ e^{\mathrm{i}\mathbf{A}} = \cos \mathbf{A} + \mathrm{i}\sin \mathbf{A} $$这说明矩阵函数并不是孤立定义出来的,它们和微分方程、振动问题、周期系统有很深的联系。
2.4 矩阵指数与线性微分方程组
考虑一个常系数一阶线性微分方程组:
$$ \dot{\mathbf{v}} = \mathbf{A}\mathbf{v} $$其中:
- $\mathbf{v}$ 是状态向量;
- $\mathbf{A}$ 是常数矩阵;
- $\dot{\mathbf{v}}$ 表示 $\mathbf{v}$ 对时间的导数。
如果初始条件为:
$$ \mathbf{v}(t_0) = \mathbf{v}_0 $$则解为:
$$ \mathbf{v}(t) = e^{\mathbf{A}(t-t_0)}\mathbf{v}_0 $$这就是矩阵指数最典型的应用。
它告诉我们:
对于线性常系数系统,系统的时间演化完全由矩阵指数决定。
因此,研究 $e^{\mathbf{A}t}$ 的性质,实际上就是在研究线性动力系统的演化规律。
3. 关键公式
3.1 矩阵指数定义
矩阵指数定义为:
$$ e^{\mathbf{A}} = \sum_{k=0}^{\infty}\frac{1}{k!}\mathbf{A}^k $$展开为:
$$ e^{\mathbf{A}} = \mathbf{I} + \mathbf{A} + \frac{1}{2!}\mathbf{A}^2 + \frac{1}{3!}\mathbf{A}^3 + \cdots $$如果矩阵中带有时间变量,则:
$$ e^{\mathbf{A}t} = \mathbf{I} + \mathbf{A}t + \frac{1}{2!}\mathbf{A}^2t^2 + \frac{1}{3!}\mathbf{A}^3t^3 + \cdots $$这个形式和标量指数函数非常相似,只是把标量 $a$ 换成了矩阵 $\mathbf{A}$。
3.2 矩阵指数的基本性质
对于同一个矩阵 $\mathbf{A}$,有:
$$ e^{a\mathbf{A}}e^{b\mathbf{A}} = e^{(a+b)\mathbf{A}} $$当 $m$ 为整数时:
$$ (e^{\mathbf{A}})^m = e^{m\mathbf{A}} $$如果两个矩阵 $\mathbf{A}$ 和 $\mathbf{B}$ 可交换,即:
$$ \mathbf{A}\mathbf{B} = \mathbf{B}\mathbf{A} $$则有:
$$ e^{\mathbf{A}}e^{\mathbf{B}} = e^{\mathbf{A}+\mathbf{B}} $$需要注意:这个性质要求 $\mathbf{A}$ 和 $\mathbf{B}$ 可交换。
如果 $\mathbf{A}\mathbf{B}\ne\mathbf{B}\mathbf{A}$,一般不能简单写成:
$$ e^{\mathbf{A}}e^{\mathbf{B}} = e^{\mathbf{A}+\mathbf{B}} $$这和标量指数函数不同,也是矩阵函数中特别需要注意的地方。
3.3 矩阵正弦和余弦
矩阵正弦函数定义为:
$$ \sin \mathbf{A} = \sum_{k=0}^{\infty}(-1)^k\frac{\mathbf{A}^{2k+1}}{(2k+1)!} $$矩阵余弦函数定义为:
$$ \cos \mathbf{A} = \sum_{k=0}^{\infty}(-1)^k\frac{\mathbf{A}^{2k}}{(2k)!} $$它们满足矩阵形式的欧拉关系:
$$ e^{\mathrm{i}\mathbf{A}} = \cos \mathbf{A} + \mathrm{i}\sin \mathbf{A} $$在振动问题中,正弦和余弦形式经常出现,因此矩阵三角函数可以用来描述多自由度系统的周期运动。
3.4 一阶线性系统的解析解
对于系统:
$$ \dot{\mathbf{v}} = \mathbf{A}\mathbf{v} $$初始条件为:
$$ \mathbf{v}(t_0) = \mathbf{v}_0 $$其解为:
$$ \mathbf{v}(t) = e^{\mathbf{A}(t-t_0)}\mathbf{v}_0 $$这里的:
$$ \mathbf{\Phi}(t,t_0) = e^{\mathbf{A}(t-t_0)} $$称为状态转移矩阵。
它的作用是把初始状态 $\mathbf{v}_0$ 映射到时刻 $t$ 的状态 $\mathbf{v}(t)$。
4. 和力学/数值计算的联系
4.1 二阶动力学方程可以转成一阶状态空间方程
结构动力学中常见的方程是二阶微分方程:
$$ \mathbf{M}\ddot{\mathbf{u}} + \mathbf{C}\dot{\mathbf{u}} + \mathbf{K}\mathbf{u} = \mathbf{F}(t) $$其中:
- $\mathbf{M}$ 是质量矩阵;
- $\mathbf{C}$ 是阻尼矩阵;
- $\mathbf{K}$ 是刚度矩阵;
- $\mathbf{u}$ 是位移向量。
如果定义状态向量:
$$ \mathbf{x} = \begin{bmatrix} \mathbf{u} \\ \dot{\mathbf{u}} \end{bmatrix} $$那么二阶动力学方程可以转化为一阶状态空间方程:
$$ \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} + \mathbf{B}\mathbf{F}(t) $$如果没有外力,或者只考虑齐次系统,则有:
$$ \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} $$此时系统解可以写成:
$$ \mathbf{x}(t) = e^{\mathbf{A}(t-t_0)}\mathbf{x}_0 $$这说明矩阵指数可以直接描述结构动力系统的自由演化。
4.2 矩阵指数和稳定性有关
考虑系统:
$$ \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} $$如果矩阵 $\mathbf{A}$ 的特征值实部都小于零,那么系统状态会随时间衰减,系统是稳定的。
如果存在特征值实部大于零,那么对应方向上的响应会随时间增长,系统可能不稳定。
这是因为矩阵指数的行为和 $\mathbf{A}$ 的特征值密切相关。
如果 $\mathbf{A}$ 可以对角化:
$$ \mathbf{A} = \mathbf{X}\mathbf{D}\mathbf{X}^{-1} $$那么:
$$ e^{\mathbf{A}t} = \mathbf{X}e^{\mathbf{D}t}\mathbf{X}^{-1} $$而:
$$ e^{\mathbf{D}t} = \begin{bmatrix} e^{\lambda_1 t} & 0 & \cdots & 0 \\ 0 & e^{\lambda_2 t} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & e^{\lambda_n t} \end{bmatrix} $$因此系统在各个特征方向上的增长或衰减,由 $e^{\lambda_i t}$ 决定。
这就把矩阵指数、特征值和系统稳定性联系起来了。
4.3 矩阵指数和时间积分方法有关
理论上,线性常系数系统可以通过矩阵指数给出解析解。但在实际工程计算中,矩阵规模可能非常大,直接计算 $e^{\mathbf{A}t}$ 并不容易。
因此实际中经常采用时间积分方法,例如:
- Newmark 方法;
- Wilson-$\theta$ 方法;
- Runge-Kutta 方法;
- 精细积分方法;
- 指数积分方法。
这些方法本质上都是在近似描述系统从一个时间步到下一个时间步的状态演化。
也就是说,它们都在某种意义上近似了状态转移过程。
矩阵指数给出了线性系统时间演化的理论基准,而数值时间积分方法则是在工程规模问题中实现这种演化的实际工具。
4.4 矩阵指数和模态分析也有关
对于无阻尼自由振动系统:
$$ \mathbf{M}\ddot{\mathbf{u}} + \mathbf{K}\mathbf{u} = \mathbf{0} $$通过模态分析可以将系统解耦为若干单自由度系统。
每个模态坐标满足类似:
$$ \ddot{q}_i + \omega_i^2 q_i = 0 $$其解可以写成正弦和余弦形式:
$$ q_i(t) = A_i\cos(\omega_i t) + B_i\sin(\omega_i t) $$如果把整个系统写成状态空间形式,也可以用矩阵指数统一表示。
因此,模态分析和矩阵指数是两种相关的视角:
- 模态分析强调在特征向量基下解耦;
- 矩阵指数强调状态随时间的整体演化。
4.5 矩阵指数和图网络传播也有关
讲义中也提到,矩阵指数在现代图论和网络分析中也有应用。
如果把一个网络表示成邻接矩阵 $\mathbf{A}$,那么 $\mathbf{A}^k$ 可以反映网络中长度为 $k$ 的路径信息。
矩阵指数:
$$ e^{\mathbf{A}} = \mathbf{I} + \mathbf{A} + \frac{1}{2!}\mathbf{A}^2 + \frac{1}{3!}\mathbf{A}^3 + \cdots $$可以理解为把不同长度路径的信息按权重叠加起来。
这说明矩阵指数不仅用于力学系统,也可以用于网络传播、图结构分析和复杂系统研究。
5. 面试中可以怎么回答?
如果面试官问:
什么是矩阵指数?
可以这样回答:
矩阵指数是标量指数函数在矩阵上的推广。它通过幂级数定义为 $e^{\mathbf{A}}=\sum_{k=0}^{\infty}\frac{1}{k!}\mathbf{A}^k$。它最重要的作用是描述线性常系数微分方程组的解,例如对于 $\dot{\mathbf{x}}=\mathbf{A}\mathbf{x}$,其解可以写成 $\mathbf{x}(t)=e^{\mathbf{A}(t-t_0)}\mathbf{x}_0$。
如果面试官问:
矩阵指数在动力系统中有什么意义?
可以这样回答:
在动力系统中,矩阵指数可以看成状态转移矩阵。它把初始时刻的状态映射到后续时刻的状态。对于线性系统 $\dot{\mathbf{x}}=\mathbf{A}\mathbf{x}$,系统的自由演化完全由 $e^{\mathbf{A}t}$ 决定。因此矩阵指数是理解线性动力系统时间演化的核心工具。
如果面试官问:
矩阵指数和特征值有什么关系?
可以这样回答:
如果矩阵 $\mathbf{A}$ 可以对角化为 $\mathbf{A}=\mathbf{X}\mathbf{D}\mathbf{X}^{-1}$,那么 $e^{\mathbf{A}t}=\mathbf{X}e^{\mathbf{D}t}\mathbf{X}^{-1}$。其中 $e^{\mathbf{D}t}$ 的对角元素是 $e^{\lambda_i t}$。所以系统在各个特征方向上的增长或衰减由特征值 $\lambda_i$ 决定,这也解释了为什么特征值和系统稳定性密切相关。
如果面试官问:
为什么不能总是直接计算矩阵指数?
可以这样回答:
理论上矩阵指数可以给出线性系统的解析解,但在工程问题中矩阵规模往往很大,直接计算 $e^{\mathbf{A}t}$ 成本很高,也可能存在数值稳定性问题。因此实际计算中通常使用时间积分方法、模态分解方法或指数积分方法来近似状态演化。
如果面试官问:
矩阵指数和时间积分方法有什么关系?
可以这样回答:
矩阵指数给出了线性系统从一个时刻到另一个时刻的精确状态转移,而时间积分方法可以理解为对这种状态转移过程的数值近似。比如结构动力学中的 Newmark 方法、Runge-Kutta 方法等,都是为了在时间离散后逐步推进系统状态。
6. 这一篇的核心总结
这一篇主要复习了矩阵幂级数、矩阵指数、矩阵三角函数以及线性微分方程组的解。
可以总结为三句话:
- 矩阵指数是标量指数函数在矩阵系统中的推广。
- 对于线性常系数系统 $\dot{\mathbf{x}}=\mathbf{A}\mathbf{x}$,矩阵指数给出了状态随时间演化的解析表达。
- 矩阵指数和特征值、系统稳定性、模态分析、时间积分方法都有密切关系。
所以,矩阵指数不是单纯的形式定义,而是理解动力系统时间演化的重要工具。
从面试角度看,可以把它理解为:
矩阵指数是线性系统的状态转移算子,它告诉我们系统如何从初始状态演化到未来状态。
7. 下一篇预告
下一篇准备整理:
研一数学基础复习笔记(六):变分法到底在“变”什么?
下一篇会从函数极值过渡到泛函极值,重点理解什么是泛函、什么是变分、为什么欧拉-拉格朗日方程可以从泛函极值条件中推出,以及最小势能原理和力学平衡方程之间的关系。