『プログラミングのための線形代数』メモ#

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

ベクトル空間 := 和と定数倍が定義された集合

基底#

  • 基準となるベクトル\(e_1, e_2\)を定めて、そこからの座標(\(e_1\)を3歩、\(e_2\)を2歩、のように)を指定する方法で\(v = 3 e_1 + 2 e_2\)のように表すことができる

  • \(e_1, e_2\)を基底ベクトル、\((3, 2)\)を座標という

ベクトルの組\((e_1,\cdots,e_n)\)を基底と呼ぶのは、次の2つの条件を満たすときだけ

  1. どんなベクトル\(v\)でも\(v=x_1 e_1 + \cdots + x_n e_n\)で表現できる(どの土地にも番地がついていて表現できる)

  2. その表し方は1通りだけ(1つの土地には番地は1つだけ)

    • つまり、\((x_1, \dots, x_n)^T \neq (x'_1, \dots, x'_n)^T\)なら\(x_1 e_1 + \cdots + x_n e_n \neq x'_1 e_1 + \cdots + x'_n e_n\)(違う番地なら違う土地)

      • あるいは\(x_1 e_1 + \cdots + x_n e_n = x'_1 e_1 + \cdots + x'_n e_n\)なら\((x_1, \dots, x_n)^T = (x'_1, \dots, x'_n)^T\)(同じ土地なら番地も同じ)

    • 移項して言い換えると\((x_1 - x'_1) e_1 + \cdots + (x_n - x'_n) e_n = o\)より、\(u_1 e_1 + \cdots + u_n e_n = o\)なら\(u_1 = \cdots = u_n\)

疑問

\((x_1, \dots, x_n)^T = (x'_1, \dots, x'_n)^T\) なら \(x_1 e_1 + \cdots + x_n e_n = x'_1 e_1 + \cdots + x'_n e_n\)

とならないのか?\(\implies\)ではなく\(\Leftrightarrow\)にはならないのか?

「同じ番地なら同じ土地」とは言わない理由があるのか?

同じ番地でも同じ土地を指すかどうかは基底に依存するから、あえてそうしている?

行列は写像#

コラム1.15#

行列は線形写像を座標成分で表したもの

線形写像とは

  1. \(f(\boldsymbol{x}+ \boldsymbol{y}) = f(\boldsymbol{x})+f(\boldsymbol{y})\)

  2. \(f(c \boldsymbol{x}) = c f(\boldsymbol{x})\)

を満たす写像

任意の線形写像は行列を掛けるという形式でも表現できる

単位ベクトルを入力としたときの出力を\(\boldsymbol{a}_i = f(\boldsymbol{e}_i)\)とおくと、入力\(\boldsymbol{x}=(x_1,\dots,x_n)^T\)に対する出力は

\[ f(\boldsymbol{x}) = x_1 \boldsymbol{a}_1 + \cdots + x_n \boldsymbol{a}_n \]

となる。

縦ベクトルを並べた行列\(A=(\boldsymbol{a}_1, \dots, \boldsymbol{a}_n)\)を使えば

\[ f(\boldsymbol{x}) = A \boldsymbol{x} \]

と書くことができる

疑問

線形写像の解説とのつながりは?

\[ f(\boldsymbol{x}) = x_1 \boldsymbol{a}_1 + \cdots + x_n \boldsymbol{a}_n = x_1 f(\boldsymbol{e}_1) + \cdots + x_n f(\boldsymbol{e}_n) \]

行列の積=写像の合成#

座標変換#

同じ空間でも、基底は色々な取り方をとることができる。どう基底を立って座標を表現しても、実態のベクトルは同じ

先に結論:座標変換は「可逆正方行列\(A\)を掛ける」という形で書ける。可逆行列による線形変換は座標変換と解釈できる。

(例)2次元の基底が2組\((e_x, e_y), (e_x', e_y')\)を使って、ベクトル\(v\)

\[ v = x e_x + y e_y = x' e_x' + y' e_y' \]

と2通りに表現するとする。

座標\(v=(x, y)^T\)と座標\(v'=(x', y')^T\)の対応関係(変換規則)はどうなるのだろうか?

まず、基底の関係は

\[\begin{split} e'_x = 3 e_x - 2e_y\\ e_y' = - e_x + e_y \end{split}\]

だったとすると、\(v, v'\)

\[\begin{split} \begin{align} v &= x' e_x' + y' e_y'\\ &= x' (3 e_x - 2e_y) + y' (- e_x + e_y)\\ &= x' 3 e_x - x' 2e_y - y' e_x + y' e_y\\ &= (3 x' - y') e_x + (-2x' + y') e_y\\ \end{align} \end{split}\]

これと\(v = x e_x + y e_y\)が等しいので

\[\begin{split} \begin{align} x &= 3 x' - y'\\ y &= -2x' + y' \end{align} \end{split}\]

これを\(x', y'\)について解くと

\[\begin{split} \begin{align} x' &= x+y\\ y' &= 2x+3y \end{align} \end{split}\]

これが座標\(v=(x, y)^T\)と座標\(v'=(x', y')^T\)の対応関係(変換規則)となる

行列で書くと

\[\begin{split} \begin{aligned} & \left(\begin{array}{l} x \\ y \end{array}\right)=\left(\begin{array}{cc} 3 & -1 \\ -2 & 1 \end{array}\right)\left(\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right) \\ & \left(\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right)=\left(\begin{array}{ll} 1 & 1 \\ 2 & 3 \end{array}\right)\left(\begin{array}{l} x \\ y \end{array}\right) \end{aligned} \end{split}\]

となる

第3章 LU分解#

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

4.1 安定性#

\(\xi = f(u)\) について考える。ただし、単なる関数ではなく、時系列的であり(\(u(t), \xi(t)\))、現時点だけでなく過去のinputにも依存する(株価予測のような。自己回帰モデルのようなイメージ)

今回興味があるのは、発散する(無限に大きくなってしまう)かどうか。例えば\(\xi(t) = 2 \xi(t-1)\)のようだと、どんどん値が大きくなって発散する。

\[ x(t) = (\xi(t), \xi(t-1), \xi(t-2))^T, u(t) = 0 \]

とおけば

\[ x(t) = A x(t-1), A\in\mathbb{R}^{3\times 3} \]

のようになる。

どんな初期値からスタートしても\(x(t)\)が有限の範囲に留まるのか(リアプノフ安定 - Wikipedia)どうかを判定したい。

写像はある基底のもとで行列\(A\)によって表されている。別の基底をもってきて、\(x\)を座標変換してやり、もっと簡単な行列にできればよい。ここで固有ベクトルが役に立つ。

対角行列の場合#

もし係数行列が対角行列

\[\begin{split} x(t) = A x(t-1)\\ A = \diag(a_1, \dots, a_n) \end{split}\]

なら、対角成分を見れば良い

\[ |a_1|,\dots,|a_n| \leq 1 \]

なら暴走はしない

対角化できる場合#

\[\begin{split} \boldsymbol{y}(t)=C \boldsymbol{x}(t), \quad C=\left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right) \end{split}\]

をのように\(x(t) = (x_1(t), x_2(t))^T\)から\(y(t)=(y_1(t), y_2(t))^T\)へ変換することで、

元の問題 $\( x(t) = A x(t-1) \)$

\[\begin{split} \boldsymbol{y}(t)=\Lambda \boldsymbol{y}(t-1), \quad \Lambda=\left(\begin{array}{ll} 6 & 0 \\ 0 & 4 \end{array}\right) \end{split}\]

へと書き換えられる

\(C\)\(P^{-1}\)にして

\[\begin{split} \begin{aligned} & \boldsymbol{x}(t)=P \boldsymbol{y}(t) \\ & \boldsymbol{y}(t)=P^{-1} \boldsymbol{x}(t) \end{aligned} \end{split}\]

とすると

\[\begin{split} \begin{aligned} \boldsymbol{y}(t) & =P^{-1} \boldsymbol{x}(t)=P^{-1} A \boldsymbol{x}(t-1) \\ & =P^{-1} A(P \boldsymbol{y}(t-1))=\left(P^{-1} A P\right) \boldsymbol{y}(t-1) \end{aligned} \end{split}\]