矩阵指数将标量指数运算扩展到矩阵, 是解决线性系统问题的核心.
给定一个矩阵 A, 其矩阵指数 eA 基于幂级数展开的定义:
eA=k=0∑∞k!Ak=I+A+2!A2+3!A3+⋯
其中 Ak 表示矩阵 A 的 k 次幂.
- 幂级数收敛: 矩阵指数的级数在有限维矩阵上总是收敛.
- 与标量指数的关系: 如果 A 是对角矩阵, 其矩阵指数等于对角元素的标量指数.
- 乘积性质: 对于一般矩阵 A,B, 仅有在 AB=BA 时, eAeB=eA+B 才成立.
- 特殊情况: 当 A 是对称矩阵或反对称矩阵时, 矩阵指数具有特定形式.
由于计算矩阵指数首先需要计算若干个A的n次幂, 很容易想到对A进行对角化. 为了理解为什么对角化能够将指数运算放到矩阵的对角线中, 我们需要从矩阵指数的定义和对角化的性质开始.
一个矩阵 A 如果是可对角化的, 那么存在一个可逆矩阵 P 和一个对角矩阵 D, 使得:
A=PDP−1
其中, D 是一个对角矩阵, 其对角线元素是 A 的特征值. 通过对角化, 矩阵 A 的幂可以表示为:
Ak=(PDP−1)k=(PDP−1)⋅(PDP−1)⋅⋯⋅(PDP−1)
其中有 k 个 PDP−1. 矩阵乘法满足结合律, 因此可以先对部分括号内的矩阵相乘
(PDP−1)(PDP−1)=P(DP−1P)DP−1.
由于P−1P=I 是单位矩阵, 因此:
(PDP−1)k=PDkP−1.
因此, 矩阵 A 的指数可以表示为:
eA=k=0∑∞k!Ak=k=0∑∞k!(PDP−1)k=k=0∑∞k!PDkP−1
矩阵乘法满足结合律, 而求和运算本质上是多次加法, 因此P 和 P−1 作为求和项的外部因子, 不会受到求和运算的影响, 可以将它们移到求和符号之外:
eA=P(k=0∑∞k!Dk)P−1
对角矩阵 D 的指数比较简单, 因为 D 的幂 Dk 也是一个对角矩阵, 其对角线元素是原对角线元素的幂:
D=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn
Dk=λ1k0⋮00λ2k⋮0⋯⋯⋱⋯00⋮λnk
因此,
k=0∑∞k!Dk=∑k=0∞k!λ1k0⋮00∑k=0∞k!λ2k⋮0⋯⋯⋱⋯00⋮∑k=0∞k!λnk=eλ10⋮00eλ2⋮0⋯⋯⋱⋯00⋮eλn
即:
eD=eλ10⋮00eλ2⋮0⋯⋯⋱⋯00⋮eλn
回到之前的矩阵指数表达式:
eA=P(k=0∑∞k!Dk)P−1=PeDP−1
由于 eD 是一个对角矩阵, 其对角线元素是 A 的特征值的指数, 因此 eA 可以通过对角化后在对角线上进行指数运算, 再通过相似变换回到原矩阵的基底上. 总结一下, 只有在对角化之后, 指数运算才可以简单地应用于对角线元素, 是因为对角化将矩阵转换为一个简单的形式 (对角矩阵) , 使得每个对角线元素独立于其他元素, 可以单独进行指数运算.
计算矩阵指数的常见方法有以下几种:
矩阵指数 eA 可以通过幂级数展开计算:
eA=k=0∑∞k!Ak
如果矩阵 A 是对角化的, 即 A=PDP−1, 其中 D 是对角矩阵, 则:
eA=PeDP−1
其中 eD 是对角矩阵, 其对角元素是 D 的对角元素的指数.
如果矩阵 A 不能对角化, 但可以转换为 Jordan 标准形 A=PJP−1, 则:
eA=PeJP−1
其中 J 是 Jordan 标准形, eJ 的计算稍微复杂, 但可以通过分块矩阵的方式计算.
帕德近似是一种用有理函数逼近指数函数的方法, 可以在计算中取得很好的效果. 特别是在数值计算中, 帕德近似通常结合尺度和平方 (Scaling and Squaring) 方法来计算矩阵指数.
常用的数值算法包括 Scipy 和 Matlab 中提供的库函数. 例如在 Python 中, 可以使用 Scipy 库计算矩阵指数:
import numpy as np
from scipy.linalg import expm
A = np.array([[0, 1], [-1, 0]])
exp_A = expm(A)
print(exp_A)
这种方法对于大型矩阵特别有用, 因为它们优化了计算过程.
计算矩阵 A 的矩阵指数eA. 其中
A=[0−110]
- 幂级数展开
矩阵 A 的幂具有以下规律:
A1=A,A2=−I,A3=−A,A4=I.
根据这一周期性, 矩阵指数的级数可以分为偶数项和奇数项:
eA=(I+2!A2+4!A4+⋯)+(A+3!A3+5!A5+⋯).
k=0∑∞(2k)!(−1)kI=cos(1)I.
k=0∑∞(2k+1)!(−1)kA=sin(1)A.
因此:
eA=cos(1)I+sin(1)A.
- 对角化法
矩阵 A 的特征值为 ±i, 可对角化为(过程略):
A=P[i00−i]P−1.
矩阵指数为:
eA=P[ei00e−i]P−1.
代入 ei=cos(1)+isin(1), 结果与幂级数展开方法一致.
- 线性常微分方程的解: 对于形如 x˙=Ax 的线性常微分方程, 解可以写成 x(t)=eAtx(0), 其中 eAt 是矩阵 A 的指数矩阵.
- 离散时间系统: 在离散时间控制系统中, 状态转移矩阵可以用指数矩阵表示: x[k+1]=eAΔtx[k], 其中 Δt 是时间步长.
- 量子力学: 单位时间演化算符可以用哈密顿算符的指数矩阵表示: U(t)=e−iHt.
- 图像处理和计算机视觉: 在图像处理领域, 指数矩阵用于图像滤波和变换, 如高斯模糊.