PythonによるPDFの各操作のまとめ記事をつくりました

【線形代数】行列によるベクトルの移動【線形変換】

射影行列などはこちらから

直交射影行列と斜交射影行列の計算 表現行列と基底を変換する行列

行列によるベクトルの変換をイメージで理解するための記事です。

もう知っている人にとっては当然かもしれませんが、大学で線形代数を習ってもいまいちなにやってるかわからないと感じている人には有用な考え方だと思うので、ぜひみていってください。

今から考える線形変換

行列\(\boldsymbol{A}\)によって、ベクトル\(\boldsymbol{x}\)がベクトル\(\boldsymbol{v}\)に変換されることを考えます。

\[ \boldsymbol{A}\boldsymbol{x} = \boldsymbol{v} \]

2次元で図形的に考えたいので、今から\( \boldsymbol{A}\)は次の2×2の正方行列として考えます。

\[ \boldsymbol{A} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \]

ここで、xy直交座標系における基本的な基底\(\left(\begin{array}{c} 1\\ 0\\ \end{array}\right)と\left(\begin{array}{c}0\\1\\ \end{array}\right)\)がどのように動くかを考えましょう。

\[ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \left(\begin{array}{c} 1\\ 0\\ \end{array}\right) = \left(\begin{array}{c} a\\ c\\ \end{array}\right) \]

\[ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \left(\begin{array}{c} 0\\ 1\\ \end{array}\right) = \left(\begin{array}{c} b\\ d\\ \end{array}\right) \]

もうお気づきでしょう。
行列\( \boldsymbol{A}\)の1列目が\( \left(\begin{array}{c} 1\\ 0\\ \end{array}\right) \)を\( \left(\begin{array}{c} a\\ c\\ \end{array}\right) \)にしている、つまりx方向の\((1, 0)\)に作用していて、
行列\( \boldsymbol{A}\)の2列目は\( \left(\begin{array}{c} 0\\ 1\\ \end{array}\right) \)を\( \left(\begin{array}{c} b\\ d\\ \end{array}\right) \)にしている、つまりy方向の\((0, 1)\)に作用している
ということがわかりますね。

つまり、行列\(\boldsymbol{A}\)は新しい基底 \( \left(\begin{array}{c} a\\ c\\ \end{array}\right) \)と \( \left(\begin{array}{c} b\\ d\\ \end{array}\right) \)による斜交座標系をつくるような変換を行うということですね。

一般的にベクトル\( \left(\begin{array}{c} x\\ y\\ \end{array}\right) \) がどのように動くか考えるとこのようになります。

\[ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \left(\begin{array}{c} x\\ y\\ \end{array}\right) = \left(\begin{array}{c} ax + by\\ cx + dy\\ \end{array}\right) \]

このようにして、行列\(\boldsymbol{A}\) は(左からかける操作によって)1列目の要素は1つ目の基底、2列目の要素は2つ目の基底を動かすようになっていて、結果的に\( \left(\begin{array}{c} x\\ y\\ \end{array}\right) \)を\( \left(\begin{array}{c} ax + by\\ cx + dy\\ \end{array}\right) \)にしていますね。
また、行列\(\boldsymbol{A}\) の1行目が新しいx方向、2行目が新しいy方向に影響しているとも見れます。

この考え方で回転行列が理解できます

回転行列はこれですね。

\[\begin{pmatrix} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{pmatrix} \]

この回転行列は左からかけることにより、ベクトル \( \left(\begin{array}{c} x\\ y\\ \end{array}\right) \) を\(\theta\)回転することができる行列です。

先ほどの考えを覚えていれば、この並びを覚えなくてもちょっと図を書けば簡単にこの行列を作ることができます。先ほどの基底を動かす考えを用いて、図のなかで\(\theta\)回転してみましょう。

回転前後の関係図を描いてみてください。

どうでしょうか。\(\theta\)回転してみると、
\(\left(\begin{array}{c} 1\\ 0\\ \end{array}\right) \)は\( \left(\begin{array}{c} \cos{\theta}\\ \sin{\theta}\\ \end{array}\right) \)に、\(\left(\begin{array}{c} 0\\ 1\\ \end{array}\right) \)は\( \left(\begin{array}{c} -\sin{\theta}\\ \cos{\theta}\\ \end{array}\right) \)になるということを考えれば、
それぞれを1列目、2列目とする行列\(\boldsymbol{A}\)は回転行列になりますね。

固有ベクトルと固有値の理解も進みます

\[\boldsymbol{A} \boldsymbol{v} = \lambda \boldsymbol{v}\]

とある行列Aに対して、この式を満たすベクトル\( \boldsymbol{v} \)を固有ベクトル、またそのときの値\(\lambda\)を固有値といいましたね。

先の線形変換の考えを思い出すと、あることがわかります。

左辺は\(\boldsymbol{v}\)が行列\(\boldsymbol{A}\)によって変換された後のベクトル、右辺は\(\boldsymbol{v}\)の\(\lambda\)(定数)倍となっています。

つまりこの式を満たす固有ベクトル\(\boldsymbol{v}\)は行列\(\boldsymbol{A}\)の変換によって回転することはなく、変換の前後で向いている方向が変わらないベクトルであるということがわかります。ただ長さは\(\lambda\)倍になります。

\[\left(\begin{array}{c} ax + by\\ cx + dy\\ \end{array}\right) = \lambda \left(\begin{array}{c} x\\ y\\ \end{array}\right)\]

以上です

私自身の理解も甘いうえに図も載せていないので、これを読んでもあんまり参考にならなかったかもしれません。そこで、素晴らしいYouTubeチャンネルをご紹介します。3Blue1Brownというチャンネルです。完全に英語ですが、数学についてとにかく視覚化してくれているチャンネルで、とにかく深い理解を与えてくれて、我々が知りたかったことすべてを解説してくれているチャンネルです。

参考 3Blue1BrownYouTube

役立つこと間違いなしです。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です