对于单位向量 \(u\) 以及一组标架 \((u,u_2,u_3)\). 定义 \(R_u(\theta)\) 为以 \(u\) 为转轴,转 \(\theta\) 角. 在矩阵形式即为 \[ R_u(\theta)=\left(\begin{matrix} 1\\ & R(\theta) \end{matrix}\right) \] 但更多情况下,我们希望只以标架为转轴的情况下,从一个标价过渡到另一个标架. 具体而言,对于原来的标价 \(e_1,e_2,e_3\),我们知道旋转是一个 \(\det = 1\) 的正交变换 \(T\),那么令 \(u=(Te_1,Te_2,Te_3)\),那么旋转其实将标架 \(e\) 旋转至标架 \(u\). 我们想用 \(R_{x}(\theta)\) 的合成来表达出这个旋转.

在具体使用中,有两种表示方法. 第一种是内在的描述. 我们的旋转是从“物体”的内在的,主观的角度去描述的,即所有转轴都为当前过渡到的标架中的一个轴. 而第二种是外在的描述,即转轴为 \(e_1,e_2,e_3\). 可以说明我们需要三步的轴旋转达成这个目标.

我们先看第一种内在的描述. 首先需要注意到关键在于,只有以 \(x,y\) 构成平面的的法向量 \(f\) 为转轴可以将 \(x\) 转到 \(y\).那么我们的想法是,前两步将 \(e_3\) 转到 \(u_3\),那么最后一步显然是可以转成功的. 问题是如何将 \(e_3\) 转到 \(u_3\). 我们考虑求出 \(e_3,u_3\) 平面的法向量 \(f_2\),那么以 \(f_2\) 为轴就可以将 \(e_3\) 转到 \(u_3\). 又由于 \(f_2,u_2\) 垂直于 \(e_3\) 所以第一步就是将 \(e_2\) 转至 \(f_2\). 这里的 \(f_2\) 其实就是平面 \((e_1,e_2)\)\((u_1,u_2)\) 的交.

思路清楚了,实践起来就简单了. 首先先求出 \(f_2=e_3\times u_3\). 然后取 \(\psi\) 使得 \(R_{e_3}(\psi)e_2=f_2\). 然后取 \(\theta\) 使得 \(R_{f_2}(\theta)e_3=u_3\). 最后取 \(\varphi\) 使得 \(R_{u_3}(\varphi)e_1=u_1\). 那么旋转就是这三者的合成. 我们称旋转由 Euler 角 \((\varphi,\theta,\psi)\) 描述. 即 \(T=R_{u_3}(\varphi)R_{f_2}(\theta)R_{e_3}(\psi)\).

然后我们再看看外在版本. 直接给出式子,是 \(T=R_{e_3}(\psi)R_{e_2}(\theta)R_{e_1}(\varphi)\). 顺序刚好反了过来.

引理:令 \(\epsilon=\det P\),则 \(R_{Pu}(\epsilon\theta)=PR_u(\theta)P^{-1}\). 即以 \(Pu\) 为转轴的旋转,相当于先换基为 \(P\),再以 \(u\) 为转轴的旋转. 感性上很容易理解.

用了上述引理之后证明其实也就是暴力展开了. 首先 \(f_2=R_{e_3}(\psi)e_2\),故 \(R_{f_2(\theta)}=R_{e_3}(\psi)R_{e_2}(\theta)R^{-1}_{e_3}(\psi)\). 而 \(u_3=R_{f_2}(\theta)e_3=R_{e_3}(\psi)R_{e_2}(\theta)e_3\)(绕 \(e_3\) 转显然不会改变 \(e_3\)),于是 \(R_{u_3}(\varphi)=R_{e_3}(\psi)R_{e_2}(\theta)R_{e_3}(\varphi)R_{e_3}(\theta)^{-1}R_{e_3}(\psi)^{-1}\),然后代入即证.

万向节锁:以某些方式在局部上连续地变动欧拉角,使得旋转不变. 例如 \(\theta=0\) 时旋转只与 \(\varphi+\psi\) 有关.


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