从复数到四元数

复数与二维旋转

设复数 ,则 将这个结果写成矩阵相乘的形式, 说明 矩阵 表示的几何变换与是复数乘法运算等价的

一般地,向量 在二维平面中对应一个直角三角形,两个直角边长度为 ,斜边长为 ,即向量的模长,矩阵 的每个元素同时除以模长,得到 设向量 轴夹角为 ,则 . 与该矩阵相乘在二维平面上实现的效果是 被乘的向量绕原点逆时针旋转 .

由此可以发现,复数能够表示二维平面上的旋转,假设旋转角度为 ,定义单位复数旋转因子为 被旋转的向量 ,相乘得到被旋转 后的复数为 对应向量 在二维平面 中绕原点逆时针旋转了 .

四元数与三维旋转

本文仅使用右手坐标系。

在三维空间中,向量 绕某个旋转轴 旋转,可以将向量 分解为平行于 的分量 和垂直于 的分量 ,然后分别旋转这两个向量,再合并得到最后结果。

其中 始终与 重合,旋转 后的

始终与 垂直,它的旋转可以看作二维平面内的旋转,如下图所示,

向量 绕旋转轴 , 旋转的结果


为了用“复数”形式表示类似的旋转,最简单的想法是在复数域再加一个维度,即在复数的基础上增加一个虚数 ,假设三维空间中的“复数”为 显然, 相乘得到的结果中包含 这些交叉乘积项,并没有已知定义(与 不在同一个向量空间中),因此不能表示三维空间中旋转的结果。

在二维平面中,向量可以在 平面旋转,只需要一个虚数,而在三维空间中,向量旋转等效于在 三个平面旋转,或许需要三个虚数表示才可以。

于是定义四元数,表示为 其中 表示三个维度,并且根据笛卡尔坐标系下的外积运算法则,定义

金雀花桥上的纪念石刻(图片来源于网络)

定义两个四元数 ,相乘并化简得到 其中 其余部分将 提出,得到 最后得到两个四元数相乘的结果为 也可以将相乘结果写成 该乘法结果可以表示成矩阵形式 与矩阵类似,四元数的乘法并不遵循交换律。类比矩阵的逆的定义,定义四元数乘法的逆运算为 ,满足 与复数的共轭类似,定义四元数 的共轭为 满足 则有 并且对于单位四元数来说,.


回到最初讨论的三维空间中的旋转问题,令 表示三维空间的向量,相乘结果为 为了使得旋转后的结果仍为三维向量,需要满足 ,即 .


只有虚部的四元数称为纯四元数,表示为 ,两个纯四元数的乘积为

基于前文向量 绕旋转轴 的讨论,将向量均用纯四元数表示

向量 旋转后的结果

向量 旋转后的结果 已知 ,则 由此可以得出,完成旋转 这一变换的单位四元数可以构造为 单位向量 指向转轴方向,待转向量 正交于 时,将旋转变换用四元数形式改写为


一般地,

,则 最终得出结论,任意向量 绕指向转轴方向的单位向量 旋转 ,旋转后的 可以用下面运算得到 其中 .


在表示二维平面中的旋转时,利用欧拉公式可以将旋转表示为指数形式 ,类似地,对于单位四元数 ,有 于是前面四元数的旋转表达式可以写成

考察四元数 的变换, 的变换相同。从几何角度考虑, 表示绕转轴旋转 ,而 表示绕相反的转轴旋转 ,所以说 单位四元数与三维旋转是一个二对一的满射同态关系

四元数插值与三维旋转

前置知识:线性插值

已知函数 在两点的值,要获得其它点数值,

与函数的线性插值类似,下面讨论四元数的插值,用单位四元数 表示第一个方向, 表示第二个方向, 表示最终的方向。

与线性插值类似,当插值参数 时,插值的效果是将 旋转到 ,当 时,插值的效果是将 旋转到

旋转的对象是角度,从指数形式 考虑,“线性插值”的对象是四元数的指数,类比写出四元数插值的形式

其中 的角度差 ,即 当插值系数 时,,当时,

注:四元数不止有一种定义形式,本文仅涉及 Hamilton 形式。

参考资料

张小飞, 李建峰, 徐大专, 等.阵列信号处理及 MATLAB 实现[M].电子工业出版社,2020.(2.3 四元数理论)

Krasjet/quaternion

从复数乘法到旋转矩阵 - YourMath