ロドリゲスの回転公式

三次元回転における**ロドリゲの回転公式**（）とは、ベクトル空間において、与えられた回転軸に対して回転を行うための効率的なアルゴリズムを指す。またこの公式は、任意の3つの基底ベクトルに対する、 群上の回転行列を用いた変換の軸角度表現を与えている。つまり、この式は （ のリー代数）から  への指数写像を、行列の指数関数を計算せずに与えるアルゴリズムとなっている。

## 性質
100px|right
 上の回転軸を表す単位ベクトル , 右手の法則に基づく回転角度  に対して、ロドリゲスの回転公式は次の様に与えられる。

:\begin{align}
R_\boldsymbol{n} (\theta )
&= e^{\theta K(\boldsymbol{n})} \\
&= E + (\sin\theta) K(\boldsymbol{n}) + (1 - \cos\theta) K^2(\boldsymbol{n}) \\
&= \begin{bmatrix}
n_x^2 \left( 1 - \cos \theta \right) + \cos \theta & n_x n_y \left( 1 - \cos \theta \right) - n_z \sin \theta & n_z n_x \left( 1 - \cos \theta \right) + n_y \sin \theta \\
n_x n_y \left( 1 - \cos \theta \right) + n_z \sin \theta & n_y^2 \left( 1 - \cos \theta \right) + \cos \theta & n_y n_z \left( 1 - \cos \theta \right) - n_x \sin \theta \\
n_z n_x \left( 1 - \cos \theta \right) - n_y \sin \theta & n_y n_z \left( 1 - \cos \theta \right) + n_x \sin \theta & n_z^2 \left( 1 - \cos \theta \right) + \cos \theta \\
\end{bmatrix}
\end{align}

ここで  は3次単位行列であり、
:\textstyle K(\boldsymbol{n}) = \begin{bmatrix}
 0 & -n_z & n_y \\
 n_z & 0 & -n_x \\
 -n_y & n_x & 0
\end{bmatrix}
は  との外積に対応する交代行列（歪対称行列、或いは反対称行列とも呼ばれる）である。

また、単位軸ベクトル  を  と表した場合、上記の行列  の  成分はクロネッカーのデルタ及び符号関数を用いて以下のように表すことも出来る。

:
\textstyle n_i n_j (1-\cos\theta) + \delta_{ij}\cos\theta + \{ \sgn(i-j) \} \left[ \sum_{k=1}^3\sgn \{ (i-k)(j-k) \} n_k \right] \sin\theta


なお、上記の添え字  は結局、集合  から集合  を取り除いた残り1つの元に当たるもののみが残るから、差集合の考え方を用いて以下のように表しても良い。

:
\textstyle n_i n_j (1-\cos\theta) + \delta_{ij}\cos\theta + \{ \sgn(j-i) \} (-1)^{i+j} n_{k} \sin\theta \qquad (k\in \{ 1,2,3 \} \setminus \{ i,j \})


他の表現として、回転面を表すゼロでないベクトル  に対する軸ベクトルとしてクロス積  を用いることができる。このとき、回転角  を  から離れた、もしくは  に向けた角として表せる。2つのベクトルがなす角を  とすると、 と同様の意味を  に与えることができる（ただし2つは必ずしも一致しない）。このとき、単位軸ベクトル  は次のように書ける。

:\boldsymbol{n} = \frac{\boldsymbol{a} \times \boldsymbol{b}}{\| \boldsymbol{a} \times \boldsymbol{b} \|}

もし回転面を表すベクトルが事前に分かっている場合は、この形式を用いる。物理学における例として、トーマスの歳差運動が挙げられる。

## ベクトル表現との対応関係
 上のベクトル  を、単位ベクトル  を軸に、右手の法則に基づく回転角度  だけ回転させた結果得られたベクトルを  とすると、 は以下のように表される。

:
\begin{align}
\boldsymbol{s} &= (\cos\theta)\boldsymbol{r} + (1-\cos\theta)(\boldsymbol{n}\cdot\boldsymbol{r})\boldsymbol{n} + (\sin\theta)(\boldsymbol{n}\times\boldsymbol{r}) \\
&= (\cos\theta)\boldsymbol{r} + (1-\cos\theta)\{ \boldsymbol{n}\times(\boldsymbol{n}\times\boldsymbol{r})+\boldsymbol{r} \} + (\sin\theta)(\boldsymbol{n}\times\boldsymbol{r}) \\
&= \boldsymbol{r} + (\sin\theta)(\boldsymbol{n}\times\boldsymbol{r}) + (1-\cos\theta)\{ \boldsymbol{n}\times(\boldsymbol{n}\times\boldsymbol{r}) \}
\end{align}


なお、2番目の等号はベクトル三重積及び  が単位ベクトルであることを用いた。

ここで、 及び  を成分表示（列ベクトル表示）し、正方行列と  の積の形に変形すると、

:
\begin{align}
\boldsymbol{n}\times\boldsymbol{r} &= \begin{bmatrix}
n_y r_z - n_z r_y \\
n_z r_x - n_x r_z \\
n_x r_y - n_y r_x
\end{bmatrix} \\
&= \begin{bmatrix}
 0 & -n_z & n_y \\
 n_z & 0 & -n_x \\
 -n_y & n_x & 0
\end{bmatrix}
\begin{bmatrix}
r_x \\
r_y \\
r_z
\end{bmatrix} \\
&= K(\boldsymbol{n})\boldsymbol{r}
\end{align}


:
\begin{align}
\boldsymbol{n}\times(\boldsymbol{n}\times\boldsymbol{r}) &= (\boldsymbol{n}\cdot\boldsymbol{r})\boldsymbol{n}-\boldsymbol{r} \\
&= \begin{bmatrix}
(n_x r_x + n_y r_y + n_z r_z)n_x - r_x \\
(n_x r_x + n_y r_y + n_z r_z)n_y - r_y \\
(n_x r_x + n_y r_y + n_z r_z)n_z - r_z
\end{bmatrix} \\
&= \begin{bmatrix}
n_x^2-1 & n_x n_y & n_z n_x \\
n_x n_y & n_y^2-1 & n_y n_z \\
n_z n_x & n_y n_z & n_z^2-1
\end{bmatrix}
\begin{bmatrix}
r_x \\
r_y \\
r_z
\end{bmatrix} \\
&= \begin{bmatrix}
-n_y^2-n_z^2 & n_x n_y & n_z n_x \\
n_x n_y & -n_z^2-n_x^2 & n_y n_z \\
n_z n_x & n_y n_z & -n_x^2-n_y^2
\end{bmatrix}
\begin{bmatrix}
r_x \\
r_y \\
r_z
\end{bmatrix} \\
&= \begin{bmatrix}
 0 & -n_z & n_y \\
 n_z & 0 & -n_x \\
 -n_y & n_x & 0
\end{bmatrix}^2
\begin{bmatrix}
r_x \\
r_y \\
r_z
\end{bmatrix} \\
&= K^2(\boldsymbol{n})\boldsymbol{r}
\end{align}


であるから、以下に示す通り、本節のベクトル表現は前節の行列表現と同等であることが分かる。

:
\begin{align}
\boldsymbol{s} &= \boldsymbol{r} + (\sin\theta)(\boldsymbol{n}\times\boldsymbol{r}) + (1-\cos\theta)\{ \boldsymbol{n}\times(\boldsymbol{n}\times\boldsymbol{r}) \} \\
&= \boldsymbol{r} + (\sin\theta)K(\boldsymbol{n})\boldsymbol{r} + (1-\cos\theta)K^2(\boldsymbol{n})\boldsymbol{r} \\
&= \{ E + (\sin\theta)K(\boldsymbol{n}) + (1-\cos\theta)K^2(\boldsymbol{n}) \}\boldsymbol{r}
\end{align}


## 脚注

## 外部リンク
*