\(\mathbb H\) 为带有基 \(1,i,j,k\)\(\mathbb R-\)向量空间. 并携带有运算

  • \(\forall x\)\(1x=x1=x\).
  • \(i^2=j^2=k^2=-1\).
  • \(ij=-ji=k\)\(jk=-kj=i\)\(ki=-ik=j\).

可以发现四元数的加法和乘法成环,但不交换.

\(\mathbb C\) 可以自然作为子环嵌入四元数. 并且四元数也可以表示成 \(\mathbb C-\)向量空间. 具体而言就是将 \(q\in \mathbb H\) 表示为 \(z+jw\),其中 \(z,w\in \mathbb C\).

对于四元数,定义其共轭为 \(a-bi-cj-dk\),迹为 \(q+\bar q=2a\),范数 \(N(q)=q\bar q=a^2+b^2+c^2+d^2\).

容易发现 \(\mathbb H\setminus\{0\}\) 是除环,并且 \(q^{-1}=N(q)^{-1}\bar q\).

定义 \(\mathbb H_0\) 为满足 \(Tr(q)=0\),即 \(a=0\)\(\mathbb H\) 的子空间,则可以将 \(\mathbb R^3\) 等同于 \(\mathbb H_0\).

对于 \(x\in \mathbb H^{\times}\),容易发现 \(q\to xqx^{-1}\)\(\mathbb H_0\) 的自同构,记为 \(R_x\). 显然 \(\det R_x=1\). 所以我们可以将三维空间的旋转和 \(\mathbb H^{\times}\) 做一个对应. 并且 \(R_xR_y=R_{xy}\)

实际上,任意三维空间的旋转 \(T\),都能找到 \(x\in \mathbb H^{\times}\) 使得 \(N(x)=1\)\(T=R_x\)\(x\) 精确到乘以 \(\pm 1\) 是唯一的.

先看存在性. 考虑回到欧拉角. 如果我们能证明绕轴旋转等价于 \(R_x\) 那么通过上面的 \(R_xR_y=R_{xy}\) 就能说明 \(T=R_{x'}\). 对于任意 \(N(x)=1\)\(x=\cos\theta+\sin \theta i\). 于是我们就能知道 \(xjx^{-1}=\cos2\theta j +\sin 2\theta k\),而 \(xkx^{-1}=-\sin 2\theta j+\cos2\theta k\)\(xix^{-1}=i\). 所以写成矩阵的形式就发现是一样的. 然后就好了.

然后看唯一性. \(R_x=R_y\) 等价于 \(R_{xy^{-1}}=id\). 下面只需要证明 \(R_x=id\) 等价于 \(x=\pm 1\). 而 \(R_x=id\) 蕴含了 \(xi=ix\)\(xj=jx\)\(zj=jz\). 故 \(x=\pm 1\).

于是考虑以 \(u\) 为转轴(\(u\in \mathbb H^{\times}\)),\(R_{u}(\theta)\) 所对应的 \(R_x\),满足 \(x=\cos {\frac{\theta}{2}} +u\sin \frac{\theta}{2}\). 这也是一个有若干用处的结果,因为这既避免了旋转矩阵的复杂性,又解决了欧拉角的万向锁问题.

下面给出用四元数解决 Rodrigues 旋转公式的优雅解法.


参考讲义:李文威-代数学讲义