罗德里格旋转公式、定轴旋转矩阵

                     

贡献者: addis

预备知识 三维旋转矩阵,圆周运动的速度矢量叉乘

  1三维空间中,某点 $ \boldsymbol{\mathbf{r}} =(x,y,z) ^{\mathrm{T}} $ 以单位矢量 $ \hat{\boldsymbol{\mathbf{A}}} =(A_x, A_y, A_z) ^{\mathrm{T}} $ 为轴按右手定则转动 $\theta$ 角的得到的点 $ \boldsymbol{\mathbf{r}} '=(x',y',z') ^{\mathrm{T}} $ 可用罗德里格斯旋转公式(Rodrigues' rotation formula)计算:

\begin{equation} \boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{r}} \cos\theta + \hat{\boldsymbol{\mathbf{A}}} \boldsymbol\times \boldsymbol{\mathbf{r}} \sin\theta + \hat{\boldsymbol{\mathbf{A}}} ( \hat{\boldsymbol{\mathbf{A}}} \boldsymbol\cdot \boldsymbol{\mathbf{r}} ) (1 - \cos\theta)~, \end{equation}
其中 $ \boldsymbol\cdot $ 表示点乘。令该旋转的三维旋转矩阵 $ \boldsymbol{\mathbf{R}} _\theta$,则
\begin{equation} \boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{R}} _\theta \boldsymbol{\mathbf{r}} ~. \end{equation}
式 1 可得
\begin{equation} \boldsymbol{\mathbf{R}} _\theta = \begin{pmatrix} a A_x^2 + c & a A_x A_y - s A_z & a A_x A_z + s A_y\\ a A_y A_x + s A_z & a A_y^2 + c & a A_y A_z - s A_x\\ a A_z A_x - s A_y & a A_z A_y + s A_x & a A_z^2 + c \end{pmatrix}~.\end{equation}
其中
\begin{equation} c = \cos\theta ~,\qquad s = \sin\theta~, \qquad a = 1 - \cos\theta~. \end{equation}
另外也可以用四元数表示该矩阵。

1. 推导

   推导的思路是用 $ \hat{\boldsymbol{\mathbf{A}}} $ , $ \boldsymbol{\mathbf{r}} $ 和 $\theta $ 三个已知量经过数乘,内积叉乘三种运算,表示出旋转后的矢量 $ \boldsymbol{\mathbf{r}} '$,再拆成三个分量,即可得到线性变换,进而写出矩阵。注意该思路与推导平面旋转矩阵的思路不一样。

图
图 1:定轴旋转矩阵的推导

   如图,$ \boldsymbol{\mathbf{r}} $ 绕单位矢量 $ \hat{\boldsymbol{\mathbf{A}}} $ 旋转 $\theta$ 角后得到 $ \boldsymbol{\mathbf{r}} '$。 $ \boldsymbol{\mathbf{r}} $ 在 $ \hat{\boldsymbol{\mathbf{A}}} $ 方向投影得到的矢量为

\begin{equation} \boldsymbol{\mathbf{r}} _3 = ( \hat{\boldsymbol{\mathbf{A}}} \boldsymbol\cdot \boldsymbol{\mathbf{r}} ) \hat{\boldsymbol{\mathbf{A}}} ~, \end{equation}
在与 $ \hat{\boldsymbol{\mathbf{A}}} $ 垂直方向的分量为
\begin{equation} \boldsymbol{\mathbf{r}} _1 = \boldsymbol{\mathbf{r}} - \boldsymbol{\mathbf{r}} _3~. \end{equation}
为了构成一组正交基底,令
\begin{equation} \boldsymbol{\mathbf{r}} _2 = \hat{\boldsymbol{\mathbf{A}}} \boldsymbol\times \boldsymbol{\mathbf{r}} _1~, \end{equation}
则 $ \boldsymbol{\mathbf{r}} _2$ 相当于 $ \boldsymbol{\mathbf{r}} _1$ 绕 $ \hat{\boldsymbol{\mathbf{A}}} $ 旋转 $90^\circ$。现在有了正交的 $ \boldsymbol{\mathbf{r}} _1$ , $ \boldsymbol{\mathbf{r}} _2$ 就可以表示出 $ \boldsymbol{\mathbf{r}} _1$ 绕 $ \hat{\boldsymbol{\mathbf{A}}} $ 旋转 $\theta$ 角后的结果
\begin{equation} \boldsymbol{\mathbf{r}} ' - \boldsymbol{\mathbf{r}} _3 = \boldsymbol{\mathbf{r}} _1\cos \theta + \boldsymbol{\mathbf{r}} _2\sin \theta~, \end{equation}
\begin{equation} \boldsymbol{\mathbf{r}} ' = \boldsymbol{\mathbf{r}} _1\cos \theta + \boldsymbol{\mathbf{r}} _2\sin \theta + \boldsymbol{\mathbf{r}} _3~. \end{equation}
式 5 式 6 式 7 代入式 9 ,即可求出式 1 。把结果写成分量的形式,化简可得到式 2

2. 由旋转矩阵推导出匀速圆周运动的线速度

   我们可以用旋转矩阵得到 $ \boldsymbol{\mathbf{v}} = \boldsymbol{\mathbf{\omega}} \boldsymbol\times \boldsymbol{\mathbf{r}} $(式 5 ),这也验证了旋转矩阵的正确性。

   在无穷小的时间 $t$ 内,点 $P$ 绕轴转过 $\theta$ 角,则 $\theta = \omega t \to 0$,此时有 $\sin\theta \to \theta $ 和 $\cos\theta \to 1$。旋转矩阵变为

\begin{equation} \boldsymbol{\mathbf{R}} _\theta = \begin{pmatrix} 1 & -A_z\theta & A_y \theta\\ A_z \theta & 1 & -A_x \theta\\ -A_y \theta & A_x \theta &1 \end{pmatrix}~. \end{equation}
下面 $ \boldsymbol{\mathbf{R}} _\theta$ 乘以某点的列矢量,得到变换后的坐标,再减掉变换前的坐标,得位移矢量 $ \boldsymbol{\mathbf{s}} $
\begin{equation} \begin{aligned} \boldsymbol{\mathbf{s}} &= \boldsymbol{\mathbf{v}} t\\ &= \begin{pmatrix}1 & -A_z\theta & A_y\theta\\A_z\theta & 1 & -A_x\theta\\-A_y\theta & A_x\theta & 1\end{pmatrix} \begin{pmatrix}x\\y\\z\end{pmatrix} - \boldsymbol{\mathbf{I}} \begin{pmatrix}x\\y\\z\end{pmatrix} \\ &= \theta \begin{pmatrix}0 & -A_z & A_y\\A_z & 0 & -A_x\\-A_y & A_x & 0\end{pmatrix} \begin{pmatrix}x\\y\\z\end{pmatrix} \\ &= \theta \hat{\boldsymbol{\mathbf{A}}} \boldsymbol\times \boldsymbol{\mathbf{r}} = \left( \boldsymbol{\mathbf{\omega}} t \right) \boldsymbol\times \boldsymbol{\mathbf{r}} ~. \end{aligned} \end{equation}
两边除以 $t$,得 $ \boldsymbol{\mathbf{v}} = \boldsymbol{\mathbf{\omega}} \boldsymbol\times \boldsymbol{\mathbf{r}} $。另见 “旋转矩阵的导数” 的 习题 1


1. ^ 参考 Wikipedia 相关页面

                     

© 小时科技 保留一切权利