読者です 読者をやめる 読者になる 読者になる

わらばんし仄聞記

南の国で引きこもってるWeb屋さん

初心者の為の線形代数勉強会(1)

はじめに

初心者のための線形代数勉強会(2) - connpassに参加してきました。
次の本を教科書として、線形代数を学んでいこうという内容の会になります。

Amazon.co.jp: 線形代数学講義 改訂版: 対馬 龍司: 本

機械学習や画像処理、量子力学をはじめとして、なんらかを真面目に取り組もうとすると当然のように出てくるのがこの線形代数ですね。自分は不真面目な学生だったので、当時にちゃんと修めてなかった為、今になってよく見かけるそれらを理解する事が出来ませんでした。
正直なところ、今更やるのは遅きに失しているんじゃないかとも思いますが、きっと今やらなかったら5年、10年後にまた、あのときやっておけば・・・と思うのが必至なので今からでもやります。

「やればわかる。やらなければ一生わからん!」ってやつですね。

さて、今回既に第2回ですが、第1回は線形代数本編というよりもその準備として、集合、複素数、ベクトルといった辺りをおさらいした回でした。今回は第2章の行列からスタートしました。

基本的には教科書通りに進んでいるので、そちらを読めば問題ないです。ですが、会の中で気になった点や教科書に書いてなかったけど述べられた点などについてちょっとメモっておこうかと。
なお、本記事の内容は「自分が現時点でこの様に理解した」という事なので、厳密に正しいかといったことの保証は一切ありません。

第2章 行列

まずは行列の話です。数学Cをちゃんと高校でやった人は復習になると思います。自分は高校では教わりませんでしたが・・・。

2.1 2次のベクトルと行列

序盤は定義について述べてるだけなので、特に問題なし。2.1.2節、線形変換から見てみます。まずは初っぱなにこんな風な説明があります。

直行座標の与えられた平面を\( {R}^2 \)で表す。\( {R}^2 \)から \( {R}^2 \)自身への写像\(f:{R}^2 \to {R}^2 \)で定数項を含まない1次式で表されるものを\({R}^2\)の線形変換という。

いきなりこれだけ言われたら、何なの?って感じになりますね。その気持ちを堪えて続きを見てみると

\begin{align*} f \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix} \end{align*}

「線形変換」とは、この様に表される写像のことである。と述べられています。つまり、左辺の\(x\)と\(y\)の列ベクトルを線形変換した結果が右辺の\(ax+by\)と\(cx+dy\)の列ベクトルということですね。積の定義より、計算結果が右辺となるような行列の積は

\begin{align*} \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} \end{align*}

ですね。並べて書くと

\begin{align*} f \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} \end{align*}

つまり

\begin{align*} f = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \end{align*}

です。さて、第1章で集合論をやったときにこんな図が出てきたと思います。

f:id:warabanshi21:20150223000920j:plain

集合\(X\)から写像\(f\)を通じて、集合\(Y\)上へ像を作ってる図ですね。今回、線形変換を施すにあたって使用している、\(f\)と等しい\(a,b,c,d\)による行列は、この様に集合で論じられていた写像の具体的な実装の一例となっています。
他の分野をかじっているとき、「この行列を演算子として見る」といった様な事をしばしば聞いていたんですが、今まで全くイメージが湧いていませんでした。この線形変換のように、行列を写像として扱うこともできるからそのような表現をされていたという事で、やっと腑に落ちました。

例 2.1.6

例として、次のような図が提示されています

f:id:warabanshi21:20150223003154j:plain

先のことを踏まえてこの例を見てみると、行列の積によって関数合成が成り立っている事を確かめられます。\(h(\mathbf x)\)は

\begin{eqnarray} h(\mathbf x) = f(g(\mathbf x))\\ = f \circ g(\mathbf x) \end{eqnarray}

と表せ、各写像に対応する行列を\(F, G, H\)とすると

\begin{align*} F = \begin{pmatrix} 1 & 0 \\ 0 & -1\end{pmatrix}, G = \begin{pmatrix} -1 & 0 \\ 0 & 1\end{pmatrix}, H = \begin{pmatrix} -1 & 0 \\ 0 & -1\end{pmatrix} \end{align*}

としてこの例では指定されているので、先の関数合成より

\begin{align*} f \circ g(\mathbf x) = FG\mathbf x = \begin{pmatrix} 1 & 0 \\ 0 & -1\end{pmatrix}\begin{pmatrix} -1 & 0 \\ 0 & 1\end{pmatrix}\mathbf x = \begin{pmatrix}-1 & 0 \\ 0 & -1\end{pmatrix} = H\mathbf x = h(\mathbf x) \end{align*}

これより、行列が関数として扱えている事がわかる。

命題 2.1.9

2つの列ベクトル\(\mathbf a = \begin{pmatrix} a \\ c\end{pmatrix}, b = \begin{pmatrix} b \\ d\end{pmatrix}\)によって作られる平行四辺形の面積\(S\)は行列\(A = (\mathbf a \mathbf b) = \begin{pmatrix} a & b \\ c & d\end{pmatrix}\)の行列式\(\Delta\)の絶対値\(\mid\Delta\mid = \mid ad - bc \mid\)に等しい

教科書の方では内積つかったり云々してますが、この時点では教科書中には内積やらは出てきてないのでそれらを使わない方向で説明。次のような図で考える。

f:id:warabanshi21:20150223014412j:plain

空白部分が求めたい面積S。こんな感じで座標に当てはめてみると、平行四辺形を含む大枠の矩形の面積は\( (a+b)(c+d) \)で表される。あとは縦線、横線が引かれている領域をそこから引けばいい。
引く対象の面積はいずれも三角形と台形の面積なので、容易に求められる。これらの和は

\begin{align*} \frac{ac}{2} + \frac{bd}{2} + \frac{(c+(c+d))b}{2} + \frac{(b+(a+b))c}{2}\\ = \frac{1}{2}(ac + bd + 2bc + bd + ac + 2bc)\\ = ac + bd + 2bc \end{align*}

これを先程の矩形の面積から引けばよいので

\begin{align*} (a+b)(c+d) - (ac + bd + 2bc) = ad - bc \end{align*}

以上より、命題が示された。

例 2.1.11

平面上の点\((x,y)\)を原点を中心に反時計回りに\(\alpha\)回転した点\((x', y')\)に移す写像を\(f:{R}^2 \to {R}^2 \)とする。\((x,y)\)と\((x',y')\)を複素平面上で考えると、それらの間の関係は定理1.2.6により

\begin{eqnarray} x' + iy' & = & (\cos \alpha + i\sin \alpha)(x+iy)\\ & = & (x\cos \alpha - y\sin \alpha) + i(x\sin \alpha + y\cos \alpha) \end{eqnarray}

と、教科書の方には定理1.2.6よりこの様な式を導出してますが、複素平面極座標を用いてお手軽に導出してみます。

図にして表すと次のような図で、左が\(x,y\)平面上で\(\alpha\)回転させたイメージ。それを複素平面上の極座標で考えたイメージが右の図で、座標\((x,y)\)を\(z_1 = re^{i\theta_1}\)。また、\(\alpha\)と同じ角度の\(\theta_2\)を考え、\(z_2 = re^{i\theta_2}\)とすると、これらの積\(z_1 z_2\)が\(z'\)となる。

f:id:warabanshi21:20150224014940j:plain

式にしてみると

\begin{align*} z_1 \cdot z_2 = r_1 r_2 e^{i(\theta_1 + \theta_2)} \end{align*}

となり、長さ\(r\)は\(z_1\)のものだけあればよく、\(z_2\)については回転分だけが欲しいので\(\mid z_2 \mid = 1\)つまり\(r_2 = 1\)とすると

\begin{align*} z_1 \cdot z_2 = r_1 e^{i(\theta_1 + \theta_2)} \end{align*}

となるので、回転を単なるかけ算として扱うことが出来る。
さて、\(z = x + iy\)だったので、複素平面上でここから\(\alpha\)回転させるには\(e^{i\alpha}\)を掛ければよいので

\begin{eqnarray} z' & = & e^{i\alpha}(x + iy)\\ & = & (\cos \alpha + i\sin \alpha)(x + iy)\\ & = & \cos \alpha \cdot x - \sin \alpha \cdot y + i(\sin \alpha \cdot x + \cos \alpha \cdot y)\\ \end{eqnarray}

であるから、つまり

\begin{align*} \begin{pmatrix} x' \\ y'\end{pmatrix} = \begin{pmatrix}\cos \alpha \cdot x - \sin \alpha \cdot y \\ \sin \alpha \cdot x + \cos \alpha \cdot y\end{pmatrix} = \begin{pmatrix}\cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha\end{pmatrix}\begin{pmatrix}x \\ y\end{pmatrix} \end{align*}

として回転を表せる

2.2 行列の定義と演算

いままで見てたのは2行2列程度の行列でしたが、ここでもっと一般的な行列について見ることとなります。\(m\)行\(n\)列の行つのことを\((m, n)\)型行列とも言うそうです。
\((m, n)\)型の行列\(A\)と\((n, r)\)型の行列\(B\)についてはそれらの行列で積を求め、\((m, r)\)型の行列を導く事が出来ます。これはつまり\((m, n)\)型の行列(\(m \neq n\))は\(n\)次元から\(m\)次元への写像を表していると考えることが出来るためで、これはそもそも異なる次元が結果として出てくるので単位行列(恒等写像\(I\))は存在しない。

p.42 2.3.5

行列のトレースについて

\begin{align*} tr AB = tr BA \end{align*}

とある。これはあくまで行列の積を二分割して入れ替える事が出来るというだけであり、自由に入れ替えていいというわけではない事に注意。

\begin{align*} ○tr ABCD = tr BCDA \\ ×tr ABCD = tr ADCB \end{align*}

p.42 2.3.2 掃き出し法による逆行列の計算

やり方については教科書を参照。

ここで行われている行基本変形の操作は、その操作に対応する正則行列を左から掛ける事に対応している。つまり、行列\(A\)に対して行基本変形逆行列を求めるという操作は、\(m\)回目に行基本変形で掛ける正則行列を\(R_m\)として、n回の操作で終わる場合

\begin{align*} R_n \cdots R_1A = I \end{align*}

と表せる。さて行列\(A\)について、式(2.32)、(2.33)より

\begin{align*} A\mathbf x = \mathbf y \Leftrightarrow \mathbf x = A^{-1}\mathbf y \end{align*}

であるから、先程の行基本変形より

\begin{align*} \mathbf x = I \cdot \mathbf x = R_n \cdots R_1A\mathbf x = R_n \cdots R_1\mathbf y \\ \end{align*}

となるので、\(\mathbf x = A^{-1}\mathbf y\)より

\begin{align*} R_n \cdots R_1 = A^{-1} \end{align*}

である。ちなみに列基本変形では右から\(R_m\)を掛けていくのに相当するので、行基本変形と同様には扱えない。