为什么解常微分方程会用到特征值和特征向量? (En)
2026-11-10
本文由 LLM 从英文原文翻译,以原文为准:Why Eigenval/vec When Solving ODE?
本文面向正在修读微分方程的大一、大二学生——如果你对线性常微分方程(ODE)里为何会冒出线性代数感到困惑,这篇文章就是为你写的。困惑的根源在于,线性代数并不是一堆用来解线性方程组或搭建深度学习模型的巧妙技巧(当然它确实能做这些),而是由“线性”和“代数”两部分组成的。“线性”之所以重要,是因为它性质优良且应用广泛;而“代数”则是为了把“线性”尽可能地推广开来。然而不知出于什么原因,侧重“代数”的线性代数在许多理工科专业里只是选修课,不少工程师甚至数学系学生即便学过也未能领会其中的精髓。本文试图弥合这一鸿沟,阅读前只需具备“普通”线性代数的基础。当然,其中的精妙之处远非这篇短文所能道尽,真心建议大家哪怕纯粹为了好玩,也去听一听高阶线性代数课(upper-division linear algebra)。
“非平凡”的线性代数
低年级的入门课通常从 \(\mathbb{R}^n\) 中的具体计算和实例切入,这部分我们直接略过。在正式的代数课程中,线性代数的核心是向量空间——它可以定义在任意结构(见下文)和任意域上(不必局限于 \(\mathbb{R}\),尽管实际应用中仍以 \(\mathbb{R}\) 和 \(\mathbb{C}\) 为主)。
以前我们只把 \(\mathbb{R}^n\) 当作向量空间,但在更广义的视角下,函数、数列、随机变量等也都可以看作向量。不妨看看下面几个例子:
- 极限:
\(\lim : \{\text{all convergent real sequences}\} \to \mathbb{R}\)
\[a\lim_{n\to\infty} f_n + b\lim_{n\to\infty} g_n
= \lim_{n\to\infty}(af_n + bg_n)\]
- 积分:
\(\int_0^1 : \{\text{continuous functions}\} \to \mathbb{R}\)
\[a\int_0^1 f(x)\,\mathrm{d}x + b\int_0^1 g(x)\,\mathrm{d}x
= \int_0^1 (af(x) + bg(x))\,\mathrm{d}x\]
- 求导:
\(\frac{\mathrm{d}}{\mathrm{d}x} : \{\text{differentiable functions}\} \to \{\text{functions}\}\)
\[a\frac{\mathrm{d}f}{\mathrm{d}x} + b\frac{\mathrm{d}g}{\mathrm{d}x}
= \frac{\mathrm{d}}{\mathrm{d}x}(af + bg)\]
- 期望:
\(\mathbb{E} : \{\text{random variables}\} \to \mathbb{R}\)
\[a\mathbb{E}[X] + b\mathbb{E}[Y] = \mathbb{E}[aX + bY]\]
任何满足 \(T(a\mathbf{u} + b\mathbf{v}) = aT(\mathbf{u}) + bT(\mathbf{v})\) 形式的 \(T\) 都称为线性映射,其中 \(\mathbf{u}\) 和 \(\mathbf{v}\) 属于向量空间,\(a\) 和 \(b\) 属于域。
求导与特征函数
暂且抛开严谨繁琐的形式化细节不谈,既然求导是线性算子,一个很自然的问题就是:“它的特征向量和特征函数是什么?”
\[D(x) = \lambda x \quad\Longleftrightarrow\quad x'(t) = \lambda x(t) \quad\Longrightarrow\quad x(t) = C e^{\lambda t}.\]
指数函数 \(e^{\lambda t}\) 正是它的特征向量(通常称为特征函数)。我们可以这样来理解:(一)构造出这个函数后,代入验证便知它确实是特征函数;(二)根据皮卡定理(Picard's Theorem),不存在其他解了。
耦合常微分方程组:为什么我们需要对角化
现在来看一个系数为常数矩阵 \(\mathbf{A}\) 的一阶线性常微分方程组。此时,我们的向量是可微函数 \(\mathbf{x}: \mathbb{R} \to \mathbb{R}^n\),加法定义为逐点相加 \((\mathbf{x}+\mathbf{y})(t) = \mathbf{x}(t)+\mathbf{y}(t)\),数乘定义为 \((a\mathbf{x})(t) = a\mathbf{x}(t)\)。看一个具体的方程组:
\[\begin{cases}x_1' = 5x_1 + 3x_2,\\ x_2' = 2x_1,\end{cases}
\qquad\mathbf{x}'(t) = \mathbf{A}\mathbf{x}(t),\qquad
\mathbf{A} = \begin{bmatrix}5&3\\2&0\end{bmatrix}.\]
之所以难以直接求解,是因为 \(x_1\) 和 \(x_2\) 相互耦合:\(x_1'\) 依赖于 \(x_2\),而 \(x_2'\) 又依赖于 \(x_1\)。但设想一下,如果系数矩阵是对角矩阵呢?比如:
\[\mathbf{u}'(t) = \begin{bmatrix}-1&0\\0&6\end{bmatrix}\mathbf{u}(t)
\quad\Longleftrightarrow\quad
\begin{cases}u_1' = -u_1,\\ u_2' = 6u_2.\end{cases}\]
在对角系统中,各个变量互不干扰(已经解耦),问题便直接简化为前面讨论过的单变量情形。
回顾一下“普通”线性代数:矩阵用基向量系数的语言表达了线性组合,我们可以将其转换到另一组基下;如果新基恰好是特征基(eigenbasis),矩阵就会变成对角矩阵。具体而言,只要 \(\mathbf{A}\) 有足够多的线性无关特征向量,就能对角化为 \(\mathbf{A} = \mathbf{P}\mathbf{D}\mathbf{P}^{-1}\),其中 \(\mathbf{D}\) 是由特征值构成的对角矩阵,\(\mathbf{P}\) 是以对应特征向量为列构成的矩阵。
对于 \(\mathbf{A} = \begin{bmatrix}5&3\\2&0\end{bmatrix}\),我们先解特征方程:
\[\det(\mathbf{A}-\lambda\mathbf{I}) = (\lambda+1)(\lambda-6) = 0 \quad\Longrightarrow\quad \lambda_1 = -1,\ \lambda_2 = 6.\]
分别针对每个特征值求 \(\mathbf{A}-\lambda\mathbf{I}\) 的零空间,即可得到特征向量:
\[\mathbf{v}_1 = \begin{bmatrix}1\\-2\end{bmatrix},\quad
\mathbf{v}_2 = \begin{bmatrix}1\\\frac{1}{3}\end{bmatrix}
\quad\Longrightarrow\quad
\mathbf{P} = \begin{bmatrix}1&1\\-2&\frac{1}{3}\end{bmatrix},\quad
\mathbf{D} = \begin{bmatrix}-1&0\\0&6\end{bmatrix}.\]
现在将 \(\mathbf{A} = \mathbf{P}\mathbf{D}\mathbf{P}^{-1}\) 代入 \(\mathbf{x}' = \mathbf{A}\mathbf{x}\),并在等式两边同时左乘 \(\mathbf{P}^{-1}\):
\[\mathbf{x}' = \mathbf{P}\mathbf{D}\mathbf{P}^{-1}\mathbf{x}
\quad\Longleftrightarrow\quad
\mathbf{P}^{-1}\mathbf{x}' = \mathbf{D}(\mathbf{P}^{-1}\mathbf{x}).\]
令 \(\mathbf{u} = \mathbf{P}^{-1}\mathbf{x}\),即 \(\mathbf{x}\) 在特征向量基下的表示。由于 \(\mathbf{P}\) 是常数矩阵,求导运算与 \(\mathbf{P}^{-1}\) 可以交换顺序,即 \(\mathbf{u}' = \mathbf{P}^{-1}\mathbf{x}'\)。这样一来,耦合的常微分方程组就化为了解耦的方程组:
\[\mathbf{u}' = \mathbf{D}\mathbf{u}
\quad\Longleftrightarrow\quad
\begin{cases}u_1' = -u_1,\\ u_2' = 6u_2\end{cases}
\quad\Longrightarrow\quad
\mathbf{u}(t) = \begin{bmatrix}c_1 e^{-t} \\ c_2 e^{6t}\end{bmatrix}.\]
最后,利用 \(\mathbf{x}(t) = \mathbf{P}\mathbf{u}(t)\) 变回标准坐标:
\[\mathbf{x}(t) = \begin{bmatrix}1&1\\-2&\frac{1}{3}\end{bmatrix}\begin{bmatrix}c_1 e^{-t} \\ c_2 e^{6t}\end{bmatrix}
= c_1 e^{-t}\begin{bmatrix}1\\-2\end{bmatrix} + c_2 e^{6t}\begin{bmatrix}1\\\frac{1}{3}\end{bmatrix}.\]
正如课上所证,由于 \(D\) 和 \(\mathbf{A}\) 都是线性的,解的任意线性组合依然是方程的解。