李代数的结构——以 so(n) 为例
Link: 写给计算机系同学的李群与李代数(一):从旋转矩阵到抽象群
在上一篇文章中,我们初步认识了李群(Lie Group)和李代数(Lie Algebra),并以特殊正交群(Special Orthogonal Group, SO(2))为例,了解了李代数如何通过矩阵指数映射(Matrix Exponential)生成李群的元素。今天,我们将深入探讨李代数的结构,重点聚焦于特殊正交群 SO(n) 的李代数 so(n),即由反对称矩阵(Skew-Symmetric Matrix)构成的向量空间。我们会通过公式推导、具体例子和几何解释,帮助你理解李代数的代数性质,以及它为何在计算机科学中如此重要。
李代数(Lie Algebra)的定义
李代数是一个向量空间,配备了一种特殊的双线性运算——李括号(Lie Bracket)。形式上,一个李代数 g \mathfrak{g} g 满足以下条件:
- 向量空间: g \mathfrak{g} g 是一个向量空间(通常在实数或复数域上),支持加法和标量乘法。
- 李括号:存在一个运算 [ ⋅ , ⋅ ] : g × g → g [ \cdot, \cdot ]: \mathfrak{g} \times \mathfrak{g} \to \mathfrak{g} [⋅,⋅]:g×g→g,满足:
- 反对称性(Antisymmetry): [ A , B ] = − [ B , A ] [A, B] = -[B, A] [A,B]=−[B,A]。
- 双线性(Bilinearity): [ c A + d B , C ] = c [ A , C ] + d [ B , C ] [cA + dB, C] = c[A, C] + d[B, C] [cA+dB,C]=c[A,C]+d[B,C],对任意标量 c , d c, d c,d。
- Jacobi 恒等式(Jacobi Identity):
[ [ A , B ] , C ] + [ [ B , C ] , A ] + [ [ C , A ] , B ] = 0 [[A, B], C] + [[B, C], A] + [[C, A], B] = 0 [[A,B],C]+[[B,C],A]+[[C,A],B]=0
对于矩阵李代数(Matrix Lie Algebra),李括号通常定义为矩阵的交换子:
[ A , B ] = A B − B A [A, B] = AB - BA [A,B]=AB−BA
这个运算捕捉了矩阵之间“非交换”的性质,我们稍后会看到它在几何上如何对应旋转的非交换性。
李代数与李群的联系在于:李代数描述了李群在单位元(Identity Element,例如单位矩阵)附近的“无穷小变换”(Infinitesimal Transformation)。通过矩阵指数映射 e A e^A eA,李代数的元素可以生成李群的元素。
so(n):特殊正交群的李代数
特殊正交群 SO(n) 包含所有 n × n n \times n n×n 旋转矩阵,满足 R T R = I R^T R = I RTR=I 且 det ( R ) = 1 \det(R) = 1 det(R)=1。它的李代数 so ( n ) \text{so}(n) so(n) 由所有 n × n n \times n n×n 反对称矩阵构成。让我们一步步探索 so ( n ) \text{so}(n) so(n) 的结构。
反对称矩阵(Skew-Symmetric Matrix)的定义
一个矩阵 B B B 是反对称的,如果满足:
B T = − B B^T = -B BT=−B
这意味着 B B B 的主对角线元素为 0,且对称位置的元素互为相反数。例如, 3 × 3 3 \times 3 3×3 反对称矩阵的一般形式为:
B = [ 0 − b 12 − b 13 b 12 0 − b 23 b 13 b 23 0 ] B = \begin{bmatrix} 0 & -b_{12} & -b_{13} \\ b_{12} & 0 & -b_{23} \\ b_{13} & b_{23} & 0 \end{bmatrix} B=
0b12b13−b120b23−b13−b230
其中 b 12 , b 13 , b 23 b_{12}, b_{13}, b_{23} b12,b13,b23 是任意实数。
为什么 so ( n ) \text{so}(n) so(n) 由反对称矩阵组成?
为了理解这一点,我们需要推导 SO(n) 的李代数。考虑 SO(n) 中的一条曲线 R ( t ) R(t) R(t),满足 R ( 0 ) = I R(0) = I R(0)=I(单位矩阵)。因为 R ( t ) ∈ SO ( n ) R(t) \in \text{SO}(n) R(t)∈SO(n),有:
R ( t ) T R ( t ) = I R(t)^T R(t) = I R(t)TR(t)=I
对 t t t 求导,并在 t = 0 t = 0 t=0 处计算(上面的点表示对t的导数):
d d t [ R ( t ) T R ( t ) ] = R ˙ ( t ) T R ( t ) + R ( t ) T R ˙ ( t ) = 0 \frac{d}{dt} [ R(t)^T R(t) ] = \dot{R}(t)^T R(t) + R(t)^T \dot{R}(t) = 0 dtd[R(t)TR(t)]=R˙(t)TR(t)+R(t)TR˙(t)=0
在 t = 0 t = 0 t=0, R ( 0 ) = I R(0) = I R(0)=I,所以:
R ˙ ( 0 ) T I + I T R ˙ ( 0 ) = R ˙ ( 0 ) T + R ˙ ( 0 ) = 0 \dot{R}(0)^T I + I^T \dot{R}(0) = \dot{R}(0)^T + \dot{R}(0) = 0 R˙(0)TI+ITR˙(0)=R˙(0)T+R˙(0)=0
令 B = R ˙ ( 0 ) B = \dot{R}(0) B=R˙(0),则:
B T = − B B^T = -B BT=−B
这表明 R ˙ ( 0 ) \dot{R}(0) R˙(0) 是一个反对称矩阵。因此,SO(n) 的李代数 so ( n ) \text{so}(n) so(n) 由所有 n × n n \times n n×n 反对称矩阵组成。
so ( n ) \text{so}(n) so(n) 的维度
一个 n × n n \times n n×n 反对称矩阵的独立元素数量是多少?因为 B T = − B B^T = -B BT=−B,主对角线元素为 0,非对角线元素 ( i , j ) (i, j) (i,j) 和 ( j , i ) (j, i) (j,i) 互为相反数。自由参数的数量是上三角非对角线元素个数:
( n 2 ) = n ( n − 1 ) 2 \binom{n}{2} = \frac{n(n-1)}{2} (2n)=2n(n−1)
因此, so ( n ) \text{so}(n) so(n) 作为一个向量空间的维度为 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1)。例如:
- so ( 2 ) \text{so}(2) so(2):维度为 2 ⋅ 1 2 = 1 \frac{2 \cdot 1}{2} = 1 22⋅1=1。
- so ( 3 ) \text{so}(3) so(3):维度为 3 ⋅ 2 2 = 3 \frac{3 \cdot 2}{2} = 3 23⋅2=3。
以 so ( 2 ) \text{so}(2) so(2) 为例
让我们先从简单的 so ( 2 ) \text{so}(2) so(2) 开始。 so ( 2 ) \text{so}(2) so(2) 包含所有 2 × 2 2 \times 2 2×2 反对称矩阵,形如:
B = [ 0 − b b 0 ] = b [ 0 − 1 1 0 ] B = \begin{bmatrix} 0 & -b \\ b & 0 \end{bmatrix} = b \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} B=[0b−b0]=b[01−10]
基向量可以取:
B 1 = [ 0 − 1 1 0 ] B_1 = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} B1=[01−10]
so ( 2 ) \text{so}(2) so(2) 是维度为 1 的向量空间,任意元素为 θ B 1 \theta B_1 θB1,其中 θ ∈ R \theta \in \mathbb{R} θ∈R。
李括号
由于 so ( 2 ) \text{so}(2) so(2) 是一维的,李括号 [ B 1 , B 1 ] = B 1 B 1 − B 1 B 1 = 0 [B_1, B_1] = B_1 B_1 - B_1 B_1 = 0 [B1,B1]=B1B1−B1B1=0,这意味着 so ( 2 ) \text{so}(2) so(2) 是阿贝尔李代数(Abelian Lie Algebra),即所有元素交换。李括号为零表明二维旋转是可交换的:先旋转 θ 1 \theta_1 θ1 再旋转 θ 2 \theta_2 θ2 等同于直接旋转 θ 1 + θ 2 \theta_1 + \theta_2 θ1+θ2。
矩阵指数
我们已经在第一篇中推导过:
e θ B 1 = [ cos θ − sin θ sin θ cos θ ] e^{\theta B_1} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} eθB1=[cosθsinθ−sinθcosθ]
这验证了 so ( 2 ) \text{so}(2) so(2) 的元素通过指数映射生成 SO(2) 的旋转矩阵。
几何意义
在 so ( 2 ) \text{so}(2) so(2) 中,矩阵 θ B 1 \theta B_1 θB1 表示一个“无穷小旋转”, θ \theta θ 是旋转速度。指数映射 e θ B 1 e^{\theta B_1} eθB1 将这个速度转化为具体的旋转角度,类比于“角速度”到“角度”的积分。
以 so ( 3 ) \text{so}(3) so(3) 为例
现在进入更丰富的 so ( 3 ) \text{so}(3) so(3),它是 SO(3) 的李代数,包含所有 3 × 3 3 \times 3 3×3 反对称矩阵。 so ( 3 ) \text{so}(3) so(3) 的维度为 3,其标准基可以取为:
B 1 = [ 0 0 0 0 0 − 1 0 1 0 ] , B 2 = [ 0 0 1 0 0 0 − 1 0 0 ] , B 3 = [ 0 − 1 0 1 0 0 0 0 0 ] B_1 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix}, \quad B_2 = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{bmatrix}, \quad B_3 = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} B1=
0000010−10
,B2=
00−1000100
,B3=
010−100000
任意 so ( 3 ) \text{so}(3) so(3) 的元素可以写为:
B = a 1 B 1 + a 2 B 2 + a 3 B 3 B = a_1 B_1 + a_2 B_2 + a_3 B_3 B=a1B1+a2B2+a3B3
这些基矩阵与三维空间的旋转密切相关,我们稍后会解释。
矩阵指数映射
考虑 B 3 B_3 B3,它对应绕 z 轴的“无穷小旋转”。计算 e θ B 3 e^{\theta B_3} eθB3:
B 3 = [ 0 − 1 0 1 0 0 0 0 0 ] , B 3 2 = B 3 B 3 = [ − 1 0 0 0 − 1 0 0 0 0 ] , B 3 3 = B 3 2 B 3 = [ 0 1 0 − 1 0 0 0 0 0 ] = − B 3 B_3 = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}, \quad B_3^2 = B_3 B_3 = \begin{bmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 0 \end{bmatrix}, \quad B_3^3 = B_3^2 B_3 = \begin{bmatrix} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} = -B_3 B3=
010−100000
,B32=B3B3=
−1000−10000
,B33=B32B3=
0−10100000
=−B3
指数展开:
e θ B 3 = I + θ B 3 + θ 2 2 ! B 3 2 + θ 3 3 ! B 3 3 + ⋯ e^{\theta B_3} = I + \theta B_3 + \frac{\theta^2}{2!} B_3^2 + \frac{\theta^3}{3!} B_3^3 + \cdots eθB3=I+θB3+2!θ2B32+3!θ3B33+⋯
分离矩阵的子空间:
- 前 2 × 2 2 \times 2 2×2 子矩阵形如 θ [ 0 − 1 1 0 ] \theta \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} θ[01−10],类似 so ( 2 ) \text{so}(2) so(2),贡献 [ cos θ − sin θ sin θ cos θ ] \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} [cosθsinθ−sinθcosθ]。
- 第三行和第三列的零保持不变。
结果为:
e θ B 3 = [ cos θ − sin θ 0 sin θ cos θ 0 0 0 1 ] e^{\theta B_3} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} eθB3= cosθsinθ0−sinθcosθ0001
这是一个绕 z 轴旋转 θ \theta θ 角度的矩阵。类似地, e θ B 1 e^{\theta B_1} eθB1 和 e θ B 2 e^{\theta B_2} eθB2 分别生成绕 x 轴和 y 轴的旋转。
李括号
与 so ( 2 ) \text{so}(2) so(2) 不同, so ( 3 ) \text{so}(3) so(3) 是非阿贝尔的(Non-Abelian)。计算李括号:
[ B 1 , B 2 ] = B 1 B 2 − B 2 B 1 [B_1, B_2] = B_1 B_2 - B_2 B_1 [B1,B2]=B1B2−B2B1
B 1 B 2 = [ 0 0 0 0 0 − 1 0 1 0 ] [ 0 0 1 0 0 0 − 1 0 0 ] = [ 0 0 0 1 0 0 0 0 0 ] B_1 B_2 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} B1B2=
0000010−10
00−1000100
=
010000000
B 2 B 1 = [ 0 0 1 0 0 0 − 1 0 0 ] [ 0 0 0 0 0 − 1 0 1 0 ] = [ 0 1 0 0 0 0 0 0 0 ] B_2 B_1 = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} B2B1=
00−1000100
0000010−10
=
000100000
[ B 1 , B 2 ] = [ 0 − 1 0 1 0 0 0 0 0 ] = B 3 [B_1, B_2] = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} = B_3 [B1,B2]=
010−100000
=B3
类似地:
[ B 2 , B 3 ] = B 1 , [ B 3 , B 1 ] = B 2 [B_2, B_3] = B_1, \quad [B_3, B_1] = B_2 [B2,B3]=B1,[B3,B1]=B2
这表明 so ( 3 ) \text{so}(3) so(3) 的李括号满足:
[ B i , B j ] = ϵ i j k B k [B_i, B_j] = \epsilon_{ijk} B_k [Bi,Bj]=ϵijkBk
其中 ϵ i j k \epsilon_{ijk} ϵijk 是 Levi-Civita 符号。这种结构与三维向量叉积类似,稍后会解释其几何意义。
验证封闭性
李括号的结果仍在 so ( 3 ) \text{so}(3) so(3) 中,说明 so ( 3 ) \text{so}(3) so(3) 是一个李代数。Jacobi 恒等式的验证留给读者作为练习(提示:直接代入 B 1 , B 2 , B 3 B_1, B_2, B_3 B1,B2,B3 计算)。
几何意义
so ( 3 ) \text{so}(3) so(3) 的基 B 1 , B 2 , B 3 B_1, B_2, B_3 B1,B2,B3 分别表示绕 x、y、z 轴的“无穷小旋转”。李括号 [ B i , B j ] [B_i, B_j] [Bi,Bj] 描述了旋转的非交换性。例如, [ B 1 , B 2 ] = B 3 [B_1, B_2] = B_3 [B1,B2]=B3 表明,先绕 y 轴旋转再绕 x 轴,与相反顺序的组合,会产生一个绕 z 轴的净旋转。这与现实中三维旋转的非交换性一致:试试拿一个书本,先绕 x 轴旋转 90°,再绕 y 轴旋转 90°,然后反过来试,结果不同!
李括号的结构类似向量叉积:如果把 B 1 , B 2 , B 3 B_1, B_2, B_3 B1,B2,B3 对应于 ( 1 , 0 , 0 ) , ( 0 , 1 , 0 ) , ( 0 , 0 , 1 ) (1, 0, 0), (0, 1, 0), (0, 0, 1) (1,0,0),(0,1,0),(0,0,1),则 [ B i , B j ] [B_i, B_j] [Bi,Bj] 对应于叉积的方向。这种联系将在后续博客中进一步探讨。
例子:从 so ( 3 ) \text{so}(3) so(3) 到 3D 旋转
假设我们有一个角速度向量 ω = ( ω 1 , ω 2 , ω 3 ) \omega = (\omega_1, \omega_2, \omega_3) ω=(ω1,ω2,ω3),对应的 so ( 3 ) \text{so}(3) so(3) 元素为:
B = ω 1 B 1 + ω 2 B 2 + ω 3 B 3 = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] B = \omega_1 B_1 + \omega_2 B_2 + \omega_3 B_3 = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix} B=ω1B1+ω2B2+ω3B3=
0ω3−ω2−ω30ω1ω2−ω10
矩阵 B B B 表示绕轴 ω \omega ω 的无穷小旋转,旋转速度为 ∣ ω ∣ |\omega| ∣ω∣。通过指数映射 e t B e^{t B} etB,我们得到一个旋转矩阵,描述随时间 t t t 的旋转(具体推导涉及 Rodrigues 公式,将在下一篇文章中详细介绍)。
在计算机图形学中,这种表示用于动画插值。例如,游戏中角色的平滑旋转可以通过 so ( 3 ) \text{so}(3) so(3) 的线性组合实现。
直观总结
- so ( n ) \text{so}(n) so(n) 的结构:由反对称矩阵组成,维度为 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1)。 so ( 2 ) \text{so}(2) so(2) 是阿贝尔的, so ( 3 ) \text{so}(3) so(3) 是非阿贝尔的,反映了旋转的复杂性。
- 李括号:捕捉变换的非交换性,在 so ( 3 ) \text{so}(3) so(3) 中体现为旋转的顺序依赖。
- 几何意义:反对称矩阵表示“无穷小旋转”,李括号描述旋转如何“扭曲”或组合。
- 计算机相关性: so ( 3 ) \text{so}(3) so(3) 是 3D 图形学和机器人学的核心,提供了局部线性化的工具。
下一篇文章将深入探讨矩阵指数映射的细节,揭示李群与李代数之间的动态联系。希望你现在对 so ( n ) \text{so}(n) so(n) 的结构有了更深的理解!
后记
2025年4月11日于上海,在grok 3大模型辅助下完成。