本文主要整理自 Krasjet 的 "四元数与三维旋转" 第三章.
四元数 (Quaternion) 的定义与复数非常类似, 唯一的区别是: 四元数有三个虚部, 而复数只有一个虚部.
1 定义
定义形如
与复数类似, 四元数为关于基 (Basis)
我们经常将四元数的实部与虚部分开, 并用一个三维向量表示虚部,
其中
2 性质
2.1 四元数模长 (范数)
对于四元数
对于标量向量有序对形式的表示,
其中
2.2 四元数加减法
对于两个四元数
同理, 对于标量向量有序对形式, 如
2.3 标量乘法
对于四元数
2.4 四元数乘法
与复数不同, 由于四元数有三个虚部, 因此存在虚部之间相乘的特殊情况. 利用已知条件
表格最左列中一个元素右乘以顶行中一个元素的结果就位于这两个元素的行列交叉处. 例如
记四元数乘法运算符为
2.5 四元数的矩阵形式
可以发现, 与复数类似, 四元数相乘也可以写成矩阵形式:
其中, 右侧的
另外, 也可以将右乘的四元数表示为左乘的矩阵形式, 有少数情况会用到.
进一步, 若将四元数乘法中的四元数看作一种变换, 四元数乘法便可在矩阵形式下转化为矩阵乘法. 注意, 与复数乘法不同, 四元数乘法不满足交换律.
因此, 我们可以将四元数
2.6 Graßmann 积
在四元数乘法中, 换个角度观察乘积可以发现
令
因此, 四元数乘法的结果也可以用向量点乘和叉乘的形式表示出来:
对任意四元数
这个结果叫做 Graßmann 积, 它是将四元数与旋转联系起来的关键.
2.7 纯四元数
这里单独讨论四元数的一种特殊形式, 即仅有虚部的四元数:
我们称
若有两个纯四元数
纯四元数
显然,
2.8 四元数的共轭和逆
四元数
与复数类似, 四元数共轭在矩阵形式下对应为转置运算
对于标量向量有序对形式,
注意到
得到的结果是一个实数, 而它正是四元数模长的平方:
对应的矩阵形式结果为
由于
四元数的逆 (Inverse) 记为
与矩阵类似, 右乘
四元数的求逆运算对应到矩阵形式上也是矩阵求逆运算:
利用共轭的性质, 可以计算四元数的逆:
若
单位四元数对应到矩阵形式为
这表示单位四元数的矩阵形式为正交矩阵 (Orthogonal Matrix).
参考文献
- Krasjet. 四元数与三维旋转[OL]. https://github.com/Krasjet/quaternion
- Andrew J. Hanson. Visualizing Quaternions[M]. Elsevier. 2004.