从复数到四元数
从复数到四元数
复数与二维旋转
设复数
将这个结果写成矩阵相乘的形式,
说明 矩阵
一般地,向量
设向量
与该矩阵相乘在二维平面上实现的效果是 被乘的向量绕原点逆时针旋转
由此可以发现,复数能够表示二维平面上的旋转,假设旋转角度为
被旋转的向量
对应向量
四元数与三维旋转
本文仅使用右手坐标系。
在三维空间中,向量
其中
向量
为了用“复数”形式表示类似的旋转,最简单的想法是在复数域再加一个维度,即在复数的基础上增加一个虚数
显然,
在二维平面中,向量可以在
平面旋转,只需要一个虚数,而在三维空间中,向量旋转等效于在 三个平面旋转,或许需要三个虚数表示才可以。
于是定义四元数,表示为
其中
定义两个四元数
令
其中
其余部分将
最后得到两个四元数相乘的结果为
也可以将相乘结果写成
该乘法结果可以表示成矩阵形式
与矩阵类似,四元数的乘法并不遵循交换律。类比矩阵的逆的定义,定义四元数乘法的逆运算为
与复数的共轭类似,定义四元数
满足
则有
并且对于单位四元数来说,
回到最初讨论的三维空间中的旋转问题,令
为了使得旋转后的结果仍为三维向量,需要满足
只有虚部的四元数称为纯四元数,表示为
,两个纯四元数的乘积为
基于前文向量
向量
向量
已知
由此可以得出,完成旋转
单位向量
一般地,
令
最终得出结论,任意向量
其中
在表示二维平面中的旋转时,利用欧拉公式可以将旋转表示为指数形式
于是前面四元数的旋转表达式可以写成
考察四元数
的变换,
与
的变换相同。从几何角度考虑, 表示绕转轴旋转 ,而 表示绕相反的转轴旋转 ,所以说 单位四元数与三维旋转是一个二对一的满射同态关系。
四元数插值与三维旋转
前置知识:线性插值
已知函数
在两点的值,要获得其它点数值,
与函数的线性插值类似,下面讨论四元数的插值,用单位四元数
与线性插值类似,当插值参数
旋转的对象是角度,从指数形式
考虑,“线性插值”的对象是四元数的指数,类比写出四元数插值的形式
其中
当插值系数
注:四元数不止有一种定义形式,本文仅涉及 Hamilton 形式。
参考资料
张小飞, 李建峰, 徐大专, 等.阵列信号处理及 MATLAB 实现[M].电子工业出版社,2020.(2.3 四元数理论)

