微分方程与矩阵指数
学习目标
完成本节后,你将能够: - 用矩阵形式表示微分方程组 - 理解矩阵指数的定义和计算 - 应用特征值解微分方程组 - 理解稳定性和特征值的关系
1. 一阶微分方程组
### 1.1 问题
考虑耦合微分方程组:
\[\frac{du_1}{dt} = -u_1 + 2u_2\] \[\frac{du_2}{dt} = u_1 - 2u_2\]
写成矩阵形式:
\[\frac{d\mathbf{u}}{dt} = A\mathbf{u}, \quad A = \begin{bmatrix} -1 & 2 \\ 1 & -2 \end{bmatrix}\]
### 1.2 解耦
如果 \(A\) 可对角化,令 \(\mathbf{u} = S\mathbf{v}\):
\[\frac{d\mathbf{v}}{dt} = \Lambda \mathbf{v}\]
每个方程变成独立的一阶方程:\(\frac{dv_i}{dt} = \lambda_i v_i\)
解:\(v_i(t) = v_i(0) e^{\lambda_i t}\)
因此:
\[\mathbf{u}(t) = S e^{\Lambda t} S^{-1} \mathbf{u}(0) = e^{At}\mathbf{u}(0)\]
### 1.3 稳定性分析
- 所有 \(\text{Re}(\lambda_i) < 0\) ⇒ 系统稳定(\(\mathbf{u}(t) \to \mathbf{0}\))
- 有 \(\text{Re}(\lambda_i) > 0\) ⇒ 系统不稳定(发散)
- 有纯虚特征值 ⇒ 振荡
2. 矩阵指数
\[e^{At} = I + At + \frac{A^2 t^2}{2!} + \frac{A^3 t^3}{3!} + \cdots\]
很像泰勒级数,只是把标量 \(a\) 换成了矩阵 \(A\)。
如果 \(A = S\Lambda S^{-1}\):
\[e^{At} = S e^{\Lambda t} S^{-1}\]
而 \(e^{\Lambda t} = \text{diag}(e^{\lambda_1 t}, \ldots, e^{\lambda_n t})\)。
def matrix_exponential(A, t):
"""计算矩阵指数"""
eigvals, eigvecs = np.linalg.eig(A)
S = eigvecs
exp_Lambda = np.diag(np.exp(eigvals * t))# 示例 A = np.array([[-1, 2], [1, -2]])
# 初始条件 u0 = np.array([3, 0])
# t=1 时的解 t = 1.0 exp_At = matrix_exponential(A, t) u_t = exp_At @ u0 print(f"u({t}) = {u_t}")
# 验证:用 scipy 的矩阵指数 from scipy.linalg import expm print(f"scipy: {expm(A * t) @ u0}") ```
3. 马尔可夫矩阵
定义:每列元素和为 1 的非负矩阵。
性质: - 特征值 \(\lambda_1 = 1\) - 其他特征值 \(|\lambda_i| < 1\) - \(u_k = A^k u_0\) 趋于稳态(对应 \(\lambda = 1\) 的特征向量)
# 人口迁移模型
M = np.array([[0.9, 0.2],
[0.1, 0.8]])# 初始分布 u = np.array([1.0, 0.0])
# 迭代 for step in range(5): print(f"第{step}年: 城市={u[0]:.3f}, 乡村={u[1]:.3f}") u = M @ u
print(f"\n稳态:") eigvals, eigvecs = np.linalg.eig(M) steady = eigvecs[:, 0] steady = steady / steady.sum() print(f"城市={steady[0]:.3f}, 乡村={steady[1]:.3f}") ```
4. 本节习题
- 解 \(\frac{du}{dt} = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} u\),初始条件 \(u(0) = [1, 0]\)
- 判断 \(A = \begin{bmatrix} -2 & 1 \\ 1 & -2 \end{bmatrix}\) 对应的系统是否稳定
- 证明:马尔可夫矩阵总有特征值 1
- 用矩阵指数求解一个二阶微分方程(转化为一阶方程组)
总结
- 线性微分方程组可以用矩阵指数 \(e^{At}\) 求解 - 对角化将耦合系统解耦为独立的一阶方程 - 稳定性由特征值的实部决定 - 马尔可夫矩阵收敛到稳态分布