写给计算机系同学的李群与李代数(三):矩阵指数与李群-李代数对应
我们将聚焦于矩阵指数映射(Matrix Exponential),它是连接李群与李代数的桥梁。通过公式推导、具体例子和几何解释,我们将揭示李代数如何生成李群元素,以及这种对应在计算机科学中的重要性。
矩阵指数与李群-李代数对应
写给计算机系同学的李群与李代数(一):从旋转矩阵到抽象群
写给计算机系同学的李群与李代数(二):李代数的结构——以 so(n) 为例
在前两篇文章中,我们认识了李群(Lie Group)与李代数(Lie Algebra)的基本概念,并深入探讨了特殊正交群(Special Orthogonal Group, SO(n))的李代数 so ( n ) \text{so}(n) so(n),即由反对称矩阵(Skew-Symmetric Matrix)构成的向量空间。今天,我们将聚焦于矩阵指数映射(Matrix Exponential),它是连接李群与李代数的桥梁。通过公式推导、具体例子和几何解释,我们将揭示李代数如何生成李群元素,以及这种对应在计算机科学中的重要性。
矩阵指数映射(Matrix Exponential)的定义
矩阵指数映射是李群与李代数关系的核心。对于一个 n × n n \times n n×n 矩阵 A A A,其指数定义为:
e A = ∑ k = 0 ∞ A k k ! = I + A + A 2 2 ! + A 3 3 ! + ⋯ e^A = \sum_{k=0}^\infty \frac{A^k}{k!} = I + A + \frac{A^2}{2!} + \frac{A^3}{3!} + \cdots eA=k=0∑∞k!Ak=I+A+2!A2+3!A3+⋯
其中 I I I 是单位矩阵。这个定义类似于标量指数函数 e x e^x ex 的泰勒展开,但现在操作的是矩阵。对于李代数 g \mathfrak{g} g 的元素 A A A,矩阵指数 e A e^A eA 通常生成对应的李群 G G G 中的元素。
为什么矩阵指数重要?
李代数描述了李群在单位元(Identity Element,例如单位矩阵)附近的“无穷小变换”(Infinitesimal Transformation)。矩阵指数映射将这些“速度”转化为“位置”:
- 李代数 g \mathfrak{g} g:表示局部线性化的变换(类似角速度)。
- 李群 G G G:表示全局的变换(类似旋转矩阵)。
- 矩阵指数 e A e^A eA:从 g \mathfrak{g} g 到 G G G 的桥梁。
让我们通过具体例子来探索这一过程。
矩阵指数的性质
矩阵指数映射有几个关键性质,帮助我们理解李群与李代数的动态关系:
-
单参数子群(One-Parameter Subgroup):
对于李代数中的元素 A A A,映射 t ↦ e t A t \mapsto e^{tA} t↦etA 形成李群中的一条曲线,满足:
e t A e s A = e ( t + s ) A e^{tA} e^{sA} = e^{(t+s)A} etAesA=e(t+s)A
这表明 e t A e^{tA} etA 是一个群同态,描述了沿 A A A 方向的连续变换。 -
非交换性(Non-Commutativity):
一般情况下,矩阵指数不满足 e A + B = e A e B e^{A+B} = e^A e^B eA+B=eAeB,除非 [ A , B ] = A B − B A = 0 [A, B] = AB - BA = 0 [A,B]=AB−BA=0。这反映了李群变换的非交换性,例如三维旋转的顺序依赖。 -
局部近似:
对于小的 t t t,有:
e t A ≈ I + t A e^{tA} \approx I + tA etA≈I+tA
这表明李代数元素 t A tA tA 是李群元素 e t A e^{tA} etA 在单位元附近的线性近似。
接下来,我们以 so ( 3 ) \text{so}(3) so(3) 和 se ( 3 ) \text{se}(3) se(3) 为例,详细推导矩阵指数的计算和意义。
以 so ( 3 ) \text{so}(3) so(3) 为例:Rodrigues 公式
so ( 3 ) \text{so}(3) so(3) 是特殊正交群 SO(3) 的李代数,由 3 × 3 3 \times 3 3×3 反对称矩阵组成。任意 so ( 3 ) \text{so}(3) so(3) 元素可以写为:
B = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] B = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix} B=
0ω3−ω2−ω30ω1ω2−ω10
其中 ω = ( ω 1 , ω 2 , ω 3 ) \omega = (\omega_1, \omega_2, \omega_3) ω=(ω1,ω2,ω3) 是一个三维向量。矩阵 B B B 表示绕轴 ω \omega ω 的无穷小旋转,旋转速度为 ∣ ω ∣ |\omega| ∣ω∣。
推导 Rodrigues 公式
我们希望计算 e t B e^{t B} etB,它应生成 SO(3) 中的旋转矩阵。注意到 B B B 的特殊结构,我们定义:
ω ^ = ω ∣ ω ∣ , θ = t ∣ ω ∣ , B ~ = B ∣ ω ∣ \hat{\omega} = \frac{\omega}{|\omega|}, \quad \theta = t |\omega|, \quad \tilde{B} = \frac{B}{|\omega|} ω^=∣ω∣ω,θ=t∣ω∣,B~=∣ω∣B
这样, e t B = e θ B ~ e^{t B} = e^{\theta \tilde{B}} etB=eθB~,其中 B ~ \tilde{B} B~ 满足 B ~ 3 = − B ~ \tilde{B}^3 = -\tilde{B} B~3=−B~(稍后验证)。计算 B ~ \tilde{B} B~ 的幂:
B ~ = [ 0 − ω ^ 3 ω ^ 2 ω ^ 3 0 − ω ^ 1 − ω ^ 2 ω ^ 1 0 ] \tilde{B} = \begin{bmatrix} 0 & -\hat{\omega}_3 & \hat{\omega}_2 \\ \hat{\omega}_3 & 0 & -\hat{\omega}_1 \\ -\hat{\omega}_2 & \hat{\omega}_1 & 0 \end{bmatrix} B~=
0ω^3−ω^2−ω^30ω^1ω^2−ω^10
定义向量 ω \omega ω 与矩阵 B B B 的关系:对于任意向量 v v v,有:
B v = ω × v B v = \omega \times v Bv=ω×v
因此, B B B 对应于叉积运算。计算 B 2 B^2 B2:
B 2 v = B ( B v ) = B ( ω × v ) = ω × ( ω × v ) = ( ω ⋅ v ) ω − ( ω ⋅ ω ) v = − ∣ ω ∣ 2 v + ( ω ⋅ v ) ω B^2 v = B (B v) = B (\omega \times v) = \omega \times (\omega \times v) = (\omega \cdot v) \omega - (\omega \cdot \omega) v = -|\omega|^2 v + (\omega \cdot v) \omega B2v=B(Bv)=B(ω×v)=ω×(ω×v)=(ω⋅v)ω−(ω⋅ω)v=−∣ω∣2v+(ω⋅v)ω
对于单位向量 ω ^ \hat{\omega} ω^, ∣ ω ^ ∣ = 1 |\hat{\omega}| = 1 ∣ω^∣=1,所以:
B ~ 2 v = − v + ( ω ^ ⋅ v ) ω ^ \tilde{B}^2 v = -v + (\hat{\omega} \cdot v) \hat{\omega} B~2v=−v+(ω^⋅v)ω^
投影到 ω ^ \hat{\omega} ω^ 方向的部分满足 B ~ ( ω ^ ⋅ v ) ω ^ = 0 \tilde{B} (\hat{\omega} \cdot v) \hat{\omega} = 0 B~(ω^⋅v)ω^=0,因此:
B ~ 2 = − I + ω ^ ω ^ T \tilde{B}^2 = -I + \hat{\omega} \hat{\omega}^T B~2=−I+ω^ω^T
再计算:
B ~ 3 = B ~ B ~ 2 = B ~ ( − I + ω ^ ω ^ T ) = − B ~ \tilde{B}^3 = \tilde{B} \tilde{B}^2 = \tilde{B} (-I + \hat{\omega} \hat{\omega}^T) = -\tilde{B} B~3=B~B~2=B~(−I+ω^ω^T)=−B~
因为 B ~ ω ^ = 0 \tilde{B} \hat{\omega} = 0 B~ω^=0。有了这些,我们计算指数:
e θ B ~ = I + θ B ~ + θ 2 2 ! B ~ 2 + θ 3 3 ! B ~ 3 + ⋯ e^{\theta \tilde{B}} = I + \theta \tilde{B} + \frac{\theta^2}{2!} \tilde{B}^2 + \frac{\theta^3}{3!} \tilde{B}^3 + \cdots eθB~=I+θB~+2!θ2B~2+3!θ3B~3+⋯
利用 B ~ 3 = − B ~ \tilde{B}^3 = -\tilde{B} B~3=−B~, B ~ 4 = B ~ 2 \tilde{B}^4 = \tilde{B}^2 B~4=B~2,整理得:
e θ B ~ = I + ( θ − θ 3 3 ! + ⋯ ) B ~ + ( θ 2 2 ! − θ 4 4 ! + ⋯ ) B ~ 2 e^{\theta \tilde{B}} = I + \left( \theta - \frac{\theta^3}{3!} + \cdots \right) \tilde{B} + \left( \frac{\theta^2}{2!} - \frac{\theta^4}{4!} + \cdots \right) \tilde{B}^2 eθB~=I+(θ−3!θ3+⋯)B~+(2!θ2−4!θ4+⋯)B~2
识别出:
sin θ = θ − θ 3 3 ! + ⋯ , 1 − cos θ = θ 2 2 ! − θ 4 4 ! + ⋯ \sin\theta = \theta - \frac{\theta^3}{3!} + \cdots, \quad 1 - \cos\theta = \frac{\theta^2}{2!} - \frac{\theta^4}{4!} + \cdots sinθ=θ−3!θ3+⋯,1−cosθ=2!θ2−4!θ4+⋯
代入 B ~ 2 = − I + ω ^ ω ^ T \tilde{B}^2 = -I + \hat{\omega} \hat{\omega}^T B~2=−I+ω^ω^T:
e θ B ~ = I + sin θ B ~ + ( 1 − cos θ ) B ~ 2 e^{\theta \tilde{B}} = I + \sin\theta \tilde{B} + (1 - \cos\theta) \tilde{B}^2 eθB~=I+sinθB~+(1−cosθ)B~2
将 B ~ \tilde{B} B~ 和 B ~ 2 \tilde{B}^2 B~2 代回,得到 Rodrigues 公式(Rodrigues Formula):
e θ B ~ = I + sin θ B ~ + ( 1 − cos θ ) ( B ~ 2 ) e^{\theta \tilde{B}} = I + \sin\theta \tilde{B} + (1 - \cos\theta) (\tilde{B}^2) eθB~=I+sinθB~+(1−cosθ)(B~2)
对于原始矩阵 B = θ B ~ B = \theta \tilde{B} B=θB~,我们有:
e t B = I + sin ( t ∣ ω ∣ ) B ∣ ω ∣ + ( 1 − cos ( t ∣ ω ∣ ) ) ( B ∣ ω ∣ ) 2 e^{t B} = I + \sin(t |\omega|) \frac{B}{|\omega|} + (1 - \cos(t |\omega|)) \left( \frac{B}{|\omega|} \right)^2 etB=I+sin(t∣ω∣)∣ω∣B+(1−cos(t∣ω∣))(∣ω∣B)2
这表示绕轴 ω / ∣ ω ∣ \omega/|\omega| ω/∣ω∣ 旋转角度 t ∣ ω ∣ t |\omega| t∣ω∣ 的旋转矩阵。
例子:绕 z 轴旋转
取 ω = ( 0 , 0 , 1 ) \omega = (0, 0, 1) ω=(0,0,1),则:
B = [ 0 − 1 0 1 0 0 0 0 0 ] B = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} B=
010−100000
应用 Rodrigues 公式, θ = t \theta = t θ=t, B ~ = B \tilde{B} = B B~=B:
e t B = I + sin t B + ( 1 − cos t ) B 2 e^{t B} = I + \sin t B + (1 - \cos t) B^2 etB=I+sintB+(1−cost)B2
计算 B 2 B^2 B2:
B 2 = [ − 1 0 0 0 − 1 0 0 0 0 ] B^2 = \begin{bmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 0 \end{bmatrix} B2=
−1000−10000
代入:
e t B = [ 1 0 0 0 1 0 0 0 1 ] + sin t [ 0 − 1 0 1 0 0 0 0 0 ] + ( 1 − cos t ) [ − 1 0 0 0 − 1 0 0 0 0 ] e^{t B} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} + \sin t \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} + (1 - \cos t) \begin{bmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 0 \end{bmatrix} etB=
100010001
+sint
010−100000
+(1−cost)
−1000−10000
整理得:
e t B = [ cos t − sin t 0 sin t cos t 0 0 0 1 ] e^{t B} = \begin{bmatrix} \cos t & -\sin t & 0 \\ \sin t & \cos t & 0 \\ 0 & 0 & 1 \end{bmatrix} etB=
costsint0−sintcost0001
这正是绕 z 轴旋转 t t t 弧度的矩阵,与前文一致。
几何意义
Rodrigues 公式表明, so ( 3 ) \text{so}(3) so(3) 中的矩阵 B B B 编码了旋转轴和角速度, e t B e^{t B} etB 将其转化为具体的旋转。几何上,李代数提供了一个线性空间,描述所有可能的旋转“方向”,而指数映射将这些方向“展开”为李群中的曲线。
以 se ( 3 ) \text{se}(3) se(3) 为例:刚体变换
欧几里得群(Euclidean Group, SE(3))描述三维空间的刚体变换(旋转加平移),其元素为 4 × 4 4 \times 4 4×4 矩阵:
[ R t 0 1 ] , R ∈ SO ( 3 ) , t ∈ R 3 \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix}, \quad R \in \text{SO}(3), \quad t \in \mathbb{R}^3 [R0t1],R∈SO(3),t∈R3
其李代数 se ( 3 ) \text{se}(3) se(3) 由矩阵构成:
[ B v 0 0 ] , B ∈ so ( 3 ) , v ∈ R 3 \begin{bmatrix} B & v \\ 0 & 0 \end{bmatrix}, \quad B \in \text{so}(3), \quad v \in \mathbb{R}^3 [B0v0],B∈so(3),v∈R3
其中 B B B 表示角速度, v v v 表示线速度。
推导指数映射
考虑 se ( 3 ) \text{se}(3) se(3) 元素:
A = [ B v 0 0 ] A = \begin{bmatrix} B & v \\ 0 & 0 \end{bmatrix} A=[B0v0]
计算 e t A e^{t A} etA:
e t A = ∑ k = 0 ∞ ( t A ) k k ! e^{t A} = \sum_{k=0}^\infty \frac{(t A)^k}{k!} etA=k=0∑∞k!(tA)k
由于 A A A 的分块结构,计算 ( t A ) k (t A)^k (tA)k:
A 2 = [ B v 0 0 ] [ B v 0 0 ] = [ B 2 B v 0 0 ] A^2 = \begin{bmatrix} B & v \\ 0 & 0 \end{bmatrix} \begin{bmatrix} B & v \\ 0 & 0 \end{bmatrix} = \begin{bmatrix} B^2 & B v \\ 0 & 0 \end{bmatrix} A2=[B0v0][B0v0]=[B20Bv0]
一般地:
A k = [ B k B k − 1 v 0 0 ] A^k = \begin{bmatrix} B^k & B^{k-1} v \\ 0 & 0 \end{bmatrix} Ak=[Bk0Bk−1v0]
指数为:
e t A = [ e t B ∫ 0 t e s B v d s 0 1 ] e^{t A} = \begin{bmatrix} e^{t B} & \int_0^t e^{s B} v \, ds \\ 0 & 1 \end{bmatrix} etA=[etB0∫0tesBvds1]
其中 e t B ∈ SO ( 3 ) e^{t B} \in \text{SO}(3) etB∈SO(3) 是旋转矩阵。积分部分计算:
∫ 0 t e s B v d s \int_0^t e^{s B} v \, ds ∫0tesBvds
若 B = θ B ~ B = \theta \tilde{B} B=θB~,使用 Rodrigues 公式:
e s B = I + sin ( s θ ) B ~ + ( 1 − cos ( s θ ) ) B ~ 2 e^{s B} = I + \sin(s \theta) \tilde{B} + (1 - \cos(s \theta)) \tilde{B}^2 esB=I+sin(sθ)B~+(1−cos(sθ))B~2
积分得:
∫ 0 t e s B v d s = ( I t + 1 − cos ( t θ ) θ B ~ + t θ − sin ( t θ ) θ 2 B ~ 2 ) v \int_0^t e^{s B} v \, ds = \left( I t + \frac{1 - \cos(t \theta)}{\theta} \tilde{B} + \frac{t \theta - \sin(t \theta)}{\theta^2} \tilde{B}^2 \right) v ∫0tesBvds=(It+θ1−cos(tθ)B~+θ2tθ−sin(tθ)B~2)v
最终:
e t A = [ e t B V v 0 1 ] e^{t A} = \begin{bmatrix} e^{t B} & V v \\ 0 & 1 \end{bmatrix} etA=[etB0Vv1]
其中 V V V 是与旋转相关的矩阵。这表示一个螺旋运动(Screw Motion):先旋转后平移。
例子:机器人运动
假设机器人绕 z 轴旋转 θ = t \theta = t θ=t,同时沿 z 轴平移 v = ( 0 , 0 , t ) v = (0, 0, t) v=(0,0,t):
A = [ 0 − 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 ] A = \begin{bmatrix} 0 & -1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{bmatrix} A=
0100−100000000010
计算 e t A e^{t A} etA(推导略,类似前述),结果为:
e t A = [ cos t − sin t 0 0 sin t cos t 0 0 0 0 1 t 0 0 0 1 ] e^{t A} = \begin{bmatrix} \cos t & -\sin t & 0 & 0 \\ \sin t & \cos t & 0 & 0 \\ 0 & 0 & 1 & t \\ 0 & 0 & 0 & 1 \end{bmatrix} etA=
costsint00−sintcost00001000t1
这描述了机器人绕 z 轴旋转 t t t 弧度,同时沿 z 轴平移 t t t 个单位。
几何意义
se ( 3 ) \text{se}(3) se(3) 的指数映射将角速度和线速度组合为刚体变换,几何上对应于螺旋运动。 B B B 控制旋转轴, v v v 控制平移方向, e t A e^{t A} etA 将这些“速度”转化为具体的位姿。
非交换性:Baker-Campbell-Hausdorff 公式
矩阵指数的非交换性是李代数的重要特征。一般情况下:
e A e B ≠ e A + B e^A e^B \neq e^{A+B} eAeB=eA+B
Baker-Campbell-Hausdorff 公式(BCH Formula)提供了近似:
e A e B = e C , C ≈ A + B + 1 2 [ A , B ] + 高阶项 e^A e^B = e^C, \quad C \approx A + B + \frac{1}{2} [A, B] + \text{高阶项} eAeB=eC,C≈A+B+21[A,B]+高阶项
对于小矩阵 A , B A, B A,B:
e A e B ≈ e A + B + 1 2 [ A , B ] e^A e^B \approx e^{A + B + \frac{1}{2} [A, B]} eAeB≈eA+B+21[A,B]
这表明李括号 [ A , B ] [A, B] [A,B] 量化了非交换效应。
例子:旋转的非交换
在 so ( 3 ) \text{so}(3) so(3) 中,取:
A = θ B 1 , B = ϕ B 2 A = \theta B_1, \quad B = \phi B_2 A=θB1,B=ϕB2
其中 B 1 , B 2 B_1, B_2 B1,B2 是 so ( 3 ) \text{so}(3) so(3) 的基。计算 [ A , B ] = θ ϕ [ B 1 , B 2 ] = θ ϕ B 3 [A, B] = \theta \phi [B_1, B_2] = \theta \phi B_3 [A,B]=θϕ[B1,B2]=θϕB3。BCH 公式表明:
e θ B 1 e ϕ B 2 ≈ e θ B 1 + ϕ B 2 + 1 2 θ ϕ B 3 e^{\theta B_1} e^{\phi B_2} \approx e^{\theta B_1 + \phi B_2 + \frac{1}{2} \theta \phi B_3} eθB1eϕB2≈eθB1+ϕB2+21θϕB3
这意味着先绕 x 轴旋转 θ \theta θ,再绕 y 轴旋转 ϕ \phi ϕ,会引入一个额外的绕 z 轴的旋转。
直观总结
- 矩阵指数:将李代数的“无穷小变换”映射到李群的“全局变换”,如从角速度到旋转矩阵。
- Rodrigues 公式:为 so ( 3 ) \text{so}(3) so(3) 提供了绕轴旋转的显式表达式。
- se ( 3 ) \text{se}(3) se(3) 的应用:描述刚体运动,广泛用于机器人学。
- 非交换性:李括号和 BCH 公式揭示了变换顺序的重要性。
- 几何意义:李代数是李群的“切空间”,指数映射像是从“速度”积分到“位置”。
在计算机科学中,矩阵指数映射简化了非线性变换的处理。例如,3D 动画中的平滑旋转、机器人路径规划中的优化,都依赖于 so ( 3 ) \text{so}(3) so(3) 和 se ( 3 ) \text{se}(3) se(3) 的指数映射。下一篇文章将探讨李括号与结构常数,进一步揭示李代数的代数性质。
后记
2025年4月12日于上海,在grok 3大模型辅助下完成。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)