四元数
参考:(1)四元数(Quaternions) - 知乎 (zhihu.com);(2)四元数——旋转 - 知乎 (zhihu.com);(3⭐)四元数和旋转(Quaternion & rotation) - 知乎 (zhihu.com)
说明:文中所有用 标记的为四元数,用 标记的为普通向量; 为虚数单位, 为四元数单位。
1. 基本性质
定义四元数为
其中 均为实数。其中 满足:
加、减、乘法由(1)(2)可推知。注意乘法不可交换。
定义四元数的共轭:
四元数的共轭有关系(不可交换线性算子的必然结果):
模:
易知模必为正实数。
四元数也可看作是一个线性算子,故其逆有:,利用式(4)可得:
考虑 𝕚 与单位纯四元数 的关系:
𝕚 基于此拓展欧拉公式 𝕚𝕚。任何一个单位四元数都可以写作 ,其中 为单位纯四元数。
于是自然地得到四元数的对数:
2.四元数与旋转
2.1 胡尔韦兹(Hurwitz)定理
赋范可除性代数只能同构于实数、复数、四元数、八元数。
赋范可除性代数:代数中的元素满足 ,其中 为该空间对应的乘法。四元数是满足该性质的。
这个性质别看简单,但基本上算是非常核心的一个性质。为什么我要用四元数表示旋转?旋转最本质的特点是什么,就是不改变相对距离,你转个手臂不可能转个60度手变长了。用数学公式说明,就是假如x是单位四元数,当我一个任意向量y通过x进行旋转后,模长是不会发生变化的。因此,赋范可除代数的应用就在这。
(2)
2.2 矢量在空间中的旋转
先考虑一个矢量 绕轴 (单位向量)旋转 :
证明:记 沿 方向的分量为 ,
代入即得。QED
2.3 四元数表示旋转
旋转函数 总应该满足如下三个性质:
长度不变:
夹角不变:
手性不变:
满足这三条性质的函数即为旋转函数。这里的 不打箭头,是因为它们即可以是矢量,也可以是纯四元数。仿照矢量的点乘和叉乘,定义存四元数的点乘和叉乘。
容易推导,纯四元数之间的乘法:
考虑函数 ,它(可以)是一个纯四元数到纯四元数的映射。
证明:若 是纯四元数,
故 也为纯四元数。QED
同时 也满足
上1式为长度不变;上2式中即包含了夹角不变和手性不变,因为:
点乘处的结果为实数,叉乘出的结果为纯四元数,它们对应相等,故:
上面诸多性质表明,函数 表示对纯四元数的一个旋转。
2.4 已知旋转确定四元数
显然,对 做一个拉伸,不会改变 ,即 。故方便起见,选择 为单位四元数。则有:
其中 为单位纯四元数。代入 的表达式( 为纯四元数):
对比式(12)与式(9),即知 为绕轴 旋转 的函数。
2.5 转化旋转函数为矩阵
将(13)(14)代入(12)中,并记 ,整理得:
以上就四元数旋转函数对应的旋转矩阵。