Edited at

やっぱり線形代数は必要 #4 座標変換と行列

プログラミングのための線形代数 平岡 和幸(著), 堀 玄(著)オーム社」をまとめています。が、大学数学はほぼ独学なので、だいぶゆるふわ理解になると思います。どうぞご了承ください。間違っていたらぜひ指摘してください。

前の記事←→次の記事


1. 座標変換と行列

ある一つの行列で表される写像でも、基底(#1で紹介)の取り方によって変形がスッキリ見やすくなる(どう基底を取って表現してもベクトル自体は変わらない)。

ex.) ある写像を2通りで表したアニメーション。

[左]普通の基底の取り方をしたときの変形と、[右]座標変換した基底を使ったときの変形(軸に沿った伸縮だけのシンプルな変形になってる)。

3.gif5.gif

Picture1.png

こういうときの基底$\vec{e_x}$から基底$\vec{e_x'}$への変換のように、あるベクトルから別のベクトルへ(逆行列の存在する1正方行列Aをかけて(後述))変換することを、座標変換という(この場合だとPからP'への変換)。

ex.) あるベクトル$\vec{v}$に使う基底を変換する例を見てみます。

普通の基底を$(\vec{e_x}, \vec{e_y})$、座標変換後の基底を$(\vec{e_x'}, \vec{e_y'})$とします。$\vec{v}$(例えば上の図で言うPとP')自体は同じなので、

\begin{align}

\vec{v}
&= x\vec{e_x} + y\vec{e_y} \\
&= x'\vec{e_x'} + y'\vec{e_y'} \cdots ①
\end{align}

変換前後の基底はこんな関係式になっているとする。

\begin{align}

\vec{e_x'} &= 3\vec{e_x} -2 \vec{e_y} \\
\vec{e_y'} &= -\vec{e_x} + \vec{e_y}
\end{align}

①の$\vec{e_x'}, \vec{e_y'}$に上の式の右辺をそれぞれ突っ込むと、

\begin{align}

\vec{v}
&= x'(3\vec{e_x} -2 \vec{e_y}) + y'(-\vec{e_x} + \vec{e_y}) \\
&= (3x'-y')\vec{e_x} + (-2x'+y')\vec{e_y} \cdots ①'
\end{align}

$\vec{v}$を、$x$と$y$で表した式①と、$x'$と$y'$で表した式①'から、

\begin{align}

\vec{v} &= x\vec{e_x} + y\vec{e_y} \\
&= (3x'-y')\vec{e_x} + (-2x'+y')\vec{e_y}
\end{align}

上式の1行目と2行目の係数部分は等しくなるはずなので、

\begin{align}

x &= 3x'-y' , \quad y = -2x'+y' \cdots ② \\
\Leftrightarrow x' &= x+y , \qquad y' = 2x + 3y \cdots ③
\end{align}

②は$(x,y)$を$(x', y')$に、③は$(x', y')$を$(x,y)$にする座標の変換の式ということになる。

これは、行列でまとめると下のような感じ。

\begin{pmatrix}

x \\ y
\end{pmatrix}
=
\begin{pmatrix}
3 & -1 \\ -2 & 1
\end{pmatrix}
\begin{pmatrix}
x' \\ y'
\end{pmatrix}
← ②より
\\
\begin{pmatrix}
x' \\ y'
\end{pmatrix}
=
\begin{pmatrix}
1 & 1 \\ 2 & 3
\end{pmatrix}
\begin{pmatrix}
x \\ y
\end{pmatrix}
← ③より

こんな感じで、座標変換は「行列をかける」という形で書ける。もう一度座標変換の定義を復習しておくと、あるベクトルから別のベクトルへ(逆行列の存在する1正方行列Aをかけて)変換することが、座標変換


2. 転置行列(と共役行列)

転置行列 $A^T$:縦と横をひっくり返す操作。

A=

\begin{pmatrix}
2 & 9 & 4 \\
7 & 5 & 3
\end{pmatrix}

A^T=
\begin{pmatrix}
2 & 7 \\
9 & 5 \\
4 & 3
\end{pmatrix}
\\
\begin{align}
(A^T)^T &= A \\
(AB)^T &= B^TA^T \\
\left(A^T\right)^{-1} &= \left(A^{-1}\right)^T
\end{align}

共役転置$A^*$:複素行列において、複素共役($\bar{A}$と表す)をとって転置したやつ($A^* = \bar{A}^T$)。

A=

\begin{pmatrix}
2+i & 9-2i & 4 \\
7 & 5+5i & 3
\end{pmatrix}

A^*=
\begin{pmatrix}
2-i & 7\\
9+2i & 5-5i \\
4 & 3
\end{pmatrix}
\\
\begin{align}
(A^*)^* &= A \\
(AB)^* &= B^*A^* \\
(A^{-1})^* &= (A^*)^{-1}
\end{align}


3. 行列計算の工夫

行列を計算する上で、こんなイメージを持っておくと良いようです。

1.png

ex.)

File.jpg


練習問題

$n$次元正方行列$A$と$n$次元縦ベクトル$\boldsymbol{b}$, $\boldsymbol{c}$について、$\boldsymbol{c}^TA^{-1}\boldsymbol{b}$を満たす、かつ$A^{-1}$が存在するとき、

(A+\boldsymbol{bc}^T)^{-1} = A^{-1} - \frac{A^{-1}\boldsymbol{bc^T}A^{-1}}{1+\boldsymbol{c}^TA^{-1}\boldsymbol{b}}

が成り立つことを示せ(逐次最小二乗法やカルマンフィルタなどの逐次的アルゴリズムで使う式らしい)。

確認してみた(汚い手書きですいません...)↓

新規ドキュメント 2018-11-02 20.51.50_1.jpg


今後の予定


  • 第1章 ベクトル・行列・行列式



  • 第2章 ランク・逆行列・一次方程式

  • 第3章 コンピュータでの計算(1)

  • 第4章 固有値・対角化・Jordan標準形

  • 第5章 コンピュータでの計算(2)





  1. なぜ「逆行列が存在する正方行列」なのかは後ほど説明。