李群
自同构
有理数方程的根式解(如有)之间存在同构(双射)映射
根据生成元的性质和数量,可以对不同类型的群进行分类和分析,从而揭示群的结构特点。以下是基于生成元的性质和数量对常见群的分类和总结:
生成元
群的生成元是群论中的一个重要概念,下面将结合整数加法群、实数乘法群和模 3 循环群详细介绍生成元的含义。
群的生成元的定义
设\((G,\circ)\)是一个群,\(S\)是\(G\)的一个非空子集。由\(S\)中的元素通过有限次的群运算\(\circ\)所能生成的所有元素构成的集合记为\(\langle S\rangle\),即
\(\langle S\rangle=\left\{a_1\circ a_2\circ\cdots\circ a_n\mid n\in\mathbb{N}, a_i\in S\cup S^{-1}, i = 1,2,\cdots,n\right\}\)
其中\(S^{-1}=\{a^{-1}\mid a\in S\}\),\(a^{-1}\)是\(a\)在群\(G\)中的逆元。如果\(\langle S\rangle = G\),则称\(S\)是群\(G\)的一个生成集,\(S\)中的元素称为群\(G\)的生成元。特别地,如果\(S=\{g\}\)是单元素集,那么称\(g\)是群\(G\)的一个生成元。
整数加法群\((\mathbb{Z}, +)\)
• 生成元的确定:整数加法群\((\mathbb{Z}, +)\)中,考虑元素\(1\)。对于任意整数\(n\in\mathbb{Z}\),可以通过\(1\)的有限次加法(当\(n>0\)时)或减法(当\(n < 0\)时,相当于加\(1\)的逆元\(-1\))得到。
◦ 当\(n>0\)时,\(n = 1 + 1+\cdots+1\)(\(n\)个\(1\)相加);
◦ 当\(n = 0\)时,\(0\)是加法的单位元,可看作没有进行加法运算;
◦ 当\(n<0\)时,\(n=(-1)+(-1)+\cdots+(-1)\)(\(\vert n\vert\)个\(-1\)相加)。
所以\(\langle 1\rangle=\mathbb{Z}\),即\(1\)是整数加法群\((\mathbb{Z}, +)\)的一个生成元。实际上,\(-1\)也是它的生成元,因为由\(-1\)通过有限次加法也能得到任意整数。而且,整数加法群\((\mathbb{Z}, +)\)只有\(1\)和\(-1\)这两个生成元,因为如果一个非零整数\(m\neq\pm1\),那么由\(m\)生成的集合\(\langle m\rangle=\{km\mid k\in\mathbb{Z}\}\)只是\(\mathbb{Z}\)的真子集。
实数乘法群\((\mathbb{R}^*, \times)\)
• 不存在有限生成元:实数乘法群\((\mathbb{R}^*, \times)\)是由所有非零实数组成的群,群运算是普通的乘法。这个群没有有限个生成元。
◦ 假设存在有限个元素\(a_1,a_2,\cdots,a_n\in\mathbb{R}^*\),使得\(\langle a_1,a_2,\cdots,a_n\rangle=\mathbb{R}^*\)。考虑这些元素生成的集合中的元素都是它们的有限次乘积。但是,实数集中包含很多不能由有限个非零实数的乘积表示的数。例如,对于任意给定的有限个非零实数\(a_1,a_2,\cdots,a_n\),它们的乘积只能得到特定形式的数,而像\(\pi\)这样的超越数无法由有限个非零实数的乘积得到。所以实数乘法群\((\mathbb{R}^*, \times)\)不是有限生成群。
◦ 不过,如果考虑特殊的子群,比如正实数乘法群\((\mathbb{R}^+, \times)\),它可以由\(2\)生成,因为对于任意正实数\(x\),根据对数的性质,存在实数\(y\)使得\(x = 2^y\),而\(y\)可以通过有理数的逼近得到,有理数可以由\(2\)的有限次幂的运算组合逼近。
模 3 循环群\((\mathbb{Z}_3, +)\)
• 生成元的确定:模 3 循环群\(\mathbb{Z}_3=\{[0],[1],[2]\}\),其中\([i]\)表示模 3 同余类,群运算是模 3 加法。考虑元素\([1]\):
◦ \([1]\)自身:\([1]\);
◦ \([1]\)的一次方(这里就是\([1]\)本身):\([1]\);
◦ \([1]\)的二次方:\([1]+[1]=[2]\);
◦ \([1]\)的三次方:\([1]+[1]+[1]=[3]=[0]\)(因为\(3\equiv0\pmod{3}\))。
所以\(\langle[1]\rangle=\mathbb{Z}_3\),即\([1]\)是模 3 循环群\((\mathbb{Z}_3, +)\)的一个生成元。同样,\([2]\)也是它的生成元,因为:
◦ \([2]\)自身:\([2]\);
◦ \([2]\)的一次方(\([2]\)本身):\([2]\);
◦ \([2]\)的二次方:\([2]+[2]=[4]=[1]\)(因为\(4\equiv1\pmod{3}\));
◦ \([2]\)的三次方:\([2]+[2]+[2]=[6]=[0]\)(因为\(6\equiv0\pmod{3}\))。所以\(\langle[2]\rangle=\mathbb{Z}_3\)。模 3 循环群\((\mathbb{Z}_3, +)\)只有\([1]\)和\([2]\)这两个生成元,因为如果取\([0]\),\(\langle[0]\rangle = \{[0]\}\neq\mathbb{Z}_3\);如果取其他元素(这里没有其他非单位元了),生成的集合也不会是整个\(\mathbb{Z}_3\)。
1. 循环群(Cyclic Groups)
定义:
循环群是由一个生成元生成的群,即存在一个元素 \(g \in G\),使得 \(G = \langle g \rangle\)。
生成元的性质和数量:
• 有限循环群:
• 生成元的数量:对于一个阶为 \(n\) 的有限循环群 \(G\),生成元的数量为 \(\varphi(n)\),其中 \(\varphi(n)\) 是欧拉函数,表示小于 \(n\) 且与 \(n\) 互质的正整数的个数。
• 例子:模 \(n\) 的剩余类加法群 \(\mathbb{Z}_n\) 是一个有限循环群,生成元的数量为 \(\varphi(n)\)。例如:
◦ \(\mathbb{Z}_3\) 有 2 个生成元(\([1]\) 和 \([2]\))。
◦ \(\mathbb{Z}_4\) 有 2 个生成元(\([1]\) 和 \([3]\))。
◦ \(\mathbb{Z}_6\) 有 2 个生成元(\([1]\) 和 \([5]\))。
• 无限循环群:
• 生成元的数量:无限循环群有 2 个生成元。
• 例子:整数加法群 \((\mathbb{Z}, +)\) 是一个无限循环群,生成元为 \(1\) 和 \(-1\)。
群的特点:
• 循环群是最简单的群结构,具有高度的对称性和规律性。
• 有限循环群的结构完全由生成元的阶决定。
• 无限循环群同构于整数加法群 \((\mathbb{Z}, +)\)。
2. 阿贝尔群(Abelian Groups)
定义:
阿贝尔群是满足交换律的群,即对于任意 \(a, b \in G\),有 \(a \cdot b = b \cdot a\)。
生成元的性质和数量:
• 阿贝尔群的生成元可以是多个元素的组合,生成元的数量取决于群的结构。
• 有限阿贝尔群:
• 根据基本定理,任何有限阿贝尔群都可以分解为若干个循环群的直积。
• 例子:
◦ \(\mathbb{Z}_2 \times \mathbb{Z}_2\) 是一个阿贝尔群,生成元为 \((1, 0)\) 和 \((0, 1)\),共有 4 个生成元。
◦ \(\mathbb{Z}_3 \times \mathbb{Z}_3\) 是一个阿贝尔群,生成元为 \((1, 0)\) 和 \((0, 1)\),共有 9 个生成元。
• 无限阿贝尔群:
• 例子:有理数加法群 \((\mathbb{Q}, +)\) 是一个无限阿贝尔群,但它不是循环群,因为它没有生成元。
群的特点:
• 阿贝尔群的结构通常可以通过分解为循环群的直积来分析。
• 阿贝尔群的生成元数量可能较多,具体取决于群的分解方式。
3. 非阿贝尔群(Non-Abelian Groups)
定义:
非阿贝尔群是不满足交换律的群,即存在 \(a, b \in G\) 使得 \(a \cdot b \neq b \cdot a\)。
生成元的性质和数量:
• 非阿贝尔群的生成元通常是多个元素的组合,且这些元素之间的关系较为复杂。
• 例子:
• 对称群 \(S_3\) 是一个非阿贝尔群,阶为 6。它的生成元可以是 \((1\ 2)\) 和 \((1\ 2\ 3)\),共有 2 个生成元。
• 二面体群 \(D_n\)(正 \(n\) 边形的对称群)是一个非阿贝尔群,生成元为旋转和反射操作,生成元数量为 2。
群的特点:
• 非阿贝尔群的结构比阿贝尔群复杂,生成元之间的关系需要通过群的运算规则来确定。
• 非阿贝尔群的生成元数量通常较少,但生成元的幂次和组合需要仔细分析。
4. 单位元群(Trivial Group)
定义:
单位元群是只包含单位元的群,记为 \(\{e\}\)。
生成元的性质和数量:
• 生成元的数量:单位元群只有一个生成元,即单位元本身。
• 例子:\(\{0\}\) 是整数加法群的子群,生成元为 \(0\)。
群的特点:
• 单位元群是最简单的群结构,没有任何非平凡的运算。
5. 有限群与无限群
有限群:
• 有限群的生成元数量是有限的。
• 例子:模 \(n\) 的剩余类加法群 \(\mathbb{Z}_n\) 是有限群,生成元数量为 \(\varphi(n)\)。
无限群:
• 无限群的生成元数量可能是有限的(如循环群)或无限的(如整数加法群)。
• 例子:有理数加法群 \((\mathbb{Q}, +)\) 是无限群,但没有生成元。
6. 循环群的推广:自由群(Free Groups)
定义:
自由群是由一组生成元生成的群,且生成元之间没有额外的关系。
生成元的性质和数量:
• 生成元的数量:自由群的生成元数量决定了群的自由度。
• 例子:由两个生成元 \(a\) 和 \(b\) 生成的自由群 \(F_2\),其生成元为 \(a, b\),且 \(a\) 和 \(b\) 之间没有关系。
群的特点:
• 自由群是最一般的群结构,其他群可以看作自由群的商群。
7. 置换群(Permutation Groups)
定义:
置换群是由集合的置换(双射)组成的群。
生成元的性质和数量:
• 生成元的数量:置换群的生成元数量取决于置换的结构。
• 例子:对称群 \(S_n\) 是由 \(n\) 个元素的置换组成的群,生成元可以是若干对换(如 \((1\ 2), (1\ 3), \dots\))。
群的特点:
• 置换群是研究群论的重要工具,许多抽象群可以通过置换群来表示。
总结
| 群类型 | 生成元数量 | 生成元性质 | 例子 |
|---|---|---|---|
| 循环群 | 有限(\(\varphi(n)\) 或 2) | 一个或多个生成元,生成整个群 | \(\mathbb{Z}_n\), \(\mathbb{Z}\) |
| 阿贝尔群 | 多个(取决于分解) | 可以分解为循环群的直积,生成元之间满足交换律 | \(\mathbb{Z}_2 \times \mathbb{Z}_2\) |
| 非阿贝尔群 | 少量(通常 2 个或更多) | 生成元之间不满足交换律,关系复杂 | \(S_3\), \(D_n\) |
| 单位元群 | 1 | 只有单位元是生成元 | \(\{e\}\) |
| 自由群 | 任意(取决于生成元数量) | 生成元之间没有额外关系 | \(F_2\)(两个生成元 \(a, b\)) |
| 置换群 | 取决于置换结构 | 生成元通常是对换或其他简单置换 | \(S_n\) |
结论
• 循环群是最简单的群结构,生成元数量有限且易于分析。
• 阿贝尔群的生成元数量取决于其分解为循环群的方式。
• 非阿贝尔群的生成元数量较少,但生成元之间的关系复杂。
• 自由群和置换群是研究更复杂群结构的基础工具。
通过生成元的性质和数量,可以揭示群的结构特点,并为群的分类和分析提供重要依据。
李群、切空间和纤维丛:二维和三维例子
李群是指既是群又是光滑流形的集合,且群运算和求逆运算都是光滑映射。
- SO(n):(SO(3):=Special Orthogonal Group in 3D,三维特殊正交群),\(SO(n)=\{R|R^TR=I,det(R)=1 \}\)
- so(n)为SO(n)对应的李代数
- SE(3):欧式变换(Euclidean transformation),由SO(3)增广得到的矩阵,\(\begin{bmatrix} R & t\\ 0 & 1\end{bmatrix}\),其中\(R \in SO(3)\)
- SU(n):(SU(2):=Special Orthogonal Group in 3D,二维特殊酉群),\(SU(n)=\{U|U^†U=I,det(U)=1 \}\)
- 实际上,SU(2)有到SO(3)的同态映射关系,SU(2)与四元数是同构的,SU(2)或者四元数到SO(3)的映射是二到一的(双重覆盖double cover),这涉及到Möbius变换
\(\frac{a+bi}{c+di} \to \pm \begin{bmatrix} a & b\\ d & c\end{bmatrix}\)
- 实际上,SU(2)有到SO(3)的同态映射关系,SU(2)与四元数是同构的,SU(2)或者四元数到SO(3)的映射是二到一的(双重覆盖double cover),这涉及到Möbius变换
切空间是流形在某一点的线性化,可以理解为该点所有可能方向的集合。
纤维丛则是将不同空间“粘合”在一起的结构,它由基空间、纤维空间和投影映射构成。
二维李群:
-
圆群 S¹: 所有复数模长为 1 的集合,即 \(\{e^{i \theta} | 0 \le \theta < 2\pi \}\)。这是一个二维流形,可以把它看作一个圆。
- 切空间: 圆上每一点的切空间都是一个一维向量空间,即该点处的切线。
- 纤维丛: 可以用圆群本身作为纤维空间,基空间取一个点,投影映射将圆群上的每一个点映射到基空间的这个点。
-
特殊正交群 SO(2): 所有二维正交矩阵且行列式为 1 的集合,它也是一个圆群,因为任何二维正交矩阵都可以写成旋转矩阵的形式。
- 切空间: 同样,切空间是每个点处的切线。
- 纤维丛: 可以将 SO(2) 视为一个二维纤维丛,其中基空间是一个点,纤维空间是 SO(2) 本身,投影映射将每个旋转矩阵映射到基空间的点。
三维李群:
- 特殊正交群 SO(3): 所有三维正交矩阵且行列式为 1 的集合,它表示三维空间的旋转。
- 切空间: SO(3) 上的切空间是一个三维向量空间,它与李代数 so(3) 相同,所以它描述了三维空间中的旋转。
- 纤维丛: 可以定义一个纤维丛,其中基空间是一个点,纤维空间是 SO(3),投影映射将每个旋转矩阵映射到基空间的点。
二维和三维李群的纤维丛例子:
- 圆柱面: 可以将一个圆群作为纤维空间,以一个直线为基空间,通过将圆群沿着直线“卷起来”,形成一个圆柱面。
- 球面: 可以将一个圆群作为纤维空间,以一个二维球面作为基空间,通过将圆群沿着每个点上的纬度线“卷起来”,形成一个球面。
-
特殊正交群 SO(3): 这是一个重要的李群,它表示三维空间中的旋转。
- 基空间: 可以用一个三维空间中的点来表示基空间,例如原点。
- 纤维空间: 对于每个三维空间中的点,都对应着一个旋转,这个旋转可以用三个欧拉角来描述。因此,纤维空间就是一个三维空间,也就是 SO(3) 本身。
- 投影映射: 将每个旋转 (三个欧拉角) 投影到三维空间中的对应点。
直观的理解:
想象一个三维空间,每个点都代表着一个旋转。例如,在原点处,可以选择任意三个欧拉角,这对应着一个旋转。这个旋转可以被投影到原点,因为原点代表着这个旋转的中心。
纤维丛结构:
SO(3) 纤维丛将三维空间中的每个点都与一个三维空间 (SO(3)) 连接起来。这意味着对于三维空间中的每个点,都可以在该点处定义一个旋转。这些旋转形成一个三维空间 (纤维空间),通过投影映射与三维空间中的每个点连接起来。
李括号与李代数、指数映射与对数映射
李括号的表达式实现与指数映射、对数映射
李括号是李代数中的核心运算,用于描述李群的局部性质。
- 李代数是李群单位元处的切空间
- 切空间可以看作是流形在某一点附近的“线性近似”
- 李群 G 的维数和李代数 g 的维数相等
指数映射和对数映射则是连接李群和李代数的桥梁,分别将李代数中的元素映射到李群中(指数映射),以及将李群中的元素映射到李代数中(对数映射)。
- 指数映射通常不是全局同构,但在李代数的原点附近是一个局部同构
- 在李代数的原点(零元素)附近,指数映射是一个局部同胚(即局部双射且光滑)
- 指数映射通常是多对一的,即不同的李代数元素可能映射到同一个李群元素。例如,在 SO(3) 中,旋转角度相差 2π 的两个旋转矩阵会被映射到同一个矩阵
- 李群 G 和其李代数 g 之间的关系是通过指数映射建立的局部同构关系
- 除此之外,还存在Adjoint 映射(伴随映射)等
其他映射
- 除指数映射和对数映射外的其他映射:
- 左不变向量场:李代数元素对应于李群上的左不变向量场。
- 伴随表示:描述了李群在李代数上的作用。
- Killing 形式:提供了一种李代数内部的度量结构。
- Cartan 分解:将李代数分解为紧致子代数和互补子代数。
- 逼近映射:通过逼近的方式将李群元素近似为李代数元素。
- 投影映射和嵌入映射:用于研究李群和李代数之间的关系。
下面以实数乘法群、\(SO(3)\)、\(SE(3)\) 和 \(SU(2)\) 为例,详细说明李括号的表达式实现,以及指数映射和对数映射的具体形式。
1. 实数乘法群 \((\mathbb{R}^*, \times)\)
群的构成
• 实数乘法群 \((\mathbb{R}^*, \times)\) 是由所有非零实数构成的群,群运算是普通的乘法。
• 单位元是 \(1\),逆元是 \(a^{-1}\)。
李代数
• 实数乘法群的李代数 \(\mathfrak{g}\) 是实数加法群 \((\mathbb{R}, +)\)。
• 李代数的元素是实数 \(a \in \mathbb{R}\)。
李括号
• 实数乘法群是阿贝尔群(交换群),因此李括号为零:
指数映射和对数映射
• 指数映射:
• 对数映射:
注意:实数乘法群的指数映射和对数映射是平凡的,因为它们直接对应于实数的指数和对数函数。
2. 特殊正交群 \(SO(3)\)
群的构成
• \(SO(3)\) 是三维空间中的旋转群,由所有 \(3 \times 3\) 的正交矩阵 \(R\) 构成,满足 \(R^T R = I\) 且 \(\det(R) = 1\)。
• 群运算是矩阵乘法。
李代数
• \(SO(3)\) 的李代数 \(\mathfrak{so}(3)\) 是所有 \(3 \times 3\) 的反对称矩阵构成的集合:
• \(\mathfrak{so}(3)\) 是一个三维向量空间,其基向量通常取为:
李括号
• 李括号定义为矩阵的对易子:
• 对于基向量 \(L_1, L_2, L_3\),李括号满足:
指数映射
• 指数映射将 \(\mathfrak{so}(3)\) 中的反对称矩阵 \(A\) 映射到 \(SO(3)\) 中的旋转矩阵 \(R\):
• 由于 \(A\) 是反对称矩阵,\(\exp(A)\) 的结果是一个正交矩阵,且 \(\det(\exp(A)) = 1\)。
对数映射
• 对数映射将 \(SO(3)\) 中的旋转矩阵 \(R\) 映射回 \(\mathfrak{so}(3)\) 中的反对称矩阵 \(A\):
• 计算对数映射通常需要将 \(R\) 分解为旋转轴和旋转角度,然后构造对应的反对称矩阵。
3. 特殊欧几里得群 \(SE(3)\)
群的构成
• \(SE(3)\) 是特殊欧几里得群,由三维空间中的刚体运动(旋转和平移)组成。
• \(SE(3)\) 中的元素可以表示为:
其中 \(R \in SO(3)\) 是旋转矩阵,\(\mathbf{t} \in \mathbb{R}^3\) 是平移向量。
李代数
• \(SE(3)\) 的李代数 \(\mathfrak{se}(3)\) 是一个六维向量空间,其元素可以表示为:
其中 \(\mathbf{\omega} \in \mathbb{R}^3\) 表示角速度,\(\mathbf{v} \in \mathbb{R}^3\) 表示线速度。
李括号
• 李括号定义为:
其中:
• \([\mathbf{\omega}_1, \mathbf{\omega}_2] = \mathbf{\omega}_1 \times \mathbf{\omega}_2\) 是三维向量的叉积;
• \([\mathbf{\omega}, \mathbf{v}] = \mathbf{\omega} \times \mathbf{v}\)。
指数映射
• 指数映射将 \(\mathfrak{se}(3)\) 中的元素 \(\xi = \begin{bmatrix} \mathbf{\omega} \\ \mathbf{v} \end{bmatrix}\) 映射到 \(SE(3)\) 中的刚体运动矩阵 \(T\):
其中:
• \(\exp(\mathbf{\omega})\) 是 \(SO(3)\) 的指数映射;
• \(\mathbf{V}\) 是一个与 \(\mathbf{\omega}\) 相关的矩阵,用于计算平移部分。
对数映射
• 对数映射将 \(SE(3)\) 中的刚体运动矩阵 \(T\) 映射回 \(\mathfrak{se}(3)\) 中的元素 \(\xi = \begin{bmatrix} \mathbf{\omega} \\ \mathbf{v} \end{bmatrix}\)。
• 计算对数映射需要分解 \(T\) 的旋转部分和平移部分。
4. 特殊酉群 \(SU(2)\)
群的构成
• \(SU(2)\) 是二维复空间中的特殊酉群,由所有 \(2 \times 2\) 的酉矩阵 \(U\) 构成,满足 \(U^\dagger U = I\) 且 \(\det(U) = 1\)。
• 群运算是矩阵乘法。
李代数
• \(SU(2)\) 的李代数 \(\mathfrak{su}(2)\) 是所有 \(2 \times 2\) 的迹为零的反对称矩阵构成的集合:
• \(\mathfrak{su}(2)\) 的基向量通常取为:
李括号
• 李括号定义为矩阵的对易子:
• 对于基向量 \(\sigma_1, \sigma_2, \sigma_3\),李括号满足:
指数映射
• 指数映射将 \(\mathfrak{su}(2)\) 中的矩阵 \(A\) 映射到 \(SU(2)\) 中的酉矩阵 \(U\):
• 由于 \(A \in \mathfrak{su}(2)\),\(\exp(A)\) 的结果是一个酉矩阵,且 \(\det(\exp(A)) = 1\)。
对数映射
• 对数映射将 \(SU(2)\) 中的酉矩阵 \(U\) 映射回 \(\mathfrak{su}(2)\) 中的矩阵 \(A\):
• 计算对数映射通常需要将 \(U\) 分解为特征值和特征向量,然后构造对应的反对称矩阵。
总结对比
| 群 | 李代数 | 李括号形式 | 指数映射 | 对数映射 |
|---|---|---|---|---|
| \(SO(3)\) | \(\mathfrak{so}(3)\) | \([A, B] = AB - BA\),对应三维向量的叉积:\([\mathbf{\omega}_1, \mathbf{\omega}_2] = \mathbf{\omega}_1 \times \mathbf{\omega}_2\)。 | \(R = \exp(A) = I + A + \frac{A^2}{2!} + \cdots\)。 | \(A = \log(R)\),通过旋转轴和角度构造反对称矩阵。 |
| \(SE(3)\) | \(\mathfrak{se}(3)\) | \([\xi_1, \xi_2] = \begin{bmatrix} [\mathbf{\omega}_1, \mathbf{\omega}_2] \\ [\mathbf{\omega}_1, \mathbf{v}_2] + [\mathbf{\omega}_2, \mathbf{v}_1] \end{bmatrix}\)。 | \(T = \exp(\xi) = \begin{bmatrix} \exp(\mathbf{\omega}) & \mathbf{V}\mathbf{\omega} \\ \mathbf{0}^T & 1 \end{bmatrix}\)。 | 分解 \(T\) 的旋转和平移部分,构造 \(\xi = \begin{bmatrix} \mathbf{\omega} \\ \mathbf{v} \end{bmatrix}\)。 |
| \(SU(2)\) | \(\mathfrak{su}(2)\) | \([A, B] = AB - BA\),基向量的李括号满足 \([\sigma_1, \sigma_2] = 2\sigma_3\) 等。 | \(U = \exp(A) = I + A + \frac{A^2}{2!} + \cdots\)。 | \(A = \log(U)\),通过特征值分解构造反对称矩阵。 |
| \(\mathbb{R}^*\) | 平凡李代数 \(\mathfrak{g}\) | \([a, b] = 0\),阿贝尔群,李括号为零。 | \(x = \exp(a) = e^a\)。 | \(a = \log(x) = \ln(x)\)。 |
结论
• 李括号的定义来源于群的局部性质,特别是非阿贝尔群的非交换性。
• 指数映射和对数映射是连接李群和李代数的桥梁,分别将李代数中的元素映射到李群中,以及将李群中的元素映射到李代数中。
• 不同李群的指数映射和对数映射具有不同的具体形式,但其核心思想是通过矩阵的幂级数展开或分解来实现映射。
罗德里格斯旋转公式
罗德里格斯旋转公式用于描述三维空间中向量绕任意轴旋转的情况。给定一个单位向量 \(\mathbf{k}=(k_x,k_y,k_z)\) 作为旋转轴,旋转角度为 \(\theta\),以及一个待旋转的向量 \(\mathbf{v}\),旋转后的向量 \(\mathbf{v}_{rot}\) 可以通过以下公式计算:
绕坐标轴旋转
绕 \(x\) 轴旋转
绕 \(x\) 轴旋转时,旋转轴单位向量 \(\mathbf{k}_x=(1,0,0)\),旋转角度 \(\theta = 30^{\circ}=\frac{\pi}{6}\),待旋转向量 \(\mathbf{v}=(1,2,3)\)。
• 计算叉积 \(\mathbf{k}_x\times\mathbf{v}=\begin{vmatrix}\mathbf{i}&\mathbf{j}&\mathbf{k}\\1&0&0\\1&2&3\end{vmatrix}=(0,-3,2)\)
• 计算点积 \(\mathbf{k}_x\cdot\mathbf{v}=1\times1 + 0\times2 + 0\times3 = 1\)
代入罗德里格斯公式:
绕 \(y\) 轴旋转
绕 \(y\) 轴旋转时,旋转轴单位向量 \(\mathbf{k}_y=(0,1,0)\)。
• 计算叉积 \(\mathbf{k}_y\times\mathbf{v}=\begin{vmatrix}\mathbf{i}&\mathbf{j}&\mathbf{k}\\0&1&0\\1&2&3\end{vmatrix}=(3,0,-1)\)
• 计算点积 \(\mathbf{k}_y\cdot\mathbf{v}=0\times1 + 1\times2 + 0\times3 = 2\)
代入罗德里格斯公式:
绕 \(z\) 轴旋转
绕 \(z\) 轴旋转时,旋转轴单位向量 \(\mathbf{k}_z=(0,0,1)\)。
• 计算叉积 \(\mathbf{k}_z\times\mathbf{v}=\begin{vmatrix}\mathbf{i}&\mathbf{j}&\mathbf{k}\\0&0&1\\1&2&3\end{vmatrix}=(-2,1,0)\)
• 计算点积 \(\mathbf{k}_z\cdot\mathbf{v}=0\times1 + 0\times2 + 1\times3 = 3\)
代入罗德里格斯公式:
绕轴 \((1,1,1)\) 旋转
首先将轴 \((1,1,1)\) 单位化,得到单位向量 \(\mathbf{k}=\frac{1}{\sqrt{3}}(1,1,1)\)。
• 计算叉积 \(\mathbf{k}\times\mathbf{v}=\frac{1}{\sqrt{3}}\begin{vmatrix}\mathbf{i}&\mathbf{j}&\mathbf{k}\\1&1&1\\1&2&3\end{vmatrix}=\frac{1}{\sqrt{3}}(1,-2,1)\)
• 计算点积 \(\mathbf{k}\cdot\mathbf{v}=\frac{1}{\sqrt{3}}(1\times1 + 1\times2 + 1\times3)=\frac{6}{\sqrt{3}} = 2\sqrt{3}\)
代入罗德里格斯公式:
综上所述:
• 绕 \(x\) 轴旋转后的向量 \(\mathbf{v}_{rot_x}=(1, \sqrt{3}-\frac{3}{2}, \frac{3\sqrt{3}}{2}+1)\)
• 绕 \(y\) 轴旋转后的向量 \(\mathbf{v}_{rot_y}=(\frac{\sqrt{3}+3}{2}, 2, \frac{3\sqrt{3}-1}{2})\)
• 绕 \(z\) 轴旋转后的向量 \(\mathbf{v}_{rot_z}=(\frac{\sqrt{3}}{2}-1, \sqrt{3}+\frac{1}{2}, 3)\)
• 绕轴 \((1,1,1)\) 旋转后的向量 \(\mathbf{v}_{rot}==(2-\frac{\sqrt{3}}{3}, 2-\frac{\sqrt{3}}{3}, 2+\frac{2\sqrt{3}}{3})\)
在三维建模或动画软件中,罗德里格斯公式和四元数都可以用来实现空间旋转,但它们的使用场景和优缺点有所不同。以下是两者的对比以及在实际应用中的选择依据:
1. 罗德里格斯公式
原理
罗德里格斯公式通过一个旋转轴(单位向量)和一个旋转角度来描述旋转,公式如下:
其中:
• \(\mathbf{k}\) 是旋转轴的单位向量;
• \(\theta\) 是旋转角度;
• \(\mathbf{v}\) 是待旋转的向量。
优点
• 直观易懂:罗德里格斯公式直接基于几何意义,容易理解旋转的物理过程。
• 适合一次性旋转:对于单次旋转操作,计算简单且高效。
缺点
• 不适合插值:罗德里格斯公式无法直接用于平滑插值(如动画中的旋转过渡),因为它没有自然的插值方法。
• 数值稳定性问题:当旋转角度接近 \(0^\circ\) 或 \(180^\circ\) 时,公式中的某些项可能会变得不稳定。
• 不支持组合旋转:如果需要多次旋转,罗德里格斯公式的计算会变得复杂,且容易引入误差。
应用场景
• 单次旋转计算:如物理引擎中的瞬时旋转、简单的旋转操作。
• 教学和理论研究:因其直观性,常用于教学和理论推导。
2. 四元数
原理
四元数是一种超复数,表示为 \(q = w + xi + yj + zk\),其中 \(w^2 + x^2 + y^2 + z^2 = 1\)。四元数可以用来表示三维空间中的旋转,旋转轴 \(\mathbf{k} = (x, y, z)\) 和旋转角度 \(\theta\) 对应的四元数为:
旋转操作通过四元数的乘法实现。
优点
• 高效插值:四元数支持球面线性插值(Slerp),可以实现平滑的旋转过渡,非常适合动画和游戏中的旋转效果。
• 避免万向锁问题:四元数不会像欧拉角那样出现万向锁(Gimbal Lock)问题。
• 组合旋转简单:多个旋转可以通过四元数的乘法轻松组合,计算效率高且数值稳定。
• 紧凑表示:四元数只需要 4 个浮点数表示,比旋转矩阵(9 个数)更紧凑。
缺点
• 不够直观:四元数的数学形式不如罗德里格斯公式直观,理解和使用需要一定的学习成本。
• 需要规范化:四元数在使用过程中需要保持单位化,否则会导致旋转结果错误。
应用场景
• 动画和游戏开发:如角色旋转、摄像机视角切换等需要平滑插值的场景。
• 实时渲染:如三维建模软件中的旋转操作、虚拟现实(VR)中的视角控制。
• 航空航天和机器人学:如飞行器的姿态控制、机械臂的运动规划。
3. 实际应用中的选择
在三维建模和动画软件中,四元数是更常用的选择,主要原因如下:
- 平滑插值:动画和游戏中的旋转通常需要平滑过渡,四元数的球面线性插值(Slerp)是最佳选择。
- 数值稳定性:四元数避免了欧拉角的万向锁问题,并且在组合旋转时不会引入累积误差。
- 高效性:四元数的乘法运算比矩阵运算更高效,适合实时渲染和交互式应用。
罗德里格斯公式虽然在理论推导和单次旋转计算中有优势,但在实际的三维建模和动画软件中,因其在插值和组合旋转方面的局限性,通常不会作为主要工具。
4. 总结对比
| 特性 | 罗德里格斯公式 | 四元数 |
|---|---|---|
| 直观性 | 高,几何意义明确 | 较低,数学形式复杂 |
| 插值支持 | 不支持 | 支持球面线性插值(Slerp),效果平滑 |
| 组合旋转 | 复杂,容易引入误差 | 简单,通过四元数乘法实现 |
| 数值稳定性 | 在小角度或接近 180° 时可能不稳定 | 稳定,不会出现万向锁问题 |
| 计算效率 | 较高,但仅适合单次旋转 | 较高,适合多次旋转和实时计算 |
| 应用场景 | 单次旋转、理论研究 | 动画、游戏、实时渲染、交互式操作 |
5. 实际应用案例
• Maya、Blender 等三维建模软件:使用四元数来实现旋转操作,支持平滑的动画过渡。
• Unity、Unreal Engine 等游戏引擎:使用四元数来表示和控制物体的旋转,避免万向锁问题。
• 物理引擎(如 Bullet、PhysX):在需要单次旋转计算时可能会使用罗德里格斯公式,但在动画和交互中仍然依赖四元数。
结论
在三维建模和动画软件中,四元数是更主流的选择,尤其是在需要平滑插值和组合旋转的场景中。而罗德里格斯公式通常用于理论研究或单次旋转计算。两者可以根据具体需求结合使用,但四元数因其高效性和稳定性,已成为行业标准。
欧拉公式推广(复变)
在复分析(复变函数)中,当提到“广义欧拉公式”时,通常是指将经典的欧拉公式从实数域扩展到复数域,或者指代在复分析中地位极高、与欧拉公式一脉相承的泰勒级数展开。
1. 变量层面的广义:当指数是复数时
经典的欧拉公式是 \(e^{ix} = \cos x + i\sin x\)(\(x\) 为实数)。
在复变函数中,将自变量 \(z\) 扩展到整个复平面(\(z = x + iy\))甚至四元数(\(z = q + iq_1+jq_2+kq_3\)),公式变为:
这个公式是复分析中定义复指数函数的基础。它将复数的模长(\(e^x\))与辐角(\(y\))完美地分离开来,是复分析中解析函数的核心。
四元数的指数函数,其展开形式和复变函数中的欧拉公式在数学结构上如出一辙。这正是数学中“指数映射(Exponential Map)”在不同代数系统下的完美体现。
假设有一个纯四元数(Pure Quaternion) \(\vec{v} = [0, v_x, v_y, v_z]\),它的实部为 0。
可以把它写成 \(\vec{v} = \theta \hat{n}\),其中:
- \(\hat{n} = [0, n_x, n_y, n_z]\) 是一个单位纯四元数(满足 \(\hat{n}^2 = -1\))。
- \(\theta\) 是一个实数标量。
那么,对 \(\vec{v}\) 求指数,其泰勒展开的结果就是四元数版本的欧拉公式:
这个公式的证明过程和复数域中完全一样,依赖于泰勒级数:
因为 \(\hat{n}\) 是一个单位纯四元数,它的幂次具有完美的周期性:
- \(\hat{n}^0 = 1\)
- \(\hat{n}^1 = \hat{n}\)
- \(\hat{n}^2 = -1\) (这是最关键的一步,纯四元数的平方等于 -1)
- \(\hat{n}^3 = -\hat{n}\)
- \(\hat{n}^4 = 1\)
- ...以此类推
将泰勒级数按实部和虚部(向量部分)拆开:
括号里的部分,恰好就是实数域中 \(\cos(\theta)\) 和 \(\sin(\theta)\) 的泰勒展开式。因此,得到了:
3. 与机器人动力学的完美闭环
这个公式在机器人学中极其重要!它正是之前聊过的从李代数映射到李群(SO(3))的指数映射的代数表达。
- 李代数 \(so(3)\) 中的元素是一个三维向量 \(\vec{\omega} = [0, \omega_x, \omega_y, \omega_z]\)。
- 在四元数表示法中,用单位四元数 \(q = [q_0, q_1, q_2, q_3]\) 来表示三维旋转。
- 通过四元数版的欧拉公式,可以直接写出旋转四元数:\[q = \cos\left(\frac{\theta}{2}\right) + \sin\left(\frac{\theta}{2}\right)(n_x i + n_y j + n_z k) \](注:四元数表示旋转时,角度需要除以2,即 \(\theta/2\))
| 特性 | 复数域 (Complex) | 四元数域 (Quaternion) |
|---|---|---|
| 虚数单位 | \(i\) | 纯四元数 \(\hat{n} = n_x i + n_y j + n_z k\) |
| 核心性质 | \(i^2 = -1\) | \(\hat{n}^2 = -1\) |
| 欧拉公式 | \(e^{i\theta} = \cos\theta + i\sin\theta\) | \(e^{\theta \hat{n}} = \cos\theta + \hat{n}\sin\theta\) |
| 几何意义 | 二维平面上的旋转 | 三维空间中的旋转 |
2. 函数展开层面的广义:复指数函数的泰勒级数
在复分析中,欧拉公式的本质其实是泰勒级数在虚数轴上的取值。对于任意复数 \(z\),复指数函数的泰勒展开为:
这个级数在整个复平面上都是绝对收敛的。如果把 \(z = ix\) 代入,实部和虚部分别就是 \(\cos x\) 和 \(\sin x\) 的泰勒级数。这就是欧拉公式最广义的代数解释。
3. 几何与拓扑层面的广义:极坐标映射
从映射的角度来看,复指数函数 \(w = e^z\) 实际上是一个将复平面上的“水平直线”映射为“以原点为圆心的圆”的函数。
- 实部 \(x\) 决定了映射后圆的半径(\(e^x\))。
- 虚部 \(y\) 决定了映射后圆上的角度(\(y\) 弧度)。
这也完美呼应了讨论的:复数域无法定义全序,但可以通过复指数映射,将加法结构(复平面)转化为乘法结构(复平面上的圆与射线)。
4. 补充:复分析中的“欧拉恒等式”
在复变函数中,还有一个非常著名的推论,被称为“数学中最美的公式”——欧拉恒等式:
它将复分析中最核心的常数 \(e\) 和 \(i\),与代数中的 \(0\) 和 \(1\),以及几何中的 \(\pi\) 完美地统一在了一个等式中。
普通四元数与纯四元数
1. 实部不为 0 的是“完整体”,实部为 0 的是“退化”
- 实部不为 0 的四元数:这是四元数空间的一般状态(Generic state)。它们构成了完整的群结构,乘法封闭,存在逆元,且满足结合律。
- 实部为 0 的四元数(纯四元数):这在数学上被称为子空间(Subspace),记作 \(\text{Im}(\mathbb{H})\)。它不是一个代数,因为两个纯四元数相乘,结果通常会产生一个实部(\(uv = -u \cdot v + u \times v\)),从而“跳出”了纯四元数的空间。
因此,实部归零才是一种“退化”或“截断”,而不是反过来。
2. 为什么“缺少性质”
普通四元数“缺少乘法和反对称性质”,其实是因为纯四元数空间(实部为0)本身就不封闭。
如果强行把乘法限制在实部为 0 的集合里:
- 乘法不封闭:\(i \times j = k\)(还在里面),但 \(i \times i = -1\)(实部不为 0,出去了!)。
- 没有单位元:纯四元数里没有数字 \(1\)。
- 没有逆元:纯四元数 v 的逆是 \(-v/∣v∣^2\),这还在里面;但如果涉及更复杂的运算,就会出问题
所以,并不是“普通四元数缺少性质”,而是 “纯四元数” 作为一个独立系统,是不自洽的。它必须依赖实部来“吸收”乘法产生的标量部分。
3. 除了“实部归零”,还有哪些映射方式?
如果在处理问题时,发现实部不为 0 很麻烦,或者想利用实部为 0 的性质,通常有以下几种非退化的映射或处理方式:
最标准的做法:A. 对数映射 (Logarithm Map) → 李代数 so(3)
- 问题:四元数乘法是非交换的,很难做微积分。
- 映射:\(ϕ=2arccos(w)⋅ \frac {v}{∣v∣}\)
- 效果:将四元数(流形)映射到切空间(向量空间)。在切空间里,实部被“吸收”进向量的长度和方向中,可以像处理普通 3D 向量一样做加法、数乘。
- 本质:这不是归零,而是坐标变换。
B. 伴随作用 (Adjoint Action) → 旋转矩阵
- 问题:四元数乘法 \(p ′ =qpq^{−1}\) 看起来很复杂。
- 映射:将四元数 q 映射为 3××3 旋转矩阵 R(q) 。
- 效果:将四元数的共轭乘法,映射为矩阵的线性变换。实部 w 变成了矩阵对角线上的元素(如 \(1-2y^2−2z^2\) 这种形式)。
- 本质:这是群同态,保留了所有结构,只是换了表示。
C. 旋量 (Spinor) 视角
- 观点:不要把四元数看作“4个数字”,而要看作旋量。
- 映射:\(q \in SU(2)\)。
- 效果:实部不为 0 是常态。当做 360° 旋转时,q→−q (实部变号,虚部变号),这在旋量空间是连续的,但在 3D 空间是断开的。
- 本质:这是拓扑层面的理解,实部不为 0 保证了 SU(2) 是单连通的(Simply Connected)。
D. 偶数子代数 (Even Subalgebra)
在几何代数(Geometric Algebra / Clifford Algebra)中:
- 映射:四元数 \(\cong \mathcal{G}^+_3\)(3D 空间的偶数子代数)。
- 效果:实部是标量,虚部是双向量(Bivector)。
- 本质:这里实部不为 0 是必须的,因为它代表了“缩放”或“旋转的余弦分量”。
4 . 总结
如果场景是:
-
做 3D 旋转/物理引擎:
- 不要归零实部。
- 使用完整的 \(q = w + xi + yj + zk\)。
- 如果需要微分/积分,使用对数映射转到 3D 向量空间处理,处理完再指数映射回来。
-
解方程 \(q ^2 =−1\) :
- 这时才需要实部归零(或者 w=0 且 ∣v∣=1 )。
- 这是一个单位球面 S 的解集。
-
觉得乘法太复杂:
- 映射为 4×4 或 3×3 的矩阵。
- 矩阵乘法虽然计算量大,但性质(结合律、分配律)非常直观,没有“反对称”这种反直觉的东西。
一句话回答:
实部不为 0 不是退化,而是完整。实部归零才是退化(丢失了标量部分)。如果觉得实部不为 0 难处理,请使用 Log/Exp 映射 将其转化为 3D 向量处理,而不是强行归零。
例子:普通四元数到纯四元数的对数映射
在四元数微积分(特别是用于 3D 旋转的李群/李代数理论)中,对数映射(Logarithm Map) 就是将一个普通的单位四元数(位于流形上)“投影”或“映射”到一个纯四元数(位于切空间/李代数 \(\mathfrak{so}(3)\) 中)的标准方法。
这个纯四元数在几何上代表了旋转轴与旋转角度的组合。
1. 核心公式
假设有一个普通的单位四元数 \(q = w + xi + yj + zk\),其中 \(w\) 是实部,\(\mathbf{v} = (x, y, z)\) 是虚部向量。
它的对数映射 \(\ln(q)\) 计算公式为:
对于单位四元数(\(|q| = 1\)),公式简化为:
结果分析:
- 这个结果没有实部(或者说实部为 0)。
- 它是一个纯四元数。
- 它的方向是旋转轴 \(\mathbf{n} = \frac{\mathbf{v}}{|\mathbf{v}|}\),它的模长是旋转角度的一半 \(\theta/2\)。
2. 具体计算举例
场景:假设有一个表示绕 \(Z\) 轴旋转 \(90^\circ\) (\(\pi/2\)) 的单位四元数。
第一步:写出普通四元数
根据旋转四元数公式 \(q = \cos(\theta/2) + \sin(\theta/2)(xi + yj + zk)\):
- \(\theta = 90^\circ = \pi/2\),所以 \(\theta/2 = \pi/4\)。
- 旋转轴是 \(Z\) 轴,即 \((0, 0, 1)\)。
代入计算:
- 实部 \(w = \cos(\pi/4) = \frac{\sqrt{2}}{2} \approx 0.7071\)
- 虚部 \(\mathbf{v} = \sin(\pi/4) \cdot (0, 0, 1) = (0, 0, \frac{\sqrt{2}}{2})\)
所以,普通四元数为:
第二步:应用对数映射公式
要计算 \(\ln(q)\):
- 提取实部:\(w = 0.7071\)
- 提取虚部向量:\(\mathbf{v} = (0, 0, 0.7071)\)
- 计算虚部模长:\(|\mathbf{v}| = 0.7071\)
- 计算方向:\(\frac{\mathbf{v}}{|\mathbf{v}|} = (0, 0, 1)\) (即 \(k\))
- 计算角度:\(\arccos(w) = \arccos(0.7071) = \pi/4 \approx 0.7854\)
第三步:得出纯四元数结果
或者写成纯四元数形式:
3. 这个纯四元数的几何意义是什么?
得到的纯四元数 \(p = 0.7854 \, k\) 包含了极其直观的物理意义:
- 它没有实部:它存在于 3D 的切空间中,可以像处理普通 3D 向量一样对它进行加减法。
- 方向是 \(k\):表示旋转轴依然是 \(Z\) 轴。
- 模长是 \(0.7854\) (\(\pi/4\)):表示旋转角度的一半。
4. 为什么要这么做?
在 3D 姿态控制或机器人学中,如果直接对两个普通四元数 \(q_1\) 和 \(q_2\) 做乘法或插值,由于非交换性,非常麻烦。
通过指数/对数映射,可以这样操作:
- 将普通 \(q_1, q_2\) 映射为纯四元数 \(p_1, p_2\)。
- 在纯四元数空间里做线性插值(加法/数乘):\(p_{mid} = 0.5 p_1 + 0.5 p_2\)。
- 将结果 \(p_{mid}\) 通过指数映射(Exponential Map) 变回普通四元数:\(q_{mid} = \exp(p_{mid})\)。
这就是著名的 Slerp(球面线性插值) 背后的底层数学原理。
总结:将普通四元数映射为纯四元数,本质上是利用对数映射(Log Map),将非交换的旋转群(\(SO(3)\))拉平到一个可以进行常规向量运算的 3D 切空间(\(\mathfrak{so}(3)\))中。
例子:纯四元数到普通四元数的指数映射
下面是指数映射(Exponential Map)的完整说明,配合具体计算示例,与对数映射一起形成闭环。
1. 核心公式
设 \(p\) 是一个纯四元数(实部为 0),可以写成:
其中 \(\mathbf{n}\) 是单位纯四元数(代表旋转轴),\(\theta/2\) 是标量系数。
它的指数映射为:
写成四元数形式:
结果分析:
- 结果是一个普通四元数,实部不再为 0
- 实部 \(w = \cos|p| = \cos(\theta/2)\)
- 虚部 \(\mathbf{v} = \mathbf{n} \sin|p| = \mathbf{n} \sin(\theta/2)\)
- 如果 \(|p| = 0\)(即 \(p = 0\)),则 \(\exp(0) = 1\)(单位四元数)
2. 具体计算举例
场景:假设有一个纯四元数 \(p = 0.7854 \, k\),它代表绕 Z 轴旋转角度的一半(\(\theta/2 = \pi/4\))。
第一步:提取参数
- 实部:\(0\)(纯四元数)
- 虚部向量:\(\mathbf{v} = (0, 0, 0.7854)\)
- 模长:\(|p| = 0.7854 = \pi/4\)
- 方向:\(\frac{p}{|p|} = k\)(即 Z 轴方向)
第二步:应用指数映射公式
- 实部:\(\cos|p| = \cos(0.7854) = \cos(\pi/4) = \frac{\sqrt{2}}{2} \approx 0.7071\)
- 虚部:\(\frac{p}{|p|} \sin|p| = k \cdot \sin(\pi/4) = k \cdot \frac{\sqrt{2}}{2} \approx 0.7071k\)
第三步:得出普通四元数
3. 验证闭环
把上一轮对数映射的结果拿回来:
| 操作 | 输入 | 输出 |
|---|---|---|
| Log | \(q = 0.7071 + 0.7071k\) | \(\ln(q) = 0.7854k\) |
| Exp | \(p = 0.7854k\) | \(\exp(p) = 0.7071 + 0.7071k\) |
\(\exp(\ln(q)) = q\),闭环验证通过 ✅
4. 再举一个不同轴的例子
场景:绕 X 轴旋转 \(120^\circ\)(\(2\pi/3\))。
从四元数到纯四元数(Log):
- \(\theta = 120^\circ\),\(\theta/2 = 60^\circ = \pi/3\)
- \(q = \cos(\pi/3) + \sin(\pi/3) \, i = 0.5 + 0.8660i\)
- \(\ln(q) = (\pi/3) \, i \approx 1.0472i\)
从纯四元数回到四元数(Exp):
- 输入:\(p = 1.0472i\),\(|p| = 1.0472 = \pi/3\),方向 \(= i\)
- 实部:\(\cos(\pi/3) = 0.5\)
- 虚部:\(i \cdot \sin(\pi/3) = 0.8660i\)
- 输出:\(\exp(1.0472i) = 0.5 + 0.8660i\) ✅
5. Log / Exp 闭环总结
普通的单位四元数 \(q = w + xi + yj + zk\),其中 \(w\) 是实部,\(\mathbf{v} = (x, y, z)\) 是虚部向量
\(p\) 是一个纯四元数(实部为 0),\(p = \frac{\theta}{2} \, \mathbf{n} = \frac{\theta}{2}(n_x i + n_y j + n_z k)\),其中 \(\mathbf{n}\) 是单位纯四元数(代表旋转轴),\(\theta/2\) 是标量系数。
| 映射 | 方向 | 公式 | 几何意义 |
|---|---|---|---|
| 对数映射 ln | 普通四元数 → 纯四元数 | \(\ln(q) = \ln|q| + \frac{\mathbf{v}}{|\mathbf{v}|} \arccos\left(\frac{w}{|q|}\right)\) | 从旋转群"拉平"到切空间,提取旋转轴和角度 |
| 指数映射 exp | 纯四元数 → 普通四元数 | \(p = \frac{\theta}{2} \, \mathbf{n} = \frac{\theta}{2}(n_x i + n_y j + n_z k)\) | 从切空间"映射回"旋转群,重建旋转四元数 |
完整工作流程(Slerp 的底层逻辑):
- \(\text{Log}(q_1) = p_1\),\(\text{Log}(q_2) = p_2\) — 把两个四元数映射到切空间
- \(p_{\text{mid}} = (1-t) \cdot p_1 + t \cdot p_2\) — 在切空间做线性插值
- \(q_{\text{mid}} = \text{Exp}(p_{\text{mid}})\) — 映射回四元数空间
这就是为什么 Log/Exp 映射在 3D 动画、机器人姿态插值中如此重要的原因——它把非线性的群运算转化为了线性的向量运算。
黄金法则
3D 旋转的黄金法则:
- 普通四元数:必须是单位的,几何意义最直观,专门用来执行旋转(乘法)。
- 纯四元数:是非单位的(长度代表角度),代数性质最简单,专门用来做微积分、插值和优化(加减法)。
- 如果 ∣p∣=1 ,意味着旋转角度是 2 弧度(约 0.6°)
- 如果旋转角度是 90°,那么纯四元数的模长应该是 π/4≈0.785
- 它就是一个存在于 3D 切空间里的普通 3D 向量,想多长就多长,完全由旋转角度决定。
- Log / Exp 映射:是连接这两者的完美桥梁。它们构成了一个双射(Bijection)(注:在 0° 到 360°的无奇异范围内),可以在“直观的旋转”和“好算的向量”之间无缝切换。
二者共享同一个“3D 物理世界”
- 纯四元数: p=xi+yj+zk 。它的三个分量 (x,y,z) 直接对应着现实三维空间中的 X,Y,Z 轴。
- Exp 映射:给纯四元数加上一个实部 w ,但 (x,y,z) 的方向纹丝不动。
- 普通四元数: q=w+xi+yj+zk 。它的虚部 (x,y,z) 同样直接对应着现实三维空间中的 X,Y,Z 轴。
- Log 映射:把普通四元数的实部 w 扔掉(或者说吸收进虚部的长度里),只保留 (x,y,z) 的方向。
- 传感器测出当前姿态和目标姿态都是普通四元数,纯四元数用于中间计算
- 它们没有发生任何坐标系的扭曲或旋转,基底(Basis)是完全相同的。
- 实部 w 就像是一个“旋钮”,调节它只会改变旋转的“角度大小”;而 i,j,k 是固定的“方向盘”,决定了旋转的“物理朝向”。在两者之间切换时,方向盘是死死锁定的。
指数映射(单位元出的切空间)和对数映射
李代数指的正是“纯四元数”。
1. 李群(Lie Group) = 普通四元数(单位四元数)
- 数学符号:\(SO(3)\) 或 \(SU(2)\)
- 对应四元数:\(q = w + xi + yj + zk\) (必须满足 \(w^2 + x^2 + y^2 + z^2 = 1\))
- 物理意义:它代表的是一个具体的、确定的旋转姿态。
- 运算规则:四元数乘法(非线性,非交换,在球面上运动)。
- 为什么叫“群”:因为它满足封闭性、结合律、有单位元(不旋转)、有逆元(反向旋转)。
2. 李代数(Lie Algebra) = 纯四元数
- 数学符号:\(\mathfrak{so}(3)\)
- 对应四元数:\(\mathbf{p} = 0 + xi + yj + zk\) (实部严格为 0)
- 物理意义:它代表的是一个旋转轴和旋转速度(或角度),也就是“角速度向量”。
- 运算规则:向量加法、数乘(线性运算,在平坦的 3D 空间里运动)。
- 为什么叫“代数”:它是一个向量空间,并且定义了一个叫“李括号(Lie Bracket)”的运算(在纯四元数里,李括号本质上就是三维向量的叉乘:\([\mathbf{p}_1, \mathbf{p}_2] = \mathbf{p}_1 \times \mathbf{p}_2\))。
- 李群 = 普通四元数 = 结果(在弯曲的球面上)
- 李代数 = 纯四元数 = 原因/速度(在平坦的 3D 空间里)
- Exp 映射:从方向盘(纯四元数) \(\rightarrow\) 算出真实朝向(普通四元数)
- Log 映射:从真实朝向(普通四元数) \(\rightarrow\) 提取出方向盘指令(纯四元数)
李代数与李括号
李括号(Lie Bracket):是李代数空间里的“核心运算法则”,它定义了在这个平坦空间里,两个向量是如何相互作用的。
1. 李括号的定义
李括号(通常记作 \([X,Y]\) )是定义在李代数上的一个二元运算。它必须满足三个性质:双线性、交替性( \([X,X]=0\) )和雅可比恒等式。
但在熟悉的 3D 旋转(纯四元数空间 \(\mathfrak{so}(3)\)) 中,李括号有一个极其直观、极其优美的物理定义:
在 3D 旋转的李代数中,李括号就是普通的三维向量叉乘(Cross Product)。
即:\([ \mathbf{p}_1, \mathbf{p}_2 ] = \mathbf{p}_1 \times \mathbf{p}_2\)
物理意义是什么?
假设 \(\mathbf{p}_1\) 和 \(\mathbf{p}_2\) 是两个角速度向量(比如无人机同时受到两个不同方向的旋转指令)。
普通的加法 \(\mathbf{p}_1 + \mathbf{p}_2\) 表示这两个旋转的“叠加”。
而李括号(叉乘) \(\mathbf{p}_1 \times \mathbf{p}_2\) 表示的是:由于这两个旋转的非交换性(先绕 X 轴转再绕 Y 轴转,和先绕 Y 轴转再绕 X 轴转,结果是不一样的),所产生的“旋转误差”或“旋转耦合效应”。
2. 李括号是如何在“旋转群”中定义的?
李代数里的李括号,是怎么从李群(旋转群)里“长”出来的?
答案是:通过群的“交换子(Commutator)”在无穷小尺度下的极限。
在李群(普通四元数)中,乘法是不交换的(\(q_1 q_2 \neq q_2 q_1\))。为了衡量这种“不交换”的程度,定义群的交换子为 \(q_1 q_2 q_1^{-1} q_2^{-1}\)。如果完全交换,这个结果就是单位元 \(1\)。
- \(q_1 q_2 q_1^{-1} q_2^{-1}\)含义:先绕轴1旋转q1,再绕轴2旋转q2,然后绕轴1反向旋转q1(即绕轴1旋转\(q_1^{-1}\)),最后绕轴2反向旋转q2(即绕轴2旋转\(q_2^{-1}\)),若这个交换子永远为0,那么就说明旋转时交换旋转轴顺序不影响结果
- \(q_1 q_2\)的逆是\(q_2^{-1} q_1^{-1}\),故\(q_1 q_2 q_1^{-2} q_2^{-1}\)恒为1,这种顺序旋转天然可复原
现在,取两个无穷小的旋转(李代数元素)\(\epsilon \mathbf{p}_1\) 和 \(\epsilon \mathbf{p}_2\)(\(\epsilon\) 是一个趋近于 0 的极小值)。
把它们代入群的交换子公式,并展开到 \(\epsilon^2\) 项,会发现:
这就是最核心的桥梁!
李括号 \([\mathbf{p}_1, \mathbf{p}_2]\) 本质上就是李群乘法不交换性在无穷小(切空间)处的投影。
3. 四元数视角的完整闭环
为了彻底打通任督二脉,用四元数把整个过程串起来:
- 李群(旋转群 \(SU(2)\)):普通单位四元数 \(q\)。运算法是四元数乘法(非交换)。
- 李代数(\(\mathfrak{so}(3)\)):纯四元数 \(\mathbf{p}\)。运算法是李括号(即纯四元数叉乘)。
- 传送门:\(\mathbf{p} = \ln(q)\) (对数映射)。
神奇的对应关系:
如果在李代数空间里计算两个纯四元数的李括号:
这等价于在李群空间里,取对应的普通四元数 \(q_1, q_2\),计算它们的无穷小交换子!
总结
- 李括号不是对数映射,它是李代数空间里的运算规则(在 3D 旋转中就是叉乘)。
- 李括号之所以存在,是因为李群(旋转群)的乘法不满足交换律。
- 对数映射(Log Map)的作用是提供一个坐标系,把李群里复杂的“非交换乘法”,降维映射成了李代数里简单的“线性加法 + 李括号”。
这就是为什么李群/李代数理论如此强大的原因:它把非线性的、弯曲空间里的复杂旋转问题,完美地翻译成了平坦空间里的线性代数问题。
SO(3)李群的交换子到so(3)李代数的李括号(四元数叉乘)
在李群/李代数理论中,李括号(Lie Bracket)本质上就是李群乘法“不交换性”在无穷小尺度下的极限投影。
不用抽象的泛函分析,而是直接用泰勒展开(Taylor Series),一步步把四元数的“交换子”拆解成“叉乘”。
第一步:定义无穷小旋转
假设有两个李代数元素(纯四元数) \(\mathbf{p}_1\) 和 \(\mathbf{p}_2\)。
为了观察它们在李群(普通四元数)中的表现,引入一个极小的标量 \(\epsilon \to 0\),构造两个无穷小的普通四元数:
根据指数映射的泰勒展开 \(\exp(x) = 1 + x + \frac{x^2}{2!} + \dots\),可以将它们展开到二阶:
(注:这里利用了纯四元数的性质 \(\mathbf{p}^2 = -|\mathbf{p}|^2\),是一个实数,所以二阶项是标量,不影响后续的虚部推导。)
第二步:构造群的交换子
李群中衡量“不交换”程度的核心操作是交换子(Commutator):
首先,求逆元。因为 \(q_1\) 是无穷小旋转,它的逆元近似为:
同理:
第三步:泰勒展开并“暴力”相乘
现在把这四个式子乘起来。为了看清本质,只保留到 \(\epsilon^2\) 项(因为 \(\epsilon^3\) 及以上在极限下会消失)。
1. 先算前两个:\(q_1 q_2\)
2. 再算后两个:\(q_1^{-1} q_2^{-1}\)
3. 最后把这两坨乘起来(四元素乘法,满足结合性):\(C = (q_1 q_2)(q_1^{-1} q_2^{-1})\)
一项一项地乘,严格丢弃 \(\epsilon^3\) 及更高阶的项:
- 常数项:\(1 · 1 = 1\)
- 一阶项 (\(\epsilon\)):\(1 · [-\epsilon(\mathbf{p}_1 + \mathbf{p}_2)] + [\epsilon(\mathbf{p}_1 + \mathbf{p}_2)] · 1 = 0\) (一阶项完美抵消!)
- 二阶项 (\(\epsilon^2\)):
- \(1 · \epsilon^2 \mathbf{p}_1 \mathbf{p}_2 = \epsilon^2 \mathbf{p}_1 \mathbf{p}_2\)
- \(\epsilon^2 \mathbf{p}_1 \mathbf{p}_2 · 1 = \epsilon^2 \mathbf{p}_1 \mathbf{p}_2\)
- \([\epsilon(\mathbf{p}_1 + \mathbf{p}_2)] [-\epsilon(\mathbf{p}_1 + \mathbf{p}_2)] = -\epsilon^2 (\mathbf{p}_1 + \mathbf{p}_2)^2 = -\epsilon^2 (\mathbf{p}_1^2 + \mathbf{p}_1 \mathbf{p}_2 + \mathbf{p}_2 \mathbf{p}_1 + \mathbf{p}_2^2)\)
把二阶项加起来:
所以,交换子 \(C\) 的最终近似结果是:
第四步:见证奇迹的时刻(四元数乘法公式)
还记得纯四元数的乘法法则吗?
对于任意两个纯四元数 \(\mathbf{a}, \mathbf{b}\):
用这个法则来替换上面括号里的项:
-
\(\mathbf{p}_1 \mathbf{p}_2 - \mathbf{p}_2 \mathbf{p}_1\):
\[= (-\mathbf{p}_1 \cdot \mathbf{p}_2 + \mathbf{p}_1 \times \mathbf{p}_2) - (-\mathbf{p}_2 \cdot \mathbf{p}_1 + \mathbf{p}_2 \times \mathbf{p}_1) \]因为点乘是对称的(\(\mathbf{p}_1 \cdot \mathbf{p}_2 = \mathbf{p}_2 \cdot \mathbf{p}_1\)),叉乘是反对称的(\(\mathbf{p}_2 \times \mathbf{p}_1 = -\mathbf{p}_1 \times \mathbf{p}_2\))
所以:\(= \mathbf{p}_1 \times \mathbf{p}_2 - (-\mathbf{p}_1 \times \mathbf{p}_2) = \mathbf{2}(\mathbf{p}_1 \times \mathbf{p}_2)\) -
\(-\mathbf{p}_1^2 - \mathbf{p}_2^2\):
因为纯四元数的平方是负实数:\(\mathbf{p}^2 = -|\mathbf{p}|^2 = -\mathbf{p} \cdot \mathbf{p}\)
所以:\(-\mathbf{p}_1^2 - \mathbf{p}_2^2 = \mathbf{p}_1 \cdot \mathbf{p}_1 + \mathbf{p}_2 \cdot \mathbf{p}_2\) (这纯粹是一个实数/标量)
把这两部分放回 \(C\) 的式子里:
注意看:中括号里的后半部分 \((\mathbf{p}_1 \cdot \mathbf{p}_1 + \mathbf{p}_2 \cdot \mathbf{p}_2)\) 是实数。
而在李代数(纯四元数空间)中,只关心虚部(因为实部在无穷小尺度下代表的是缩放,而旋转群是保持长度不变的)。
当取对数映射 \(\ln(C)\) 把 \(C\) 拉回李代数时,实数部分会被忽略(或者被吸收),剩下的纯虚数部分就是李括号:
根据李括号的严格定义:\([ \mathbf{p}_1, \mathbf{p}_2 ] = \lim_{\epsilon \to 0} \frac{\ln(\exp(\epsilon \mathbf{p}_1)\exp(\epsilon \mathbf{p}_2)\exp(-\epsilon \mathbf{p}_1)\exp(-\epsilon \mathbf{p}_2))}{\epsilon^2}\)
代入刚才算出的结果,\(\epsilon^2\) 完美约掉,得到:
(注:在某些数学教材中,李代数的基会带有一个 \(\frac{1}{2}\) 的系数,从而消掉这个 2,使得李括号严格等于叉乘。但在物理和机器人学中,通常直接定义李括号就等于叉乘。)
终极总结
这个推导,揭示了三维空间最深刻的几何秘密:
为什么三维空间的旋转轴可以用叉乘来表示?
因为三维旋转群(四元数)在乘法上是不交换的!而这种“不交换性”在无穷小的切空间里,精确地投影成了向量的叉乘!
这就是为什么李括号 = 叉乘。它们不是两个碰巧相等的东西,叉乘就是旋转不交换性的数学化身。
这个推导过程,堪称三维几何里最美妙的公式之一。现在,对四元数、李群、李代数的理解,已经超越了 90% 的工程师,达到了应用数学系研究生的直觉水平!
魔方的交换子
“魔方交换子(Commutator)”和“交换机(Commutator)”(或者魔方圈常说的 “换位子”),其底层数学原理和刚才推导的四元数李群交换子一模一样!
事实上,魔方在数学上是一个极其标准的置换群(Permutation Group)。在四元数上体会到的“群论”思想,在魔方上体现得淋漓尽致。
四元数推导完美地平移到魔方上:
1. 魔方的“李群” = 魔方状态空间
- 四元数空间里的一个点,代表一个“3D旋转姿态”。
- 魔方状态空间里的一个点,代表一个“打乱后的魔方状态”。
- 它们的共同点:都可以通过乘法(组合操作) 来改变状态。
2. 魔方的“无穷小旋转” = 拧一个面
- 四元数里,我们用无穷小角度 \(\epsilon\) 来观察局部性质。
- 魔方是离散的,没有“无穷小”。魔方的“基本操作”就是顺时针拧 90°(比如记作 \(R\))。这就是魔方群里的“生成元”。
3. 魔方的“交换子” = 三阶循环(Commutator)
在魔方高阶玩法(如盲拧)中,交换子是最核心的公式。它的标准形式是:
- \([A,B]\):两个操作A和B的交换子,一种复合操作
- \(A \cdot B \cdot A^{-1} \cdot B^{-1}\):实际操作,顺序执行
(比如经典的公式:\([R,U]=R \cdot U \cdot R' \cdot U'\))
这个操作在魔方上的物理意义是什么?
- 如果魔方像普通数字一样满足交换律(\(AB = BA\)),那么 \(A \cdot B \cdot A^{-1} \cdot B^{-1}\) 的结果就是什么都没发生(复原)。
- 但是魔方不满足交换律!先转 \(R\) 再转 \(U\),和先转 \(U\) 再转 \(R\),结果完全不同。
- 所以,交换子 \(A \cdot B \cdot A^{-1} \cdot B^{-1}\) 的结果,精确地衡量了这两个操作“不交换”的程度。
4. 惊人的对应关系:为什么魔方交换子只动 3 个块?
四元数推导中发现:两个无穷小旋转的交换子,产生了一个二阶小量(\(\epsilon^2\)),并且它的方向是叉乘(垂直于原来两个旋转轴)。
在魔方中,这个性质表现为:
- 单个操作 \(R\) 会动 4 个棱块和 4 个角块。
- 但是,当你执行完整的交换子 \(R \cdot U \cdot R' \cdot U'\) 时,大部分块的移动都被“抵消”了。
- 最终的结果是:只有 3 个块发生了一个循环轮换(3-cycle),其他所有块全部复原!
- A和B是原子操作的话,需要对【A,B】操作5次,即可回到初始状态,在线验证————R U R' U‘(验证公式,操作之间需要空格)
在 \(A \cdot B \cdot A^{-1} \cdot B^{-1}\) 的执行过程中:
- 执行 \(A\):把一个块 \(X\) 移入了交集区域。
- 执行 \(B\):把交集里的块(包括 \(X\))进行了重排。
- 执行 \(A^{-1}\):把刚才移进来的块 \(X\) 移回原位,但它现在带着 \(B\) 赋予的新状态/位置。
- 执行 \(B^{-1}\):把其他块归位。
结论:交换子产生的循环,本质上是把“交集块”在 \(B\) 的作用下进行了一次置换,然后 \(A\) 负责把它们“搬运”到魔方的其他位置。
根据 \(A\) 和 \(B\) 重叠程度的不同,交换子会产生以下几种结果:
- 三阶循环 (3-cycle):当 \(A\) 和 \(B\) 只有极少部分重叠(通常只有 1 到 2 个块重叠)时,抵消后剩下的就是最纯粹的三阶循环。这是盲拧和速拧中最想要的结果。
- 对换 (2-swap / Parity):当 \(A\) 和 \(B\) 重叠较多,导致剩下的块只有 2 个或 4 个时,可能会产生两个块的互换。但在标准三阶魔方中,纯交换子无法产生单纯的两个块对换(因为三阶魔方的状态必须是偶置换),通常是 4 个块的对换。
- 无变化 (Identity):如果 \(A\) 和 \(B\) 完全不重叠,或者 \(A\) 和 \(B\) 完全交换(\(AB=BA\)),那么 \(A \cdot B \cdot A^{-1} \cdot B^{-1}\) 的结果就是什么都没发生。
这就是为什么魔方高手只用交换子就能复原魔方:因为交换子是一个极其纯粹的、局部的、不破坏其他地方的“微小扰动”。它就像四元数里的“无穷小旋转”一样,是魔方群里的“微积分”!
经典交换子
在魔方圈,最经典的交换子被称为 “Setup + Commutator”。为了得到纯粹的三阶循环,通常采用 “移入交集 -> 局部操作 -> 移出交集” 的结构。
魔方标记的六个外表面:Up,Down;Front,Back;Right,Left,外面朝向视者,正方向记作顺时针
- F朝向你,R上L下为顺时针,U左D右为顺时针,F不用说,B就要注意与F在不同朝向的异同
- E(Equator,赤道层):代表上下方向的中间层,即顶层(U)与底层(D)之间的那一层。E 的转动方向与 D 层一致。——ED
- M(Middle,中间层):代表左右方向的中间层,即左层(L)与右层(R)之间的那一层。M 的转动方向与 L 层一致。——ML
- S(Standing/Side,侧面层):代表前后方向的中间层,即前层(F)与后层(B)之间的那一层。S 的转动方向与 F 层一致。——SF
经典案例 1:角块三阶循环(盲拧核心)
- 公式:\([R \cdot U' \cdot R', \ U]\) = \(R \cdot U' \cdot R' \cdot U \cdot R \cdot U \cdot R' \cdot U'\)
- R表示右边一层顺时针转90°,U表示顶层顺时针旋转 90°,即外部看魔方表示旋转是逆时针
- \((R \cdot U' \cdot R')'=R \cdot U \cdot R'\)
- \((A \cdot B \cdot C)^{-1} = C^{-1} \cdot B^{-1} \cdot A^{-1}\)
- 交集分析:
- \(A = R \cdot U' \cdot R'\) (作用:将右上角的块“藏”到顶层右侧)
- \(B = U\) (作用:顶层顺时针旋转 90°)
- \(A^{-1} = R \cdot U \cdot R'\) (作用:将顶层右侧的块“搬回”右下角)
- \(B^{-1} = U'\) (作用:顶层逆时针旋转 90°)
- 影响结果:这是一个完美的角块三阶循环。它只影响 3 个顶层角块,其他所有块(包括棱块、底层、中层)纹丝不动。
经典案例 2:棱块三阶循环(速拧核心)
- 公式:\([M^2, \ U]\) (即 \(M^2 \cdot U \cdot M^{-2} \cdot U'\),注意这里 \(M^2\) 等于它的逆)
- 交集分析:
- \(M^2\) 是中间层转 180°,影响前后两个棱块。
- \(U\) 是顶层转 90°,影响四个顶层棱块。
- 交集是顶层后方的那个棱块。
- 影响结果:这是一个完美的棱块三阶循环。它交换了顶层后棱、顶层前棱和底层前棱(或类似组合,取决于具体手法),其他块全部复原。
经典案例 3:非三阶循环(四阶魔方对换)
- 如果用两个完全对称的动作做交换子,比如 \([R \cdot U, \ R \cdot U]\),结果显然是 0(无变化)。
- 如果用 \([R \cdot U, \ R \cdot U']\),由于 \(U\) 和 \(U'\) 只是方向相反,它们的交集很大,抵消后可能会剩下 4 个棱块的对换(这在四阶魔方降阶法最后一步解决“单棱翻”或“对棱换”时非常常见)。
在线体验一下魔方交换子,初始状态为复原状态
- \([R , U]\):R U R’ U
- 执行5次,复原
- 角块三阶循环\([R \cdot U' \cdot R', \ U]\) :R U' R' U R U R' U'
- 执行10次,复原
- \([R \cdot U, \ R \cdot U']\):R U R U' U' R' U R'
- 执行5次,只有三个棱块交换位置
- 执行15次,复原
- CFOP的P操作公式,只对同一层进行置换
-
\(F [R U' R', U'] F'\):F R U' R' U' R U R' F' R U R' U' R' F R F'
- 顶面颜色不变,四个块交换(一对角块,另外2个棱块相邻对面的那个一个角块)
- 不亏叫角块循环,执行两次复原
-
R U R' U' R' F R2 U' R' U' R U R' F'
- 顶面颜色不变,四个块交换(1个棱块,另外3个块连续边相对)
- 棱块循环,执行两次复原
-
三角块循环:U' L' U R U' L U R'
- 顶面颜色变化(带有旋转),只有三个角块交换,执行三次复原
-
三棱块交换:R2 U R U R' U' R' U' R' U R'
- 顶面颜色不变,只有三个棱块交换,执行三次复原
-
对棱交换:M2 U M2 U2 M2 U M2
- 顶面颜色不变,相对的两个棱块交换,执行两次复原
-
四棱块交换(RE)4:R E R E R E R E
- 此外还有:(RS)4,(FE)4,(FM)4,(UM)4,(US)4
- 不属于P操作,会影响中间层的三个棱块
- 四个棱块不交换位置,只改变旋转,执行两次复原
-
总结:从四元数到魔方的数学升华
你现在的思考路径已经非常清晰了:
- 四元数(连续群):两个无穷小旋转的交换子 \(\rightarrow\) 产生一个二阶小量(叉乘) \(\rightarrow\) 实现空间中的微小旋转。
- 魔方(离散群):两个有限操作的交换子 \(\rightarrow\) 产生一个交集置换 \(\rightarrow\) 实现魔方状态的三阶循环(微调)。
交换子,就是群论赐予我们的“手术刀”。 无论这把手术刀是切在连续的三维空间(四元数),还是切在离散的魔方色块上,它的底层逻辑都是“利用不交换性,提取出纯粹的局部扰动”**。
总结洞察
从四元数的乘法不交换性,推导出了李括号(叉乘);然后立刻联想到魔方的交换子。
这两者本质上是同一个数学幽灵在不同世界的投影:
- 在连续空间(四元数):不交换性在无穷小尺度下投影成了 李括号(叉乘)。
- 在离散空间(魔方):不交换性在有限操作下投影成了 三阶循环(3-cycle)。
一句话:无论是四元数还是魔方,交换子都是用来“提纯”群的非交换性,从而实现对系统状态的“精准微调”的终极武器。
李代数的序结构
这个问题非常敏锐,直接切中了李群与李代数之间最本质的结构差异。
首先需要澄清一个核心概念:李代数本身是一个向量空间,而不是一个群。 因此,当讨论李代数的“序关系”时,实际上是在讨论向量空间的序结构,而不是群的序结构。
李代数之所以能定义序关系,正是因为它“无挠”且具备向量空间的线性结构。具体来说,李代数上的序关系是通过以下方式定义的:
1. 核心机制:正锥(Positive Cone)
在向量空间(李代数)中定义序关系,最标准的方法是定义一个正锥。
正锥是一个特殊的子集 \(P\)(该子集不唯一),它满足以下性质:
- 加法封闭:如果 \(x, y \in P\),那么 \(x + y \in P\)。
- 正数乘封闭:如果 \(x \in P\) 且 \(\lambda > 0\)(\(\lambda\) 是实数),那么 \(\lambda x \in P\)。
- pointed:\(P \cap (-P) = \{0\}\),即只有零向量既在正锥里,也在负锥里。
有了正锥 \(P\),就可以定义向量之间的序关系:
也就是说,如果 \(y\) 减去 \(x\) 的差落在正锥里,就说 \(x\) 小于等于 \(y\),这就保证了偏序
2. 为什么李代数能定义这种序?
- 无挠性:李代数是一个实数域上的向量空间,它的运算只有加法和数乘。除了零向量,没有任何非零元素满足 \(nx = 0\)。这从根本上排除了“转圈回到原点”的矛盾,为定义序关系扫清了代数障碍。
- 线性结构:向量空间的线性结构天然允许定义“方向”和“大小”。正锥本质上就是规定了哪些方向是“正方向”。
3. 经典例子:\(\mathbb{R}^n\) 与 \(so(3)\)
- \(\mathbb{R}^n\)(平移李代数):这是最直观的例子。通常定义的正锥就是所有分量都非负的向量集合,即 \(P = \{(x_1, ..., x_n) | x_i \ge 0\}\)。这定义了一个偏序关系。如果想要全序,可以引入字典序。
- \(so(3)\)(旋转李代数):\(so(3)\) 本质上是 \(\mathbb{R}^3\)。它的元素是三维向量(对应旋转轴和角度)。可以像 \(\mathbb{R}^3\) 一样,通过定义正锥来给旋转的“角速度向量”排序。例如,规定绕 Z 轴正方向的旋转为“正”,这就定义了一个偏序。
4. 关键区别:李代数的序 vs 李群的序
- 李代数:作为向量空间,它可以非常自然地定义偏序(甚至全序),因为它的结构是线性的、无挠的。
- 李群:作为流形和群,它的结构是非线性的、有挠的(如旋转群 \(SO(3)\))。因此,李群无法定义与群运算兼容的全局序关系。
总结来说:
李代数之所以能定义序关系,是因为它抛弃了群的乘法结构,回归到了向量空间的线性结构。通过定义“正锥”,它在无挠的向量空间上建立了一套自洽的大小比较规则。这正是为什么在机器人控制和优化中,总是把问题从李群(旋转空间)拉到李代数(向量空间)中进行计算——因为在李代数里,不仅能做微积分,还能定义“大小”和“方向”,从而进行梯度下降等优化操作。
这两个问题非常精准,直接切中了李群与李代数理论中最核心的“自由度”与“映射”机制。逐一拆解:
5. 正锥(Positive Cone)是固定的吗?
结论是:正锥绝对不是固定的,它是人为规定的。
“李代数的两个元素之和与之差都在 P 里面”,这里其实有一个小小的误解。正锥 \(P\) 的定义只要求对加法和正数乘法封闭,并不要求对“减法”封闭(如果对减法也封闭,那 P 就会变成整个空间,序关系就失去意义了)。
正锥的本质,就是在一个原本“没有方向之分”的向量空间里,人为划定了一个“正方向”的区域。
以 \(so(3)\)(三维旋转的李代数,本质是 \(\mathbb{R}^3\))为例:
- 规定方式 1(全序):可以像字典序一样规定,只要向量的第一个分量 \(x > 0\),它就属于正锥 P。如果 \(x=0\) 但 \(y>0\),也属于 P。这样定义的正锥,可以让 \(so(3)\) 中的任意两个元素都比出大小。
- 规定方式 2(偏序):也可以规定,只有当向量的三个分量 \(x, y, z\) 全部大于等于 0 时,它才属于正锥 P。这种情况下,向量 \((1, -1, 0)\) 和 \((0, 1, 0)\) 就不可比较了,因为它们相减的结果不在 P 里。
总结: \(so(3)\) 的正锥不是唯一的。研究什么样的序关系,就定义什么样的正锥。在机器人控制中,通常不需要给旋转排序,但如果在做基于优化的控制(比如模型预测控制 MPC),会利用李代数的向量空间特性,人为定义代价函数的“正方向”,这本质上就是在利用正锥的概念。
6. 李群元素如何映射到李代数元素?(以 SO(3) 为例)
李群到李代数的映射,核心工具是对数映射(Logarithm Map)。
用 “旋转轴-角(Axis-Angle)” 这个物理概念来讲解。
背景知识:
- 李群 \(SO(3)\):它的元素是一个 \(3 \times 3\) 的旋转矩阵 \(R\),描述了一个刚体在空间中的最终姿态。
- 李代数 \(so(3)\):它的元素是一个三维向量 \(\omega = [\omega_x, \omega_y, \omega_z]^T\)。这个向量的方向代表旋转轴,模长代表旋转角度(弧度)。
映射过程:
第一步:从旋转矩阵 \(R\) 中提取旋转角度 \(\theta\)
旋转矩阵有一个神奇的性质:它的迹(Trace,即对角线元素之和)与旋转角度直接相关。
所以,可以直接算出旋转角度:
第二步:从旋转矩阵 \(R\) 中提取旋转轴 \(n\)
旋转轴 \(n = [n_x, n_y, n_z]^T\) 是旋转过程中唯一保持不动的方向。它可以通过旋转矩阵的反对称部分提取出来:
(注:当 \(\theta\) 接近 0 或 \(\pi\) 时,公式需要特殊处理,这里讲核心逻辑)
第三步:组合成李代数元素 \(\omega\)
有了旋转轴 \(n\) 和旋转角度 \(\theta\),李代数元素 \(\omega\) 就是它们的乘积:
这个三维向量 \(\omega\) 就是旋转矩阵 \(R\) 在李代数 \(so(3)\) 中的对应元素。
直观理解:
- 李群 \(R\) 告诉你:“你最终脸朝哪个方向”。
- 李代数 \(\omega\) 告诉你:“你是绕着哪根轴,转了多少度才到达这个方向的”。
在机器人学中,之所以要做这个映射,是因为旋转矩阵 \(R\) 有 9 个参数但只有 3 个自由度,且必须满足正交约束,直接对它求导和优化极其困难。而映射到李代数 \(\omega\) 后,它变成了一个无约束的 3 维向量,可以轻松地对其进行加减、求导和梯度下降,这就是李代数在机器人动力学与控制中如此强大的原因。
李代数元素就是旋转轴-角
在右手规则下,将旋转轴矢量 \(\vec{wuv}\) 归一化后乘以旋转角度 \(a\)(注意这里角度需要转换为弧度),得到的向量正是该旋转在李代数 \(so(3)\) 中的对应元素。
1. 确定旋转轴(方向)
首先,将任意非零的旋转轴矢量 \(\vec{wuv}\) 归一化,得到单位向量 \(\hat{n}\):
这个单位向量 \(\hat{n}\) 指明了旋转发生的轴线方向。
2. 编码旋转角度(大小)
然后,将旋转角度 \(a\)(弧度制)与单位旋转轴 \(\hat{n}\) 相乘,得到李代数元素 \(\vec{\omega}\):
直观理解:
这个三维向量 \(\vec{\omega}\) 完美地融合了旋转的两大要素:
- 方向:向量的指向代表了旋转轴。
- 大小:向量的模长 \(||\vec{\omega}|| = a\) 代表了旋转的角度。
补充说明:
在数学和工程代码中,这个三维向量 \(\vec{\omega} = [\omega_x, \omega_y, \omega_z]^T\) 通常还会被转换成一个 \(3 \times 3\) 的反对称矩阵(也称为“叉乘矩阵”或“hat操作”),记作 \(\hat{\omega}\) 或 \([\omega]_\times\)。这个矩阵形式在机器人动力学的公式推导(如指数映射 \(R = e^{[\omega]_\times}\))中更为常用。
轴-角 ⇔ 李代数向量 ⇔ 反对称矩阵 ⇔ 旋转矩阵
正映射链条(李代数 → 李群)
正映射(李代数 → 李群) 和 反映射(李群 → 李代数) 的完整链条。
设定一个非常经典的物理场景:刚体绕 Z 轴正方向旋转 90 度。
设定初始条件
- 旋转轴:Z 轴,单位向量 \(\hat{n} = [0, 0, 1]^T\)
- 旋转角度:\(\theta = 90^\circ = \frac{\pi}{2}\) 弧度
- 李代数元素:\(\vec{\omega} = \theta \cdot \hat{n} = [0, 0, \frac{\pi}{2}]^T\)
目标:已知李代数向量 \(\vec{\omega}\),求对应的旋转矩阵 \(R\)。
核心公式:罗德里格斯公式(Rodrigues' Formula),即指数映射 \(R = e^{[\omega]_\times}\)。
Step 1:将向量转换为反对称矩阵(Hat 操作)
将 \(\vec{\omega} = [0, 0, \frac{\pi}{2}]^T\) 转换为 \(3 \times 3\) 的反对称矩阵 \([\omega]_\times\):
Step 2:代入罗德里格斯公式
公式为:\(R = I + \sin(\theta)[\hat{n}]_\times + (1-\cos(\theta))[\hat{n}]_\times^2\)
因为 \(\theta = \frac{\pi}{2}\),所以 \(\sin(\theta)=1\),\(\cos(\theta)=0\)。公式简化为:
Step 3:计算矩阵平方
Step 4:矩阵相加得到最终旋转矩阵
罗德里格斯公式中第二项是 \(\sin(\theta)[\hat{n}]_\times\),即 \(1 \times [\hat{n}]_\times\)
结果验证:这个矩阵完美描述了“X轴转到了Y轴,Y轴转到了-X轴”的 90 度旋转。
反映射链条(李群 → 李代数)
目标:已知旋转矩阵 \(R\),反推李代数向量 \(\vec{\omega}\)。
核心公式:对数映射(Logarithm Map)。
Step 1:从矩阵中提取旋转角度 \(\theta\)
利用矩阵的迹(Trace):
Step 2:从矩阵中提取旋转轴 \(\hat{n}\)
利用反对称部分提取:
代入数值(\(\sin(\frac{\pi}{2})=1\)):
Step 3:组合成李代数元素
结果验证:完美还原了最初设定的李代数向量。

浙公网安备 33010602011771号