李代数的结构——以 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大模型辅助下完成。