1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3次元の回転行列の関連導出まとめ

1
Last updated at Posted at 2025-12-10

特定の回転軸方向ベクトルと回転角の3次元の回転を表す行列

単位ベクトル$\boldsymbol{u}$に平行な$\mathbb{R}^3$の原点を通る直線を回転軸とする回転角$\theta$の回転を表す行列$R \in \mathrm{SO}(3)$を$\boldsymbol{u}, \theta$から計算する。回転角$\theta$の符号は、$\boldsymbol{u}$の方向に対して右ネジの向きを正とする。$\theta=0$、つまり回転しない行列は単位行列$I_3$であり、このケースを除いて$0 \lt \theta \le \pi$とする。$\pi \lt \theta \lt 2\pi$になる回転は回転軸方向を表すベクトルを$-\boldsymbol{u}$として、$2\pi - \theta$を回転角とする。$\theta = \pi$の場合は、回転軸方向のベクトルが$\boldsymbol{u}, -\boldsymbol{u}$のどちらも同じ回転を表すことに注意。
$\boldsymbol{v} \in \mathbb{R}^3$を任意のベクトルとする。このベクトルに対し、$\boldsymbol{u}$を回転軸方向のベクトル、$\theta$を回転角とする回転を施した結果のベクトルを$\boldsymbol{v}' = R \boldsymbol{v}$とする。

まず、$\boldsymbol{v}$と$\boldsymbol{u}$が一次独立である場合を考える。
$\boldsymbol{u}$に直交するベクトル空間へ$\boldsymbol{v}$を射影して大きさ1に正規化したベクトルを$\boldsymbol{e}_1$とすると、

\begin{eqnarray}
\boldsymbol{e}_1 &=& \frac{1}{\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v}) ^2}}(\boldsymbol{v} - (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u}) \\
\boldsymbol{v} &=& (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} +\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v}) ^2}\boldsymbol{e}_1
\end{eqnarray}

となる。$\boldsymbol{u}$と$\boldsymbol{e}_1$は直交する単位ベクトルなので、$\boldsymbol{e}_2 = \boldsymbol{u} \times \boldsymbol{e}_1$とすると、$\boldsymbol{u}, \boldsymbol{e}_1, \boldsymbol{e}_2$は$\mathbb{R}^3$正規直交基底になる。$\boldsymbol{e}_2$は$\boldsymbol{u}$を回転軸方向のベクトルとして、$\boldsymbol{e}_1$を$\frac{\pi}{2}$回転させたベクトルになる。$\boldsymbol{e}_2$は整理すると、

\boldsymbol{e}_2 = \frac{1}{\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v})^2}} (\boldsymbol{u} \times \boldsymbol{v})

である。
$\boldsymbol{v}'$は$\boldsymbol{v}$に$\boldsymbol{u}$を回転軸方向のベクトル、$\theta$を回転角とする回転を施したベクトルなので、

\boldsymbol{v}' = (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v})^2}(\cos \theta \boldsymbol{e}_1 + \sin \theta \boldsymbol{e}_2)

となる。これを整理して、

\begin{eqnarray}
\boldsymbol{v}' &=& (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \cos \theta(\boldsymbol{v} - (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u}) + \sin \theta (\boldsymbol{u} \times \boldsymbol{v}) \\
&=& \cos \theta \boldsymbol{v} + (1 - \cos \theta) (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \sin \theta (\boldsymbol{u} \times \boldsymbol{v})
\end{eqnarray}

となる。これを$\boldsymbol{v}' = R \boldsymbol{v}$の形に変形する。
$\boldsymbol{u}$を歪対称行列化した行列を

\boldsymbol{u}^{\land} = \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix}

とすると、

(\boldsymbol{u}^{\land} )\boldsymbol{v} = \begin{bmatrix} u_2 v_3 - u_3 v_2 \\ u_3 v_1 - u_1 v_3 \\ u_1 v_2 - u_2 v_1 \end{bmatrix} = \boldsymbol{u} \times \boldsymbol{v}

となり、外積を$\boldsymbol{u}^{\land}$と$\boldsymbol{v}$の行列積で表現できる。
また、

\begin{eqnarray}
(\boldsymbol{u}^{\land})^2 &=& \begin{bmatrix} -u_2^2 -u_3^2 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & -u_1^2 -u_3^2 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & -u_1^2 -u_2^2 \end{bmatrix} \\
&=& \begin{bmatrix} u_1^2 - 1 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & u_2^2 - 1 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & u_3^2 - 1 \end{bmatrix} \\
&=& \boldsymbol{u} \boldsymbol{u}^T - I_3
\end{eqnarray}

なので、

(\boldsymbol{u}^{\land})^2 \boldsymbol{v} = (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} - \boldsymbol{v}

となる。これを変形して、

(\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} = \{(\boldsymbol{u}^{\land})^2 + I_3\} \boldsymbol{v}

であるから、

\begin{eqnarray}
\boldsymbol{v}' &=& \cos \theta \boldsymbol{v} + (1 - \cos \theta) \{(\boldsymbol{u}^{\land})^2 + I_3\} \boldsymbol{v} + \sin \theta (\boldsymbol{u}^{\land} )\boldsymbol{v} \\
&=& \left(I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2 \right) \boldsymbol{v}
\end{eqnarray}

となる。したがって、回転行列$R$は

R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2

となる。
$\boldsymbol{v}$と$\boldsymbol{u}$が一次独立ではない場合、$\boldsymbol{v}$は回転軸上にあるので$R$による回転で変化しないことが要請される。この場合は、$\boldsymbol{u} \times \boldsymbol{v} = \boldsymbol{0}$なので、$(\boldsymbol{u}^{\land}) \boldsymbol{v} = \boldsymbol{0}$となるから、

\left(I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2 \right) \boldsymbol{v} = \boldsymbol{v}

となり、$I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2$による変換で$\boldsymbol{v}$は変化しない。つまり、

R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2

の左からの積は$\boldsymbol{u}$を回転軸方向の単位ベクトル、$\theta$を回転角とする回転を表す。

SO(3)の回転行列から回転軸方向と回転角を計算する

固有値・固有ベクトルを使う方法

\mathrm{SO}(3) = \{R \in \mathbb{R}^{3 \times 3}| R^T R = I_3, \det R=1\}

の要素の行列$R \in \mathrm{SO}(3)$の固有値・固有ベクトルを考える。$R \in \mathrm{SO}(3)$であれば、任意の$\boldsymbol{v} \in \mathbb{R}^3$に対し、

\|R\boldsymbol{v}\|^2 =(R \boldsymbol{v})^T (R \boldsymbol{v}) = \boldsymbol{v}^T R^T R \boldsymbol{v} = \boldsymbol{v}^T \boldsymbol{v} = \|\boldsymbol{v}\|^2

となる。つまり、$\|R\boldsymbol{v}\| = \|\boldsymbol{v}\|$である。

$R$の固有値の1つを$\lambda \in \mathbb{C}$、その$\boldsymbol{0}$でない固有ベクトルを$\boldsymbol{u} \in \mathbb{C}^3$とすると、

R \boldsymbol{u} = \lambda \boldsymbol{u}

であり、両辺の大きさをとって、

\|R \boldsymbol{u}\| = |\lambda| \|\boldsymbol{u}\|

となる。$\|R\boldsymbol{v}\| = \|\boldsymbol{v}\|$なので、$|\lambda|=1$を得る。
$R$は実数の行列なので、固有方程式

\det (R - \lambda I_3) = 0

は$\lambda$に関する実係数の三次方程式である。そのため解は実数解3つ、あるいは実数解1つと共役な複素数解2つに限られる。$|\lambda|=1$の条件から、実数解3つの場合はその解は重解含め$\pm1$に限られる。$\det R=1$なので、全ての固有値の積は$1$であるから、実数解3つの場合は$1$の三重解か、$-1$の二重解と$1$が解になる。

固有方程式の解が$1$の三重解の場合、$R=I_3$である。なぜそうなるかというと、任意の直交行列は対角化可能なので、固有方程式の解が$1$の三重解であれば固有値$1$の固有空間は$\mathbb{R}^3$全体である。この場合、$\mathbb{R}^3$の任意のベクトルへの$R$の行列積は恒等変換である。つまり、$R = I_3$。このケースは回転軸のベクトルが任意で、回転角が$0$である。

固有方程式の解が$-1$の二重解と$1$の場合、これは回転角が$\pi$のケースである。なぜそうなるか簡単に説明する。固有値$1$の大きさ$1$の固有ベクトルを$\boldsymbol{v}$とする。また、固有値$-1$の$\boldsymbol{0}$でない固有ベクトルを任意にとって$\boldsymbol{u}$とすると、$R^T R = I_3$を用いて

\begin{eqnarray}
\boldsymbol{v}^T \boldsymbol{u} &=& \boldsymbol{v} R^T R \boldsymbol{u} \\
&=& (R \boldsymbol{v})^T (R \boldsymbol{u}) \\
&=& \boldsymbol{v}^T (- \boldsymbol{u}) \\
&=& -\boldsymbol{v}^T \boldsymbol{u}
\end{eqnarray}

となる。つまり、$\boldsymbol{v}^T \boldsymbol{u} = 0$である。つまり、固有値$-1$の固有ベクトルは$\boldsymbol{v}$に直交する。
任意の直交行列は対角化可能なので、固有値$-1$の固有ベクトル空間の次元は2である。固有値$-1$の固有ベクトル空間から、直交する2つの単位ベクトルをとることができ、それを$\boldsymbol{u}_1, \boldsymbol{u}_2$とする。$\boldsymbol{v}, \boldsymbol{u}_1, \boldsymbol{u}_2$は$\mathbb{R}^3$の正規直交基底となる。$\mathbb{R}^3$の任意のベクトルを1つとって$\boldsymbol{x}$とすると、$x_v, x_1, x_2 \in \mathbb{R}$が唯一つ存在し、

\boldsymbol{x} = x_v \boldsymbol{v} + x_1 \boldsymbol{u}_1 + x_2 \boldsymbol{u}_2 = \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix} 

と表せる。この時、

\begin{eqnarray}
R \boldsymbol{x} &=& x_v R \boldsymbol{v} + x_1 R \boldsymbol{u}_1 + x_2 R \boldsymbol{u}_2 \\
&=& x_v \boldsymbol{v} - x_1 \boldsymbol{u}_1 - x_2 \boldsymbol{u}_2 \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & -1 \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix} \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \pi & -\sin \pi \\ 0 & \sin \pi & \cos \pi \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix}
\end{eqnarray}

と変形できる。つまり、$R$は原点を通る$\boldsymbol{v}$に平行な直線を軸に$\pi$回転させる回転行列である。回転角が$\pi$の回転は回転軸の方向のベクトル$\boldsymbol{v}, -\boldsymbol{v}$の2つが全く同じ回転を表すため区別されない。

固有方程式が実数解1つと共役な複素数解2つの場合、$|\lambda|=1$の条件から、共役な2つの複素数解を$0 \lt \theta \lt \pi$を用いて$\cos \theta \pm i \sin \theta$と表すことができる。この共役な2つの複素数解の固有値の積は

(\cos \theta + i \sin \theta) (\cos \theta - i \sin \theta) = \cos^2 \theta + \sin^2 \theta = 1

である。$\det R=1$から全ての固有値の積は$1$であるので、残り1つの実数解は必ず$1$である。(以上より、$R \in \mathrm{SO}(3)$であれば必ず固有値$1$を持つことが分かる)
固有値$\cos \theta - i \sin \theta$の$\boldsymbol{0}$でない固有ベクトルを$\boldsymbol{u}$とする。$\boldsymbol{u}$は一般に複素数ベクトルなので、その各成分の実部からなる実ベクトルを$\boldsymbol{u}_R$、虚部からなる実ベクトルを$\boldsymbol{u}_I$とする。

\boldsymbol{u} = \boldsymbol{u}_R + i \boldsymbol{u}_I

である。左から$R$との積をとって、

\begin{eqnarray}
R \boldsymbol{u}_R + i R \boldsymbol{u}_I &=& (\cos \theta - i \sin \theta) (\boldsymbol{u}_R + i \boldsymbol{u}_I) \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) + i (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)
\end{eqnarray}

となる。両辺の実部と虚部の比較から、

\begin{eqnarray}
R \boldsymbol{u}_R &=& \cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I \\
R \boldsymbol{u}_I &=& -\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I \\
\end{eqnarray}

を得る。
次に、固有値$1$の大きさ$1$の固有ベクトルを$\boldsymbol{v}$として、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$が互いに直交すること、および$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\|$を示す。まずは$R \boldsymbol{v} = \boldsymbol{v}, R^T \boldsymbol{v}=\boldsymbol{v}$を用いて、

\begin{eqnarray}
\boldsymbol{v}^T \boldsymbol{u}_R &=& (R^T \boldsymbol{v})^T \boldsymbol{u}_R = \boldsymbol{v}^T (R \boldsymbol{u}_R) = \boldsymbol{v}^T(\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) \\
\boldsymbol{v}^T \boldsymbol{u}_I &=& (R^T \boldsymbol{v})^T \boldsymbol{u}_I = \boldsymbol{v}^T (R \boldsymbol{u}_I) = \boldsymbol{v}^T(-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)
\end{eqnarray}

なので、

\begin{bmatrix} 1 - \cos \theta & - \sin \theta \\ \sin \theta & 1 - \cos \theta \end{bmatrix} \begin{bmatrix} \boldsymbol{v}^T \boldsymbol{u}_R \\ \boldsymbol{v}^T \boldsymbol{u}_I \end{bmatrix} = \begin{bmatrix} 0\\ 0 \end{bmatrix}

であるが、$0 < \theta < \pi$より、

\det \left( \begin{bmatrix} 1 - \cos \theta & - \sin \theta \\  \sin \theta & 1 - \cos \theta \end{bmatrix} \right) = 2 (1 - \cos \theta) > 0

なので、$\boldsymbol{v}^T \boldsymbol{u}_R = \boldsymbol{v}^T \boldsymbol{u}_I = 0$が従う。
さらに、$R^T R = I_3$を用いて、

\begin{eqnarray}
\|\boldsymbol{u}_R\|^2 &=& \boldsymbol{u}_R^T \boldsymbol{u}_R \\
&=& (R \boldsymbol{u}_R )^T R \boldsymbol{u}_R \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I)^T (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) \\
&=& \cos^2 \theta \|\boldsymbol{u}_R\|^2 + \sin^2 \theta \|\boldsymbol{u}_I\|^2 + 2 \sin \theta \cos \theta \boldsymbol{u}_R^T \boldsymbol{u}_I \\
\|\boldsymbol{u}_I\|^2 &=& \boldsymbol{u}_I^T \boldsymbol{u}_I \\
&=& (R \boldsymbol{u}_I )^T R \boldsymbol{u}_I \\
&=& (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)^T (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& \sin^2 \theta \|\boldsymbol{u}_R\|^2 + \cos^2 \theta \|\boldsymbol{u}_I\|^2 - 2 \sin \theta \cos \theta \boldsymbol{u}_R^T \boldsymbol{u}_I \\
\end{eqnarray}

であり、$0 < \theta < \pi$より$\sin \theta > 0$なので、整理すると2式は同じ式

\|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 = 2\frac{\cos \theta}{\sin \theta} \boldsymbol{u}_R^T \boldsymbol{u}_I 

に帰着する。これを用いて、

\begin{eqnarray}
\boldsymbol{u}_R^T \boldsymbol{u}_I &=& \boldsymbol{u}_R^T R^T R \boldsymbol{u}_I \\
&=& (R \boldsymbol{u}_R )^T R \boldsymbol{u}_I \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I)^T (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& - \sin \theta \cos \theta \|\boldsymbol{u}_R\|^2 + \sin \theta \cos \theta \|\boldsymbol{u}_I\|^2 + (\cos^2 \theta - \sin^2 \theta) \boldsymbol{u}_R^T \boldsymbol{u}_I \\
&=& -\sin \theta \cos \theta \left( \|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 \right) + (\cos^2 \theta - \sin^2 \theta) \boldsymbol{u}_R^T \boldsymbol{u}_I \\
&=& - \boldsymbol{u}_R^T \boldsymbol{u}_I
\end{eqnarray}

となるので、$\boldsymbol{u}_R^T \boldsymbol{u}_I = 0$が従う。さらに、

\|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 = 2\frac{\cos \theta}{\sin \theta} \boldsymbol{u}_R^T \boldsymbol{u}_I 

だったので、$\|\boldsymbol{u}_R\|^2 = \|\boldsymbol{u}_I\|^2$になる。
以上の議論により、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$は互いに直交し、$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\|$であるから、固有値$\cos \theta + i \sin \theta$の固有ベクトル

\boldsymbol{u} = \boldsymbol{u}_R + i \boldsymbol{u}_I

を$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\| = 1$となるようにとれば、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$は$\mathbb{R}^3$の正規直交基底となる。

任意のベクトル$\boldsymbol{x} \in \mathbb{R}^3$に対して、$x_v, x_R, x_I \in \mathbb{R}$が唯一つ存在して、

\boldsymbol{x} = x_v \boldsymbol{v} + x_R \boldsymbol{u}_R + x_I \boldsymbol{u}_I = \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_R & \boldsymbol{u}_I \end{bmatrix} \begin{bmatrix} x_v \\ x_R \\ x_I \end{bmatrix} 

と表すことができる。この時、

\begin{eqnarray}
R \boldsymbol{x} &=& x_v R \boldsymbol{v} + x_R R \boldsymbol{u}_R + x_I R \boldsymbol{u}_I \\
&=& x_v \boldsymbol{v} + x_R (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) + x_I (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& x_v \boldsymbol{v} + (x_R \cos \theta - x_I \sin \theta) \boldsymbol{u}_R + (x_R \sin \theta + x_I \cos \theta) \boldsymbol{u}_I \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_R & \boldsymbol{u}_I \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & - \sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x_v \\ x_R \\ x_I \end{bmatrix} 
\end{eqnarray}

となる。これは、$\boldsymbol{v}$に直交する$\boldsymbol{u}_R, \boldsymbol{u}_I$からなる平面において、原点を通り$\boldsymbol{v}$に平行な直線を軸に$\boldsymbol{u}_R$をx軸正の方向、$\boldsymbol{u}_I$をy軸正の方向とするような向きの回転角$\theta$の回転を表している。$\boldsymbol{v}$は固有値$1$の大きさ$1$の固有ベクトルのため、$\pm1$倍の自由度がある。$\boldsymbol{v}$が回転軸の方向を表すベクトルとなるためには、回転角$\theta$が正の回転の方向が、回転軸$\boldsymbol{v}$に対して右ネジの方向である必要がある。この場合、$\boldsymbol{v} = \boldsymbol{u}_R \times \boldsymbol{u}_I$となるようにとればよい。

まとめると、

  • $R$の固有値が$1$の三重解の場合、$R$は恒等変換$R=I_3$(回転角$0$)
  • $R$の固有値が$1$と$-1$の二重解の場合、$R$は固有値$1$の固有ベクトルを回転軸とする回転角$\pi$の回転行列
  • $R$の固有値が$1$と$\cos \theta \pm i \sin \theta$の場合$(0 < \theta < \pi)$、固有値$1$の固有ベクトルを回転軸とする回転角$\pi$の回転で、回転軸の方向を表すベクトルは、固有値$\cos \theta - i \sin \theta$の固有ベクトルの実部を$\boldsymbol{u}_R$、虚部を$\boldsymbol{u}_I$とした場合に$\boldsymbol{u}_R \times \boldsymbol{u}_I$と同じ方向にとる

Rの成分から直接求める方法

固有値・固有ベクトルを計算しなくても、$\boldsymbol{u}$を回転軸方向の単位ベクトル、$\theta$を回転角とする回転を表す行列が$R$の場合、

R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta) (\boldsymbol{u}^{\land})^2

であることから、直接計算することもできる。

\begin{eqnarray}
\boldsymbol{u}^{\land} &=& \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix} \\
(\boldsymbol{u}^{\land})^2 &=& \begin{bmatrix} u_1^2 - 1 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & u_2^2 - 1 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & u_3^2 - 1 \end{bmatrix}
\end{eqnarray}

であるから、

R = \begin{bmatrix} 
\cos \theta + (1 - \cos \theta) u_1^2 & - \sin \theta u_3 + (1 - \cos \theta) u_1 u_2 & \sin \theta u_2 + (1 - \cos \theta)u_1 u_3 \\ 
\sin \theta u_3 + (1 - \cos \theta)  u_1 u_2 & \cos \theta + (1 - \cos \theta) u_2^2 & - \sin \theta u_1 + (1 - \cos \theta)  u_2 u_3 \\ 
- \sin \theta u_2 + (1 - \cos \theta) u_1 u_3 & \sin \theta u_1 + (1 - \cos \theta) u_2 u_3 & \cos \theta + (1 - \cos \theta) u_3^2
\end{bmatrix}

である。トレースをとると、

\mathrm{tr}(R) = 2 \cos \theta + 1

となる。つまり、

\theta = \arccos \left(\frac{\mathrm{tr}(R) - 1}{2}\right)

で$\theta$を得られる。また、

\frac{R - R^T}{2} = \sin \theta \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix}

となので、

\boldsymbol{u} = \begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix} = \frac{1}{2 \sin \theta} \begin{bmatrix} R_{3,2} - R_{2,3} \\ R_{1,3} - R_{3,1} \\ R_{2,1} - R_{1,2} \end{bmatrix}

を得る。ただし、これが使えるのは$\sin \theta > 0$、つまり$0 < \theta < \pi$の場合に限られる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?