贡献者: 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 相关页面。