回転行列の導出〜超簡単な方法

回転行列
回転行列
POINT

  • 回転行列(2次元・3次元)を簡単に導出する方法の紹介.
  • ポイントは「行列は単位ベクトルの変換先を並べたものである」こと.
  • 同じ方法で3次元回転行列を始め,どんな行列も導出できる.

回転行列とは,ベクトルに作用させると「原点中心に回転したベクトル」を返す行列のことです(上図).使うたびに調べる人も多いと思いますが,実は簡単に求めることができます.

前提知識は「三角関数」と「行列の計算方法」だけです.さらに,「3次元回転行列を始めとして,どんな変換行列の導出にも応用できる」汎用的な考え方です.ぜひ身につけましょう!

2次元回転行列

3ステップに分けて導出します.

単位ベクトルの回転

単位ベクトルの回転
  • Step1:「$x$軸方向の単位ベクトル」を$\theta$回転させたベクトルを求める
    上図(左)から簡単にわかるように,「$x$軸方向の単位ベクトル」を$\theta$回転させると
    \begin{align}
    \left(
    \begin{array}{c}
    1\\
    0
    \end{array}
    \right)
    %
    \overset{\theta\text{回転}}{\longrightarrow}
    %
    \color{blue}{
    \left(
    \begin{array}{c}
    \cos\theta\\
    \sin\theta
    \end{array}
    \right)
    }
    \end{align}です.
  • Step2:「$y$軸方向の単位ベクトル」を$\theta$回転させたベクトルを求める
    同様に上図(右)から,「$y$軸方向の単位ベクトル」を$\theta$回転させると,
    \begin{align}
    \left(
    \begin{array}{c}
    0\\
    1
    \end{array}
    \right)
    %
    \overset{\theta\text{回転}}{\longrightarrow}
    %
    \color{red}{
    \left(
    \begin{array}{c}
    -\sin\theta\\
    \cos\theta
    \end{array}
    \right)
    }
    \end{align}です.
  • Step3:Step1, 2で求めたベクトルを並べる
    上で求めた2つのベクトルを順に並べた行列が,求めたかった回転行列になっています.簡単ですね.
    2次元回転行列
    $\displaystyle
    \left(
    \begin{array}{cc}
    \color{blue}{\cos\theta}&\color{red}{-\sin\theta}\\
    \color{blue}{\sin\theta}&\color{red}{\cos\theta}
    \end{array}
    \right)
    $

行列と単位ベクトルの関係

上の方法で回転行列を求めることができた理由を解説します.使った性質は一つだけです!この性質を使えば、同じ方法で3次元回転行列も導く事ができます!

次の性質から,「行列とは,単位行列の変換先を順に並べたもの」と言ます.これを応用すれば,3次元回転行列も導くことができます.

行列と単位ベクトルの関係
行列は「単位ベクトルの変換先を並べたもの」である.つまり「$i$成分が$1$,それ以外の成分は$0$」の単位ベクトルを
\begin{align}
e_i=
\left(
\begin{array}{c}
0 \\
\vdots \\
1\\
\vdots \\
0
\end{array}
\right)
(i~~~
\end{align}と書くとき,行列$M$は
\begin{align}
M=(Me_1,...,Me_n)
\end{align}と表せる.

【証明】
ベクトル$Me_i$の$j$成分を,行列計算の定義どおりに計算すると
\begin{align}
(Me_i)_j
=\sum_{k=1}^n M_{jk}(e_i)_k
\end{align}
です($(e_i)_k$はベクトル$e_i$の$k$成分を表します).ここで,$(e_i)_k$は$k=i$のとき以外$0$なので,
\begin{align}
(Me_i)_j=M_{ji}
\end{align}
となります.//

わかりにくい場合は,$2\times2$行列で具体的に計算して上の証明と比べてみて下さい!

3次元回転行列

3次元回転行列の導出も2次元の場合と全く同じ方法で可能です.ここでは,結果だけ載せます.
3次元回転行列
3次元回転行列

等長変換(回転行列の一般化)

回転行列によってベクトルを回転させたとき,ベクトルの長さは変わりません.つまり,回転行列よりも大きな概念として「距離を保つ変換(等長変換)」が存在します.

等長変換:回転・反転・Lorentz変換では,

  • 等長変換が「回転」と「反転」で表されること(ユークリッド空間)
  • 相対性理論のLorentz変換がミンコフスキー空間での等長変換であること

について議論しています.

他分野への応用

この記事で紹介した『行列は「単位ベクトルの変換先を並べたもの」』という性質を使った導出法は,広い分野に応用が効きます.例えば,以下の記事ではこの性質を使っています:

  1. 線形代数(行列表示, 対角化, Jordan標準形, etc.).
  2. 物理

まとめ

紹介した方法のメリットをまとめておきます.
  1. 必要になったとき,すぐに回転行列を導出できる:
    今回紹介した方法なら,「$\theta$回転の公式を覚えて,$\theta$に具体的な値を代入して・・・」などとしなくても,具体的な角度(例えば$30^\circ$や$90^\circ$)で上の考え方を使えば,その都度,すぐに回転行列を導出できます.
  2. うろ覚えの公式で間違えることがない:
    時計回りに回転させた公式だっけ?反時計回りに回転させた公式だっけ?などと悩まなくて済みます.
  3. 導出方法は他の変換行列にも使える:
    この導出法が使えるのは2次元回転行列だけではありません.単位ベクトルの変換さえわかってしまえば,3次元の回転行列を始め,どんな行列でも求めることができます.