ストラング先生の4つの部分空間 （行空間と零空間）

# はじめに
[ストラング:線形代数イントロダクション](https://www.kindaikagaku.co.jp/book_list/detail/9784764904057/) <br>

- この本の、表紙の図に魅せられて
- この図が理解したくて、線形代数を始めました
- 最近、ようやく、この図が見えてきました（そんな気がします）
    - 気が長いのもほどがありますが、3年近くかかったような気がします
    - 線形代数の沼は深く、楽しいです
    - ストラング先生と線形代数の仲間に感謝です

この記事では、無謀にもこの『4つの部分空間』を説明します！
目指しているのは、『直感で理解する』です

<img src="https://m.media-amazon.com/images/I/81Ritv8iOsL._SL1500_.jpg" width="40%">

# 例題で驚く！
例題として本の中にある例題をピックアップします
問題は以下です（『ストラング：線形代数イントロダクション』p212）

例 5
$A=\begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}$ について、$x=\begin{bmatrix}4 \\\ 3 \end{bmatrix}$を、$x_r + x_n=\begin{bmatrix}2 \\\ 4 \end{bmatrix} + \begin{bmatrix}2 \\\ -1 \end{bmatrix}$に分解せよ

## とにかく、計算してみる

次の行列計算を見て、『**えっ！**』てなりません (か)！？

```math
\begin{aligned}
Ax &= \begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}\begin{bmatrix} 4 
 \\ 3\end{bmatrix} = \begin{bmatrix} 10 
 \\ 30\end{bmatrix} \\
Ax_r &= \begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}\begin{bmatrix} 2 
 \\ 4\end{bmatrix} = \begin{bmatrix} 10 
 \\ 30\end{bmatrix} \\
\end{aligned}
```
- $A$に対して異なる$x$$、\begin{bmatrix}4 \\\ 3\end{bmatrix}$と$\begin{bmatrix}2 \\\ 4\end{bmatrix}$で$Ax$を計算しているのに
    - 同じ値$\begin{bmatrix}10 \\\ 30\end{bmatrix}$になっているぢゃないか！

## なんで、こんなことが起こるんだ

努力が報われないベクトル$x$がある！？

```math
\begin{aligned}
Ax_n &= \begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}\begin{bmatrix} 2 
 \\ -1\end{bmatrix} = \begin{bmatrix} 0 
 \\ 0\end{bmatrix} \\
\end{aligned}
```

- $\begin{bmatrix}2 \\\ -1\end{bmatrix}$に対して$Ax=\begin{bmatrix}0 \\\ 0 \end{bmatrix}$（零ベクトル）
    - この$\begin{bmatrix}2 \\\ -1\end{bmatrix}$の定数倍の$\begin{bmatrix}4 \\\ -2\end{bmatrix}$とか$\begin{bmatrix}6 \\\ -3\end{bmatrix}$も、やはり、$Ax=\begin{bmatrix}0 \\\ 0 \end{bmatrix}$（零ベクトル）
- この努力の報われなベクトルは何なんだ！
    - 何倍してもゼロ！

# 努力の報われないベクトル（零空間）

$Ax=0$となるような、努力が報われないようなベクトルは**零空間**の住人です

- 零の意味の$Null$の$N$をとって、行列$A$の零空間を$N(A)$と表記します
    - 零空間の住人$x$は、$Ax=0$となるような人って感じでしょうか
```math
N(A)=\{x|Ax=0\}
```
この例題での零空間の住人は
```math
N(A)=\left\{ \begin{bmatrix}2 \\\ -1\end{bmatrix}の定数倍 \right\}
```

報われないベクトルの住む零空間は、この赤い線上です
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/994af641-930f-3d52-63e3-da75cbbac166.gif" width="80%">

4つの部分空間では、左下の部分空間 (赤色)です

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/b443dfde-e496-6c72-5e91-914240f4e956.png" width="70%">

- 次は、報われるベクトルです

# 報われるベクトルの空間 (行空間)

五月雨ですが、報われる空間 (行空間)は、行ベクトルの線形結合で構成されます

## おいおい、線形結合って何よ？

- こちらも五月雨ですが、2次元平面での座標は、標準基底 $e_x=\begin{bmatrix}1 \\\ 0\end{bmatrix}$,$e_y=\begin{bmatrix}0 \\\ 1\end{bmatrix}$の線形結合で表せます
    - $\begin{bmatrix}x \\\ y\end{bmatrix}=\begin{bmatrix}3 \\\ 4\end{bmatrix}$、これを見たら、$x$軸方向に$3$、$y$軸方向に$4$と無意識に理解しますが
        - 実は、$\begin{bmatrix}x \\\ y\end{bmatrix}=3 e_x + 4 e_y$
            - 2つのベクトル$e_x,e_y$を定数倍して足し合わせた形になっています
                - つまり、$e_x$方向に3歩、$e_y$方向に4歩って感じです
            - これが、線形結合（線形結合による座標表現）です

<hr>

## 行空間

話を報われる空間 (行空間)に戻します
行空間は行ベクトルの線形結合によって表現できる場所 (空間)です

- $A=\begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}$ の行ベクトルは、以下です
    - その1行目、$\begin{bmatrix}1 & 2\end{bmatrix}$
    - その2行目、$\begin{bmatrix}3 & 6\end{bmatrix}$
- つまり、$A$の行空間は、1行目と2行目の行ベクトルの線形結合でできる空間になります
- これは1行目と2行目の行ベクトルで張られる空間ともいいます

行列$A$の行空間は、本来、行を意味する$Row$から$R(A)$とすべきなのですが、ストラング流では、転置した$A$の列空間$Column$と解釈して$C(A^T)$と表記します
また、「張られる空間」を「張る」を意味する$Span$から、$a,b$で張られる空間を$Span \\{a,b\\}$と表記します

この例題での行空間は：
```math
C(A^T)=C\left(\begin{bmatrix}1 & 2 \\\ 3 & 6\end{bmatrix}^T\right)
=C\left(\begin{bmatrix}1 & 3 \\\ 2 & 6\end{bmatrix}\right)=Span\left\{\begin{bmatrix}1 \\\ 2\end{bmatrix} \begin{bmatrix}3 \\\ 6\end{bmatrix}\right\}=Span\left\{\begin{bmatrix}1 \\\ 2\end{bmatrix} \right\}
```
※$\begin{bmatrix}3 \\\ 6\end{bmatrix}$ は $\begin{bmatrix}1 \\\ 2\end{bmatrix}$の3倍で同じ方向なので、結局、$\begin{bmatrix}1 \\\ 2\end{bmatrix}$だけで張られた空間になります

報われるベクトルの住む行空間は、緑の線上です
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/af07bbf0-ce68-4e13-8b5d-2ce0d6c2fe05.gif" width="80%">

4つの部分空間の図では、左上の部分空間 (緑色)です
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/73c8e245-f3f1-c71b-4dff-e4dc28453a5d.png" width="70%">


# 行空間と零空間は直交している（重要な事実）

またまた、五月雨ですが、行空間と零空間は直交しています！！！
この例題でも、2つの空間が直交していること見えますね
- 報われない空間（零空間） $\begin{bmatrix}2 \\\ -1\end{bmatrix}$(赤色) 
- 報われる空間（行空間）$\begin{bmatrix}1 \\\ 2\end{bmatrix}$(緑色)

![vector_animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/6a433a31-0c7c-4be7-80e3-962c27c4ead6.gif)

直交するので内積はゼロです
```math
\left< \begin{bmatrix}1 \\\ 2 \end{bmatrix} \cdot \begin{bmatrix}2 \\\ -1 \end{bmatrix} \right>=1\cdot 2 + 2\cdot (-1)=0
```
4つの部分空間の図でも、行空間と零空間は直交することが表現されています
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/0ed19339-6f74-1e66-77e4-ac31b671b5b1.png" width="70%">

# 例題で驚く！（再掲）
問題は以下です（『ストラング：線形代数イントロダクション』p212）

例 5
$A=\begin{bmatrix} 1 & 2 \\\ 3 & 6\end{bmatrix}$ について、$x=\begin{bmatrix}4 \\\ 3 \end{bmatrix}$を、$x_r + x_n=\begin{bmatrix}2 \\\ 4 \end{bmatrix} + \begin{bmatrix}2 \\\ -1 \end{bmatrix}$に分解せよ

## 問題について考えてみる
- $x=x_r+x_n$は以下の様に構成されている
    - $x_r(row)$ : 報われる空間に対応するベクトル(行空間)
    - $x_n(null)$ : 報われない空間に対応するベクトル(零空間)

$Ax$の$x$は報われる部分$x_r$と報われない部分$x_n$の線形結合でできていて、
結局、報われない部分は$Ax_n$は$\begin{bmatrix}0\\\0\end{bmatrix}$になることから起こったことです

```math
\begin{aligned}
x&=x_r + x_n 
= \begin{bmatrix}2 \\\ 4 \end{bmatrix} + \begin{bmatrix}2 \\\ -1 \end{bmatrix}
=2\begin{bmatrix}1 \\\ 2 \end{bmatrix} + \begin{bmatrix}2 \\\ -1 \end{bmatrix} \\\
Ax &= A (x_r + x_n) 
= Ax_r + Ax_n
=\begin{bmatrix} 10 \\ 30 \end{bmatrix} + \begin{bmatrix} 0 
 \\ 0\end{bmatrix} = \begin{bmatrix} 10 
 \\ 30\end{bmatrix} \\

\end{aligned}
```

## 実は射影されている・・・？

ここまでをまとめると、
- 2次元空間のベクトルは
    - 報われない方向のベクトルの方向（零空間：赤線）は潰されて
    - 報われる方向のベクトル方向（行空間：緑線）に張り付いてしまいます
- 以下の赤い点が射影される様子を示しています
    - 赤い点が$x=\begin{bmatrix}4 \\\ 3 \end{bmatrix}$が$x_r=\begin{bmatrix}2 \\\ 4 \end{bmatrix}$に射影されています

![projection_animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71601/bde85593-85a7-c878-ddce-de6ffe2c79d2.gif)

# まとめ
ストラング先生の4つの部分空間の左半分について説明してみました
そもそも、$A$はランクが1ということから発生した問題といえます
直感的な理解に役立っていれば、嬉しいです
この記事から、『4つの部分空間』のすごさは伝えられませんでした（残念）
続きます