回転行列

線型代数において、回転行列（かいてんぎょうれつ、英: rotation matrix）とは、ユークリッド空間内における原点中心の回転変換の表現行列のことである。 2次元や3次元の回転は、幾何学、物理学、コンピュータグラフィックスの分野での計算に非常によく使われている。大半の応用で扱うのはこのふたつの場合だが、一般の次元でも回転行列を定義することができる。 n 次元空間における回転行列は、実数を成分とする正方行列であって、行列式が 1 の n 次直交行列として特徴づけられる： t R = R − 1 , det R = 1. {\displaystyle {}^{t}\!R=R^{-1},\;\det R=1.} n 次元の回転行列の全体は特殊直交群（あるいは回転群）と呼ばれる群をなす。 2次元ユークリッド空間では、原点中心の θ 回転（反時計回りを正とする）の回転行列は、以下の形で表すことができる。 R ( θ ) = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] {\displaystyle R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}} なぜならば、原点中心に θ 回転して点 (x, y) が (x ', y ') に写るとすると、図形的考察または三角関数の加法定理より、x ', y ' は以下のように表されることが分かる。 x ′ = x cos ⁡ θ − y sin ⁡ θ {\displaystyle x'=x\cos \theta -y\sin \theta } y ′ = x sin ⁡ θ + y cos ⁡ θ {\displaystyle y'=x\sin \theta +y\cos \theta } このことを行列の積で表すと、 [ x ′ y ′ ] = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] [ x y ] {\displaystyle {\begin{bmatrix}x'\\y'\end{bmatrix}}={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}} となるからである。 逆の回転は、回転角が −θ になるだけなので、 R ( − θ ) = [ cos ⁡ ( − θ ) − sin ⁡ ( − θ ) sin ⁡ ( − θ ) cos ⁡ ( − θ ) ] = [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] {\displaystyle R(-\theta )={\begin{bmatrix}\cos(-\theta )&-\sin(-\theta )\\\sin(-\theta )&\cos(-\theta )\\\end{bmatrix}}={\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \\\end{bmatrix}}} となる。 また回転行列には行列の指数関数を用いた表示 R ( θ ) = exp ⁡ ( θ [ 0 − 1 1 0 ] ) {\displaystyle R(\theta )=\exp \left(\theta {\begin{bmatrix}0&-1\\1&0\end{bmatrix}}\right)} もある。 3次元空間でのx軸、y軸、z軸周りの回転を表す回転行列は、それぞれ次の通りである： R x ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] {\displaystyle R_{x}(\theta )={\begin{bmatrix}1&0&0\\0&\cos \theta &-\sin \theta \\0&\sin \theta &\cos \theta \\\end{bmatrix}}} R y ( θ ) = [ cos ⁡ θ 0 sin ⁡ θ 0 1 0 − sin ⁡ θ 0 cos ⁡ θ ] {\displaystyle R_{y}(\theta )={\begin{bmatrix}\cos \theta &0&\sin \theta \\0&1&0\\-\sin \theta &0&\cos \theta \\\end{bmatrix}}} R z ( θ ) = [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] {\displaystyle R_{z}(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta &0\\\sin \theta &\cos \theta &0\\0&0&1\end{bmatrix}}} ここで回転の方向は、 R x {\displaystyle R_{x}} はy軸をz軸に向ける方向、 R y {\displaystyle R_{y}} はz軸をx軸に向ける方向、 R z {\displaystyle R_{z}} はx軸をy軸に向ける方向である。 一般の回転行列も、これら3つの各軸周りの回転行列 R x , R y , R z {\displaystyle R_{x},R_{y},R_{z}} の積によって得ることができる。 例えば、次の積 R z ( γ ) R x ( β ) R y ( α ) {\displaystyle R_{z}(\gamma )R_{x}(\beta )R_{y}(\alpha )} は、yxz系で表したときのオイラー角が α, β, γ であるような回転を表す。 任意の回転行列は、ある軸 n {\displaystyle \mathbf {n} } まわりの角度 θ {\displaystyle \theta } の回転という形に表示できる（オイラーの定理 (剛体) （英語版））。このような回転行列はロドリゲスの回転公式により R n ( θ ) = [ cos ⁡ θ + n x 2 ( 1 − cos ⁡ θ ) n x n y ( 1 − cos ⁡ θ ) − n z sin ⁡ θ n z n x ( 1 − cos ⁡ θ ) + n y sin ⁡ θ n x n y ( 1 − cos ⁡ θ ) + n z sin ⁡ θ cos ⁡ θ + n y 2 ( 1 − cos ⁡ θ ) n y n z ( 1 − cos ⁡ θ ) − n x sin ⁡ θ n z n x ( 1 − cos ⁡ θ ) − n y sin ⁡ θ n y n z ( 1 − cos ⁡ θ ) + n x sin ⁡ θ cos ⁡ θ + n z 2 ( 1 − cos ⁡ θ ) ] {\displaystyle R_{\mathbf {n} }(\theta )={\begin{bmatrix}\cos \theta +n_{x}^{2}\left(1-\cos \theta \right)&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 &\cos \theta +n_{y}^{2}\left(1-\cos \theta \right)&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 &\cos \theta +n_{z}^{2}\left(1-\cos \theta \right)\\\end{bmatrix}}} と表示できる。また、任意のベクトル r {\displaystyle \mathbf {r} } へのその作用は R n ( θ ) r = r cos ⁡ θ + n ( n ⋅ r ) ( 1 − cos ⁡ θ ) + ( n × r ) sin ⁡ θ {\displaystyle R_{\mathbf {n} }(\theta )\mathbf {r} =\mathbf {r} \cos \theta +\mathbf {n} (\mathbf {n} \cdot \mathbf {r} )(1-\cos \theta )+(\mathbf {n} \times \mathbf {r} )\sin \theta } と書ける。 フェリックス・クラインによって考案されたケーリー・クラインのパラメータは、回転行列を4つの複素数 α {\displaystyle \alpha } , β {\displaystyle \beta } , γ {\displaystyle \gamma } , δ {\displaystyle \delta } （ただし β = γ ∗ {\displaystyle \beta =\gamma ^{*}} , δ = α ∗ {\displaystyle \delta =\alpha ^{*}} を満たすものとする）を用いて R ( α , β , γ , δ ) = [ 1 2 ( α 2 − γ 2 + δ 2 − β 2 ) i 2 ( γ 2 − α 2 + δ 2 − β 2 ) γ δ − α β i 2 ( α 2 + γ 2 − β 2 − δ 2 ) 1 2 ( α 2 + γ 2 + β 2 + γ 2 ) − i ( α β + γ δ ) β δ − α γ i ( α γ + β δ ) α δ + β γ ] {\displaystyle R(\alpha ,\beta ,\gamma ,\delta )={\begin{bmatrix}{\frac {1}{2}}(\alpha ^{2}-\gamma ^{2}+\delta ^{2}-\beta ^{2})&{\frac {i}{2}}(\gamma ^{2}-\alpha ^{2}+\delta ^{2}-\beta ^{2})&\gamma \delta -\alpha \beta \\{\frac {i}{2}}(\alpha ^{2}+\gamma ^{2}-\beta ^{2}-\delta ^{2})&{\frac {1}{2}}(\alpha ^{2}+\gamma ^{2}+\beta ^{2}+\gamma ^{2})&-i(\alpha \beta +\gamma \delta )\\\beta \delta -\alpha \gamma &i(\alpha \gamma +\beta \delta )&\alpha \delta +\beta \gamma \end{bmatrix}}} と表示するものである。 ^ ここでは角度 θ {\displaystyle \theta } は右手の法則に従って選んでおり、Goldstein, Poole & Safko とは反対である。 ^ Goldstein, Poole & Safko, pp. 151-154. ^ Goldstein, Poole & Safko, p. 156. ^ “Rodrigues' Rotation Formula”. Wolfram MathWorld. 2020年12月8日閲覧。 ^ Goldstein, Poole & Safko, p. 162. ^ Goldstein, Poole & Safko, pp. 154-155. Goldstein, Herbert; Poole, Charles; Safko, John (2001). Classical Mechanics (third ed.). Pearson. ISBN 978-0201657029  線型代数学 四元数 オイラー角 Weisstein, Eric W. "Rotation Matrix". mathworld.wolfram.com (英語). 表示 編集