文章目录
1. 四元数的定义和性质
1.1 四元数定义
我发现尤其吸引人的关于四元数的介绍是由Cayley-Dickson介绍的:如果我们由两个复数 A = a + b i A=a+bi A=a+bi 和 C = c + d i C=c+di C=c+di,那么构造 Q = A + C j Q=A+Cj Q=A+Cj并定义 k ≜ i j k \triangleq ij k≜ij为四元数空间 H \mathbb{H} H中的一个数,
Q = a + b i + c j + d k ∈ H , (1) Q = a+bi+cj+dk \in \mathbb{H}~, \tag{1} Q=a+bi+cj+dk∈H ,(1)
其中 { a , b , c , d } ∈ R \{a,b,c,d\} \in \mathbb{R} {
a,b,c,d}∈R,且 { i , j , k } \{i,j,k\} {
i,j,k}是如下定义的三个虚单位数
i 2 = j 2 = k 2 = i j k = − 1 , (2a) i^2=j^2=k^2=ijk=-1 ~, \tag{2a} i2=j2=k2=ijk=−1 ,(2a)
从其中我们可以推导
i j = − j i = k , j k = − k j = i , k i = − i k = j . (2b) ij=-ji=k,~~jk=-kj=i, ~~ki=-ik=j~. \tag{2b} ij=−ji=k, jk=−kj=i, ki=−ik=j .(2b)
从(1)式我们看到我们可以在四元数定义中嵌入复数,从而可以将实数和虚数嵌入,即实数,虚数和复数确实是四元数,
Q = a ∈ R ⊂ H , Q = b i ∈ I ⊂ H , Q = a + b i ∈ Z ⊂ H (3) Q=a \in \mathbb{R} \subset \mathbb{H},~~Q=bi \in \mathbb{I} \subset \mathbb{H},~~Q=a+bi \in \mathbb{Z} \subset \mathbb{H} \tag{3} Q=a∈R⊂H, Q=bi∈I⊂H, Q=a+bi∈Z⊂H(3)
同样,为了完整起见,我们可以在三维中定义数字 H \mathbb{H} H的虚子空间。我们将其称为 pure quaternions(纯四元数),并且,令 H p = I m ( H ) \mathbb{H}_p = Im({\mathbb{H}}) Hp=Im(H)为纯四元数空间。
Q = b i + c j + d k ∈ H p ⊂ H . (4) Q=bi+cj+dk \in \mathbb{H}_p \subset {\mathbb{H}}~.\tag{4} Q=bi+cj+dk∈Hp⊂H .(4)
值得注意的是,单位长度 z = e i θ \mathbf{z}=e^{i\theta} z=eiθ的常规复数可以表示2D平面中的旋转(使用复数的乘积: x ′ = z ⋅ x \mathbf{x'}=\mathbf{z \cdot x} x′=z⋅x),广义的复数或者单位长度 q = e ( u x i + u y j + u z k ) θ / 2 \mathbf{q}=e^{(u_xi+u_yj+u_zk)\theta/2} q=e(uxi+uyj+uzk)θ/2四元数表示3D空间中的旋转(使用两个四元数乘积, x ′ = q ⊗ x ⊗ q ∗ \mathbf{x'} = \mathbf{q \otimes x \otimes q^*} x′=q⊗x⊗q∗,我们在后面会解释)。
警告:不是所有的四元数的定义都相同,一些作者将乘写成 i b ib ib而不是 b i bi bi,而且他们的理论属性 k = j i = − i j k=ji=-ij k=ji=−ij,这会导致 i j k = 1 ijk=1 ijk=1和一个左手(系)的四元数。而且,许多作者将实部放在末尾,即 Q = i a + j b + k c + d Q=ia+jb+kc+d Q=ia+jb+kc+d。这些选择没有根本的意义,但却使整个公式在细节上不同。进一步的解释和消歧请参考第3章。
警告:有额外的约定也使公式在细节上不同。他们关心我们给定的旋转操作的“含义”或者“解释”,旋转向量或者先转参考系,其中尤其是构成相反的操作。进一步的解释和消歧请参考第3章。
注意:在上述不同的惯例中,本文致力于Hamilton惯例,它其最显着的特性是定义(2)。正确、有根据的消除歧义首先需要大量的材料;因此,这种消除歧义的做法被归入上述第3章。
【注:上面2个警告1个注意:都是说关于四元数的一些不同习惯的约定对整体无伤大雅,但是在细节公式上会不同,详情请参考第3章。】
1.1.1 四元数的另一种表达
实+虚的表示法对于我们的目的并不总是方便的。假设使用了代数(2),则四元数可以表示为标量+向量的形式,
Q = q w + q x i + q y j + q z k ⇔ Q = q w + q v , (5) Q=q_w+q_xi+q_yj+q_zk \Leftrightarrow Q = q_w+\mathbf{q}_v, \tag{5} Q=qw+qxi+qyj+qzk⇔Q=qw+qv,(5)
其中 q w q_w qw是实部或标量,而 q v = q x i + q y j + q z k = ( q x , q y , q z ) \mathbf{q}_v = q_xi + q_yj + q_zk = (q_x, q_y, q_z) qv=qxi+qyj+qzk=(qx,qy,qz) 是 虚部或向量部分【1】。它也可以被定义为标量-向量的有序对
Q = ⟨ q w , q v ⟩ . (6) Q = \langle q_w, \mathbf{q}_v\rangle.~ \tag{6} Q=⟨qw,qv⟩. (6)
【注1,我们选择 ( w , x , y , z ) (w,x,y,z) (w,x,y,z)下标表示法的原因是我们对3D笛卡尔空间中四元数的几何属性感兴趣。其他文章经常使用另一种下标,例如 ( 0 , 1 , 2 , 3 ) (0, 1, 2, 3) (0,1,2,3)或 ( 1 , i , j , k ) (1, i, j, k) (1,i,j,k),对数学解释可能更适合。】
我们大多数时候将一个四元素 Q Q Q表达为一个四维向量 q \mathbf{q} q,
q ≜ [ q w q v ] = [ q w q x q y q z ] , (7) \mathbf{q} \triangleq \left[\begin{matrix} q_w \\ \mathbf{q}_v \end{matrix}\right] = \left[\begin{matrix} q_w \\ q_x \\ q_y \\ q_z \end{matrix}\right]~,\tag{7} q≜[qwqv]=⎣⎢⎢⎡qwqxqyqz⎦⎥⎥⎤ ,(7)
它允许我们对涉及到四元数的操作使用矩阵代数。在特定的场合,我们可能会通过滥用符号“ =”来允许自己混合符号,典型的例子是实四元数和纯四元数,
一 般 : q = q w + q v = [ q w q v ] ∈ H , 实 四 元 数 : q w = [ q w 0 v ] ∈ R , 纯 四 元 数 : q v = [ 0 q v ] ∈ H p . (8) 一般:\mathbf{q} = q_w + \mathbf{q}_v = \left[\begin{matrix} q_w \\ \mathbf{q}_v \end{matrix}\right] \in \mathbb{H},~~实四元数:q_w=\left[\begin{matrix} q_w \\ \mathbf{0}_v \end{matrix}\right] \in \mathbb{R},~~纯四元数:\mathbf{q}_v=\left[\begin{matrix} 0 \\ \mathbf{q}_v \end{matrix}\right] \in \mathbb{H}_p~. \tag{8} 一般:q=qw+qv=[qwqv]∈H, 实四元数:qw=[qw0v]∈R, 纯四元数:qv=[0qv]∈Hp .(8)
1.2 四元数的主要性质
1.2.1 求和
求和很直接,
p ± q = [ p w p v ] ± [ q w q v ] = [ p w ± q w p v ± q v ] . (9) \mathbf{p}\pm\mathbf{q}= \left[\begin{matrix} p_w \\ \mathbf{p}_v \end{matrix}\right] \pm \left[\begin{matrix} q_w \\ \mathbf{q}_v \end{matrix}\right] = \left[\begin{matrix} p_w \pm q_w \\ \mathbf{p}_v \pm \mathbf{q}_v \end{matrix}\right]. \tag{9} p±q=[pwpv]±[qwqv]=[pw±qwpv±qv].(9)
通过构造,和满足交换律和结合律:
p + q = q + p (10) \mathbf{p+q} = \mathbf{q+p} \tag{10} p+q=q+p(10)
p + ( q + r ) = ( p + q ) + r . (11) \mathbf{p+(q+r) = (p+q)+r}~. \tag{11} p+(q+r)=(p+q)+r .(11)
1.2.2 乘积
四元数相乘 ⊗ \otimes ⊗需要使用原始的形式 ( 1 ) (1) (1)和四元数代数 ( 2 ) (2) (2)。将结果写成向量的形式有
p ⊗ q = [ p w q w − p x q x − p y q y − p z q z p w q x + p x q w + p y q z − p z q y p w