ラビットチャレンジレポート #2 固有値分解と特異値分解

# 固有値・固有ベクトル
* 下記のようなある正方行列（n×nの行列のこと）Aに対して式が成り立つとき、行列Aとそのベクトルxはスカラー数であるλとベクトルxの積と同じになる

`````math
A \vec{x} = \lambda \vec{x}
`````
* このときのλを **固有値**、ベクトルxを **固有ベクトル**という
* 下記のような式が成り立つとき、(1,1)というベクトルが左の行列によって(5,5)に変換されている

```math
\begin{pmatrix} 1&4 \\2&3 \end{pmatrix}\begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 5 \\ 5 \end{pmatrix} 
```

* 上記の式は下記のようにも考えることもできる

```math
\begin{pmatrix} 1&4 \\2&3 \end{pmatrix}\begin{pmatrix} 1 \\ 1 \end{pmatrix} = 5\begin{pmatrix} 1 \\ 1 \end{pmatrix} 
```

* このとき、5が固有値、(1,1)が固有ベクトル（ **のうちの1つ**）
* (1,1)がなぜ固有ベクトルのうちの1つかというと、(1,1)のところは(2,2)であっても(3,3)であっても式が成り立つからである（固有ベクトルが(2,2)や(3,3)であっても固有値は変わらない）

### 固有値・固有ベクトルの求め方
* 下記の式を変換して考えていく

```math
A\vec{x}=\lambda\vec{x}
```
* 右辺と左辺にあるベクトルを1つにまとめる

```math
(A - \lambda I)\vec{x}=\vec{0}
```

* Iは単位行列のこと
* Aは行列でλはスカラー数のため単純な引き算ができない
* 行列で1のような存在である単位行列をλにかけることでスカラー数を行列として計算することが可能となる
* 下記が成り立つのは自明であるため、0以外の場合で考える

```math
\vec{x}=0
```

* 逆行列が存在していたら簡単にxベクトルを求めることができそうなので、逆行列を使って考えてみる
    * (1)左の式に逆行列をかけることにより単位行列を作ることができる
    * (2)単位行列が作れたら`単位行列×ベクトル=`の式になるため、簡単にベクトルがわかりそう
    * (3)左辺にだけ逆行列をかけるとおかしいから、右辺にも逆行列をかけないといけない
    * (4)右辺は0であるから、逆行列をかけても0
    * (5)つまりxは0である
    * **x!=0のときを考えたいのに逆行列があるとx=0になってしまう**

```math
(A - \lambda I) = Bとする\\
(1)\;\;\;B^{-1}B\vec{x} = \vec{0}\\
(2)\;\;\;I\vec{x} = \vec{0}\;\;\;\;\;\;\;\\
(3)\;\;\;I\vec{x} = \vec{0}B^{-1}\\
(4)I\vec{x}=\vec{0}\;\;\;\;\;\;\;\;\;\\
(5)\vec{x}=\vec{0}\;\;\;\;\;\;\;\;\;\;\;
```

* 上記の手順より逆行列を持ってないときを考えたいということがわかる
* 逆行列をもつかどうか判断するのは **行列式**が0であるとき
* 行列式が0である状態を作りたい、つまり下記の式を考える

```math
|A - \lambda I|=0
```
* 計算していく

```math
A = \begin{pmatrix} 1&4 \\2&3 \end{pmatrix}のときであるから\\
\begin{vmatrix} 1-\lambda&4 \\2&3-\lambda \end{vmatrix} = 0\\
(1-\lambda)(3-\lambda) - 2*4=0\\
\lambda = 5\;\;or\;\;\lambda=-1
```

* このようにして先に固有値を簡単に求めることができる
* ここで求めた固有値を使って固有ベクトルを求めていく


```math
\begin{pmatrix} 1&4 \\2&3 \end{pmatrix}\begin{pmatrix} x\\y \end{pmatrix}=\lambda\begin{pmatrix} x\\y \end{pmatrix}\\
```
λ=5のとき

```math
\begin{pmatrix} 1&4 \\2&3 \end{pmatrix}\begin{pmatrix} x\\y \end{pmatrix}=5\begin{pmatrix} x\\y \end{pmatrix}\\
x+4y=5x\\
2x+3y=5y\\
x=y
```
λ=-1のとき

```math
\begin{pmatrix} 1&4 \\2&3 \end{pmatrix}\begin{pmatrix} x\\y \end{pmatrix}=-1\begin{pmatrix} x\\y \end{pmatrix}\\
x+4y=-x\\
2x+3y=-y\\
x=-2y
```

以上から
λ=5のとき

```math
\vec{x} = \begin{pmatrix} 1\\1 \end{pmatrix}（の定数倍）\\
```
λ=-1のとき

```math
\vec{x} = \begin{pmatrix} 2\\-1 \end{pmatrix}（の定数倍）\\
```

* 上記のように固有ベクトルも求めることができる
* 固有値、固有ベクトルの数は複数持つが行列によって数は決まっている
    * 2×2の正方行列の場合はそれぞれ2個
    * 3×3の正方行列の場合はそれぞれ3個
    * 100×100の正方行列の場合はそれぞれ100個
    * つまりn×n行列はそれぞれn個

# 固有値分解
* 行列はただの数字の表なので複数の行列があるときに分類することができない
* 固有値分解をすることで計算的に有利になり、分類が可能になる
* 分解することで特徴がわかる

* ある正方行列（n×nの行列）が固有値λ（n個）と固有ベクトルv（n個）をもっているとする
* 固有値を対角線上に並べた行列が下記になる

```math
\Lambda = \begin{pmatrix} \lambda_1&0&…&0\\
0&\lambda_2&…&0\\
…&…&…&…\\
0&0&…&\lambda_n\\
 \end{pmatrix}\\
```

* 固有ベクトルのを並べた行列が下記になる

```math
V = \begin{pmatrix} \vec{v_1}&\vec{v_2}&…&\vec{v_n}\\
 \end{pmatrix}\\
```

* これは下記のような関係だと考えられる

```math
AV = V\Lambda\\
A = V\Lambda V^{-1}
```

* 上記の様な3つの行列の積に変換することを **固有値分解**という
* 固有値分解によって例えば行列Aを複数回かけるような行列の計算が簡単になるというメリットがある
    * 行列Aを複数回かけるようなパターンとは？
        * 行列とはベクトルを変換するもの
        * ベクトルが経済の状況を表しているとき
        * ある国は労働力と小麦しかないとする
        * 労働力を第一成分、小麦を第二成分にもつベクトルと考える
            * このベクトルがある国の状態を表す
        * 次の年はどうなっているか？
            * ある行列をかけてあげたらいい！
        * n年後の状態が知りたいときはある行列をn回かけることでn年後の状況がわかる

* 固有値分解具体例
    * 行列は上で使用したものにする（固有値と固有ベクトルがすでにわかっているため）
    * 固有値の記載の順番に決まりはない（基本は昇順か降順で並べる）
    * 固有ベクトルの記載も1通りではない
        * 今回の例だと(1,1)の定数倍、(2,-1)定数倍の2つが固有ベクトル
        * 固有ベクトルの記載は(1,1)でなくて(2,2)や(3,3)でもOK
        * 同じように(2,-1)でなくても(1,-1/2)や(4,-2)でもOK
        * 固有ベクトルの記載方法を変えても1番左の行列が変化することによってバランスをとってる（1番左の行列が固有ベクトルを並べた行列の逆行列であるから）

```math
\begin{pmatrix} 1&4\\2&3\end{pmatrix} =
\begin{pmatrix} 1&1\\1&-1/2\end{pmatrix}
\begin{pmatrix} 5&0\\0&-1\end{pmatrix}
\begin{pmatrix} 1/3&2/3\\2/3&-2/3\end{pmatrix}
```

# 特異値分解
* 正方行列以外の分解はする方法が特異値分解

```math
M\vec{v}=\sigma \vec{u}\\
M^T\vec{u}=\sigma\vec{v}
```
* MのT乗はMの転置といい、行と列を入れ替えたものである
* このような特殊な単位ベクトルがあるとき特異値分解ができる（下記で表すことを **特異値分解**という）

```math
M_{mn} = U_{mm}SV^T\\
(V^T=V_{nn})
```
* Sはσの集合の行列であり、非対角成分が0、またσが特異値である
* VのT乗行列（転置）はＶが正方行列のためV行列の逆行列となる
* 行列Uと行列Vは直行行列である

### 特異値の求め方
* 先ほどの式を変形していきMとMの転置を求める

```math
MV = US\\
M =USV^T
```

```math
M^TU = VS^T\\
M^T =VS^TU^T
```

* これらの式の積は下記のように考えることができる

```math
MM^T = USV^TVS^TU^T=USS^TU^T
```

* MとMの転置行列の積は正方行列となる
* SとSの転置行列の積は固有値λの2乗と考えることができる
* このことからMとMの転置行列を掛け合わせた行列の固有値分解と考えることもできる
* 正方行列以外は固有値分解できなかった
    * 転置行列をかけることで正方行列を作り、固有値分解ができるようになる
* **MとMの転置行列を掛け合わせた行列を固有値分解すれば左特異ベクトル（U）と特異値の2乗が求められる**