矩阵指数
矩阵指数 (Matrix Exponential) 定义为 \[ e^{A} \triangleq \sum_{k=0}^{\infty} \frac{1}{k!}A^k \] 因为之后要用到矩阵指数表示常微分方程组的解, 所以在上式中加入时间项 \[ e^{At} \triangleq \sum_{k=0}^{\infty} \frac{t^k}{k!}A^k \] 在接下来的计算中, 我们给出 \(e^{At}\) 而不是 \(e^A\), 因为虽然 \(e^{At}\) 与 \(e^{A}\) 计算过程相同, 但是从 \(e^A\) 的结果并不是可以很轻松地得到 \(e^{At}\) 的形式. 所以直接给出更一般的结论.
通过级数的定义式, 可以得到一些特殊矩阵级数的表达式
[!TIP]
\(A = I\) 时, 矩阵指数为 \[ e^{It} = \sum_{k=0}^{\infty} \frac{1}{k!} I^k t^k = \left( \sum_{k=0}^{\infty} \frac{t^k}{k!} \right)I = e^{t} I \]
[!TIP]
\(A = \mathrm{diag}(a_1, a_2, \ldots, a_n)\) 时, 矩阵指数为 \[ \begin{aligned} e^{At} &= \sum_{k=0}^{\infty} \frac{t^k}{k!} \mathrm{diag}(a_1^k, a_2^k, \ldots, a_n^k) = \mathrm{diag}( \sum_{k=0}^{\infty} \frac{t^k}{k!}a_1^k, \sum_{k=0}^{\infty} \frac{t^k}{k!}a_2^k, \ldots, \sum_{k=0}^{\infty} \frac{t^k}{k!}a_n^k) \\ &= \mathrm{diag}(e^{a_1 t}, e^{a_2 t}, \ldots, e^{a_n t}) \end{aligned} \]
[!TIP]
\(A\) 可以对角化时: \[ A = P \Lambda P^{-1}, ~\Lambda = \mathrm{diag}(\lambda_1, \lambda_2, \ldots, \lambda_n) \]
\[ e^{At} = \sum_{k=0}^{\infty} \frac{t^k}{k!} \left( P \Lambda P^{-1} \right)^k = P \left( \sum_{k=0}^{\infty} \frac{t^k}{k!}\Lambda^k \right) P^{-1} = P e^{\Lambda t} P^{-1} \]
除此之外, 还可以根据矩阵乘积随幂次增长的规律, 得到另一些常见矩阵的指数
[!TIP]
矩阵 \(A\) 时 Nilpotent 矩阵, 如果 \[ A^N = 0 \] 这意味着矩阵指数只涉及到有限项矩阵幂的求和: \[ e^{At} = \sum_{k=0}^{N} \frac{t^k}{k!}A^k \] 对于方阵 \(A\), 如果对角线以及对角线(上/下)所有元素都等于 0, 那么该矩阵就是 \(n\) 次的 Nilpotent 矩阵, 例如 \[ A = \begin{pmatrix} 0 & 1\\0 & 0 \end{pmatrix}, \quad A^2 = \begin{pmatrix} 0 & 0\\0 & 0 \end{pmatrix}, \quad e^{At} = \begin{pmatrix} 1 & 0\\0 & 1 \end{pmatrix} + t\begin{pmatrix} 0 & 1\\0 & 0 \end{pmatrix} = \begin{pmatrix} 1 & t\\0 & 1 \end{pmatrix} \]
[!TIP]
矩阵 \(A\) 为 \[ A = \begin{pmatrix} 0 & 1\\-1 & 0 \end{pmatrix} \] 计算前 4 项的矩阵幂为 \[ A^2 = -I, \quad A^3 = -A, \quad A^4 = I \] 所以 \[ e^{At} = \begin{pmatrix} 0 & \sum_{k=0}^{\infty}\frac{(-t)^k}{(2k+1)!}\\ -\sum_{k=0}^{\infty}\frac{(-t)^k}{(2k+1)!} & 0 \end{pmatrix} + \begin{pmatrix} \sum_{k=0}^{\infty}\frac{(-t)^k}{(2k)!} & 0\\ 0 & \sum_{k=0}^{\infty}\frac{(-t)^k}{(2k)!} \end{pmatrix} = \begin{pmatrix} \cos t & \sin t\\ -\sin t & \cos t \end{pmatrix} \]
[!TIP]
矩阵 \(A\) 为 \[ A = \begin{pmatrix} \lambda & 1 \\ 0 & \lambda \end{pmatrix} \] 那么 \[ A^{k} = \begin{pmatrix} \lambda^k & k\lambda^{k-1} \\ 0 & \lambda^k \end{pmatrix} \] 所以 \[ e^{At} = I + \sum_{k=1}^{\infty} \frac{t^k}{k!}\begin{pmatrix} \lambda^k & k\lambda^{k-1} \\ 0 & \lambda^k \end{pmatrix} = \lim_{N\rightarrow \infty} \begin{pmatrix} \sum_{k=0}^{N} \frac{(t\lambda)^k}{k!} & t\sum_{k=0}^{N-1} \frac{(t\lambda)^k}{k!} \\ 0 & \sum_{k=0}^{N} \frac{(t\lambda)^k}{k!} \end{pmatrix} = e^{\lambda t}\begin{pmatrix} 1 & t \\ 0 & 1 \end{pmatrix} \]
[!TIP]
矩阵 \(A\) 的另一种计算方法 \[ A = \begin{pmatrix} \lambda & 1 \\ 0 & \lambda \end{pmatrix} \] 有如下定理:
如果 \(AB = BA\), 那么 \(e^{A+B} = e^{B+A}\).
将矩阵 \(A\) 分解为 \[ A = \begin{pmatrix} \lambda & 0 \\ 0 & \lambda \end{pmatrix} + \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} = B+C \] 容易验证 \(BC = CB\), 所以 \[ e^{At} = e^{Bt}e^{Ct} = e^{\lambda t}I\begin{pmatrix} 1 & t\\0 & 1 \end{pmatrix} = e^{\lambda t} \begin{pmatrix} 1 & t\\0 & 1 \end{pmatrix} \]
好了, 经过前面的热身之后, 我们现在来处理讨厌的 Jordan 标准型情况. 任何 \(n\) 维矩阵都可以分解为对角线上为 Jordan 标准块的 “对角”矩阵: \[ A = P \mathrm{diag}(J_1, J_2, \ldots, J_k) P^{-1}, \quad k \leq n \] 我们需要特别考虑重根情况. 只有出现重根时, 才有可能用到 Jordan 标准型. 设特征根 \(\lambda_i\) 为 \(m_i\) 阶代数重根, 对应的特征向量空间 \(E_{\lambda_i}\), 特征向量空间的维度 \(\dim E_{\lambda_i}\) 总是小于等于该特征值对应的代数重数的, 并且根据定义, \(\dim E_{\lambda_i} \geq 1\). 所以 \[ 1 \leq \dim E_{\lambda_i} \leq m_i \] 当 \(\dim E_{\lambda_i} < m_i\) 时, 就会出现维度大于 1 的 Jordan 块. 一个典型的 Jordan 块可以表示为如下次对角线为 1 的矩阵: \[ J_i = \begin{pmatrix} \lambda_i & 1 & & 0 \\ & \lambda_i & \ddots & \\ & & \ddots & 1\\ 0 & & & \lambda_i \end{pmatrix}_{m\times m} \] 关于 Jordan 块有如下性质:
- \(J_i\) 只有一个特征值 \(\lambda_i\);
- \(\dim E_{\lambda_i} = 1\), 或者更确切地说, \(E_{\lambda_i} = \mathrm{span} \{ (1,0,0,\ldots,0)^\top \}\), 因为矩阵 \(J_i - \lambda_i I\) 的零空间是一维的;
- 使得 \((J_i - \lambda_i I)^p = 0\) 的最小 \(p\) 值为 \(m\), 也即 \((J_i - \lambda_i I)^m = 0\);
- 设 \(\{e_i\}\) 为空间 \(\mathbb{C}^{m}\) 的标准基, 那么对任意的 \(i\), \((J_i - \lambda_i I)^i e_k = 0\), \(k = 1,2,\ldots, i\)
由性质 4, 我们可以定义广义的特征向量空间 \(K_{\lambda_i}\) \[ K_{\lambda_i} = \{ x \mid (A - \lambda I)^px = 0 \} \] 接下来, 我们将陈述 Jordan 分解定理
对于 \(n\) 阶方阵 \(A\), 得到特征值序列 \(\lambda_1, \lambda_2, \ldots, \lambda_k\), 以及相应的代数重数 \(m_1, m_2, \ldots, m_k\), 有如下结论
- \(\dim K_{\lambda_i} = m_i\);
- \(\mathbb{C}^{n} = K_{\lambda_1} \oplus K_{\lambda_2} \oplus \cdots \oplus K_{\lambda_k}\);
好了, 上述结论告诉我们 Jordan 分解是可行的, 可是具体要怎么做呢? 关键的地方就在于此. 我们希望将矩阵 \(A\) 分解为 \[ A = P J P^{-1} \] 式中, \(J\) 为 Jordan 标准型, 对于可对角化的矩阵, \(P\) 是由特征向量组成的矩阵. 对于 Jordan 标准型, 该怎样构造 \(P\) 呢?
我们将上述矩阵写成如下特征向量的形式 \[ A ( v_1, v_2, v_3, \ldots ) = ( v_1, v_2, v_3, \ldots ) J = (\lambda v_1, \lambda v_2 + v_1, \lambda v_3 + v_2, \ldots) \] 所以有 \[ (A - \lambda I) v_1 = 0, \\ (A - \lambda I) v_2 = v_1 \iff (A - \lambda I)^2 v_2 = 0 \\ (A - \lambda I) v_3 = v_2 \iff (A - \lambda I)^3 v_3 = 0 \\ \cdots \] 因此, 我们可以递归地确定向量 \(v_1, v_2, v_3, \ldots\). 首先根据 \(N(A-\lambda I)\) 确定特征向量空间 \(E_1\), 再求解 \(N(A-\lambda I)^2\), 确定特征向量空间 \(E_2\), 依此类推确定特征向量空间 \(E_3, \ldots, E_m\), 那么, 最终确定的特征向量族为 \[ v_m \in E_m / \bigcup_{i=1}^{m-1} E_i, \quad v_{m-1} = (A - \lambda I)v_m, \ldots \]
[!CAUTION]
矩阵 \(P\) 的排列必须严格按照 \((v_1, v_2, v_3, \ldots)\) 的顺序, 否则无法得到 Jordan 标准形式.