機械学習勉強ログ

機械学習に関連した勉強を記録していこうと思います。

線形代数の基本的な計算(3) ~回転行列~

前回は、拡大行列を掛けることで長方形を拡大させることを表現してみました。 今回は、拡大ではなく、座標の回転に挑戦してみたい思います。

回転行列の紹介

次の行列を掛けることで、2次元座標の回転を行うことができます。


R(\theta) =\begin{pmatrix}
cos(\theta) & -sin(\theta) \\\
sin(\theta) & cos(\theta)
\end{pmatrix}

試しに、

 
p_1=(1,1)^T 


\theta_1=\frac{\pi}{2}

でやってみましょう。

まずは、回転する角度に対応した 回転行列を求めます。


R(\theta_1)= \begin{pmatrix}
0 & -1 \\\
1 & 0
\end{pmatrix}

上のような感じで求まります。

これを、 座標のベクトルにかけると、


p_2=\begin{pmatrix}
0 & -1 \\\
1 & 0
\end{pmatrix} \cdot \begin{pmatrix}
1 \\\
1
\end{pmatrix} = \begin{pmatrix}
-1 \\\
1
\end{pmatrix} 

回転後の座標 p_2が求まります。

今回の回転操作も前回の拡大と同様の考え方で

回転後の座標 = 回転変換 * 回転前の座標

求めることができました。

イメージで確認すると、

こんな感じですね。

なぜ、回転行列で回転できるのか?(導出方法)

やっぱり、なぜあの式で回転できるか気になったので調べてみました。

以外に簡単だったので過程も書いておきます。

  • 回転前の座標を p1 , 回転後の座標を p2
  • p1の角度をφ, p2の角度をθとします。

そうすると、p2 (回転後) の座標は次の式で表せているはずです。

これを 加法定理 (確か高校の数Aで習ったが忘れていた)を使って式を変形します😎。

これをベクトル行列の表記に直すと、

あら不思議、回転変換の式が導けました!🙌

これをどう使う?

せっかく回転の式を覚えたので、次回は、回転の式を使って アナログ時計 を表現してみたいと思います。

やっぱり、学校の勉強みたいにひたすら覚えるだけなのはつまらないのでね。

今回は短いですが、ここまでにしようと思います。