在数学中,四元数是一个拥有一个实数部分和三个虚数部分的超复数扩展,表示为 a + bi + cj + dk,其中a、b、c和d是实数,i、j和k是附加的虚数单位,满足如下乘法规则:
i² = j² = k² = ijk = -1
四元数最初是由爱尔兰数学家威廉·哈密顿在19世纪发明的,并在许多应用领域得到了广泛的使用。它们可以代表3D旋转,电磁场,量子力学,机器人学和计算机图形学中的旋转等等。
四元数的形式为a + bi + cj + dk,例如:3 + 2i + 4j + 5k是一个四元数。其中实数部分a又称作标量,标记为s,虚数部分称为矢量,标记为v=(b,c,d). 四元数的加法和实数加法相同,即将相应的部分相加,例如:
(3 + 2i + 4j +5k) + (1 + 2i + 1j +3k) = 4 + 4i + 5j + 8k
四元数的乘法具有非交换性,也就是说从左边乘上四元数的顺序不同,得到的结果也不同。四元数乘法的定义如下:
(a + bi + cj + dk) × (p + qi + rj + sk) = ap − bp − cp − dp + (aq + bp + cr − ds)i + (ar − bq + cp + ds)j + (as + br − cq + dp)k
四元数还可以用于表示旋转,例如一个向量v可以通过一个四元数q旋转。旋转后的向量记为v`,其计算公式如下:
v` = qvq⁻¹
四元数在许多应用领域得到广泛的使用,下面列举一些典型的例子:
1. 计算机图形学:四元数常用于旋转表示和插值计算。
2. 机器人学:四元数用于表示机器臂或者其他活动部件相对于基准坐标系的旋转姿态,因此可以用于机器人运动控制以及姿态估计和校正等方面。
3. 电磁学:四元数可以方便地描述电场和磁场的关系,因此可以用于电磁现象的模拟和计算。
4. 量子力学:四元数常用于表示角动量和自旋。
相对于欧几里得向量、矩阵和复数,四元数拥有以下几个优点:
1. 旋转的表达式更加简洁,不需要使用像矩阵那样的有限制的行和列。
2. 四元数具有一些便捷的性质,由于它们的非交换性质,四元数可以表示比旋转矩阵更多的旋转类型。
3. 四元数表示的旋转不像欧几里得向量和复数表示的旋转那样容易受到旋转顺序的干扰。