ストラング線形代数：線形変換（射影）

# 1. はじめに
参加している勉強会<sup>1)</sup>で G. ストラング著「線形代数イントロダクション」<sup>2)</sup>の第７章「線形変換」の７．３節「対角化と疑似逆行列」で線形変換として射影をとりあげた例題（P.428の例１）をやって目からうろこだったので備忘録としてまとめることにした。

## 例題
例題は次のようなものである。

>北西から南東へ通る直線 $ y = - x $ 上へ射影する。ベクトル $(1, 0)$ をその直線上の $(0.5, -0.5)$ へ射影する。 $(0, 1)$ の射影は $(-0.5, 0.5)$ である。

![Fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/7ff6f577-928d-7afd-3d08-00ba5aa8ce60.png)

例題を図にした。ベクトル $(1, 0), (0, 1)$ を水色で描いた $\boldsymbol{e}\_1, \boldsymbol{e}\_2$ とした。それぞれを赤色で示した直線 $ y = - x $ に射影したものがそれぞれ $(0.5, -0.5), (-0.5, 0.5)$ である。緑色で示した $\boldsymbol{x}\_1, \boldsymbol{x}\_2$ については後で説明する。

# 2. 標準行列：標準基底を射影せよ
これが設問１である。ストラング先生の指示はぶっきらぼうである。何を意図しているのか理解するのに時間がかかる。しかし馴れるとスルメのようになかなか味わい深い。

設問１は「標準基底を射影せよ」である。ここでいう標準基底とは $\boldsymbol{e}\_1 = (1, 0), \boldsymbol{e}\_2 = (0, 1)$ である。Fig.1 に示すように $\boldsymbol{e}\_1 = (1, 0)$ は $(0.5, -0.5)$ に、$\boldsymbol{e}\_2 = (0, 1)$ は $(-0.5, 0.5)$ に射影される。射影を表す行列を $A$ とすると
```math
A \begin{bmatrix}1 \\ 0 \end{bmatrix} = 
\begin{bmatrix}0.5 \\ -0.5 \end{bmatrix},
A \begin{bmatrix}0 \\ 1 \end{bmatrix} = 
\begin{bmatrix}-0.5 \\ 0.5 \end{bmatrix}
\tag{2.1}
```
ということである。これを一つの式にまとめると
```math
A \begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix} = 
\begin{bmatrix}0.5 & -0.5 \\ -0.5 & 0.5 \end{bmatrix}
\tag{2.2}
```
となる。線形代数の良いところはこのように複数のことがら（ここでは(2.1)式に示す２つの関係式）を簡潔に表現できるところである。ここで、
```math
I = \begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix}
\tag{2.3}
```
は恒等写像なので(2.2)式は
```math
A = 
\begin{bmatrix}0.5 & -0.5 \\ -0.5 & 0.5 \end{bmatrix}
\tag{2.4}
```
となり、労せずして射影行列 $A$ が求まった。

射影行列を求めるには公式があり、ベクトル $\boldsymbol{a}$ を通る直線への射影行列$A$ は
```math
A = \frac{\boldsymbol{a} \boldsymbol{a}^T}{\boldsymbol{a}^T \boldsymbol{a}}
\tag{2.5}
```
で求めることができる（参考文献 1 のP.220）。
この式に直線 $y = - x$ 上のベクトル（点） $\boldsymbol{a} = (0.5, -0.5)$ を代入すると
```math
\begin{equation}\begin{split}

A &= \frac{\boldsymbol{a} \boldsymbol{a}^T}{\boldsymbol{a}^T \boldsymbol{a}}
= \frac{\begin{bmatrix}0.5 \\ -0.5\end{bmatrix} \begin{bmatrix}0.5 & -0.5 \end{bmatrix}}
{\begin{bmatrix}0.5 & -0.5\end{bmatrix} \begin{bmatrix}0.5 \\ -0.5 \end{bmatrix}} \\
&= \frac{\begin{bmatrix}0.25 & -0.25 \\ -0.25 & 0.25 \end{bmatrix}}{0.25 + 0.25}
= \begin{bmatrix}0.5 & -0.5 \\ -0.5 & 0.5 \end{bmatrix}
\end{split}\end{equation}
\tag{2.6}
```
となり、(2.4)式と同じ射影行列が得られる。しかし、この方法は公式(2.5)を覚えていないと使えないが、ストラング先生のご指示通り(2.1)式のように**標準基底を射影**すれば自然に射影行列が得られる。ストラング先生はこの本を通じてこういった**暗記に頼らない洗練された考え方**を教えてくれる。線形代数の面白さと同時に深淵なそのひろがりを垣間見せてくれるのだ。ということで勉強会<sup>1)</sup>の参加者にはストラング教の信徒がたむろしている。私など線形代数など計算できればそれでよいと思って生きてきた輩であるが、このセミナーに参加して感化されつつある。

余談はさておきこの設問で学んだことをまとめておこう。射影行列を求めるには、いや、射影に限らず線形変換の行列を求めるには**標準基底がその変換によってどのように写るか**を知ればよい。いま、標準基底 $\boldsymbol{e}_1, \boldsymbol{e}_2, \cdots$ がこの線形変換 $T$ によって $\boldsymbol{a}_1, \boldsymbol{a}_2, \dots$ に写る場合、対応する行列 $A$ は
```math
A \begin{bmatrix} \boldsymbol{e}_1 & \boldsymbol{e}_2 & \cdots \end{bmatrix} = \begin{bmatrix} \boldsymbol{a}_1 & \boldsymbol{a}_2 & \cdots \end{bmatrix}
\tag{2.7}
```
である。
ここで、$ I = \begin{bmatrix} \boldsymbol{e}\_1 & \boldsymbol{e}\_2 & \cdots \end{bmatrix} $ であるから(2.7)式は
```math
A = \begin{bmatrix} \boldsymbol{a}_1 & \boldsymbol{a}_2 & \cdots \end{bmatrix}
\tag{2.8}
```
となる。
標語的に言えば

> All you need is where the standard basis is moved to.

となる。

# 3. 固有ベクトルによって対角行列 Λ を求めよ
これが設問２である。射影行列 $A$ の固有ベクトルを求める。固有ベクトルを求めるには計算などいらない。ただ、Fig.1をじっと睨んでいればいい。そもそも固有ベクトルとはその行列によって自分自身（のスカラー倍）に写されるベクトルである。直線 $ y = - x $ 上のベクトル $\boldsymbol{x}\_1 = (1, -1)$ はこの直線上に射影しても何も変わらない。そのままである。ということは、$\boldsymbol{x}\_1$ は固有値 $\lambda\_1 = 1$ の $A$ の固有ベクトルである。同様に直線 $ y = - x $ に垂直なベクトル $\boldsymbol{x}\_2 = (1, 1)$ はこの直線上に射影すると原点に写る。ということは、$\boldsymbol{x}\_2$ は固有値 $\lambda\_2 = 0$ の $A$ の固有ベクトルと言える。すなわち
```math
A \boldsymbol{x}_1 = 1 \cdot \boldsymbol{x}_1, 
A \boldsymbol{x}_2 = 0 \cdot \boldsymbol{x}_2
\tag{3.1}
```
ということである。これを一つの式にまとめると
```math
A \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix}
= \begin{bmatrix} 1 \cdot \boldsymbol{x}_1 & 0 \cdot \boldsymbol{x}_2 \end{bmatrix} 
= \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix}
\begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}
\tag{3.2}
```
となり、両辺に左から $\begin{bmatrix} \boldsymbol{x}\_1 & \boldsymbol{x}\_2 \end{bmatrix}$ の逆行列（があればそれ）を掛けると
```math
\begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix}^{-1} A \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix}
= \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}
\tag{3.3}
```
となる。なんと(3.3)式は行列 $A$ を対角化する式になっているではないか。難しい計算をすることなく、ただ Fig.1 を眺めているだけで射影行列 $A$ の対角化ができたことになる。
ここで、
```math
S = \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ -1 & 1 \end{bmatrix},
\Lambda = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}
\tag{3.4}
```
とおくと、(3.3)式は
```math
S^{-1} A S = \Lambda
\tag{3.5}
```
となる。
ストラングは次のように表現している。

>良い基底ベクトルは $A$ の固有ベクトルである。このとき、行列は $S^{-1} A S = \Lambda$ となる。
基底が固有ベクトル $\boldsymbol{x}\_1, \dots, \boldsymbol{x}\_n$ からなるとき、$T$ に対する行列は $\Lambda$ となる。

まるで詩である。ストラングは線形代数の詩人である。
この章を終えるにあたってこの設問で得た学びをまとめておこう。行列 $A$ の固有ベクトル $\boldsymbol{x}\_1, \dots, \boldsymbol{x}\_n$ を並べた行列 $S$ を使って行列 $A$ は対角行列 $\Lambda$ に変換できる。行列 $\Lambda$ の対角成分には行列 $A$ の固有値 $\lambda\_1, \dots, \lambda\_n$ が並ぶ。
```math
\Lambda = \begin{bmatrix} \lambda_1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & \lambda_n \end{bmatrix}
\tag{3.6}
```
# 4. 対角化された行列：固有ベクトルを射影せよ
(3.1)式は線形変換 $T$ を使って次のように書き直すことができる。
```math
\begin{equation}\begin{split}

T(\boldsymbol{x}_1) &= 1 \cdot \boldsymbol{x}_1 + 0 \cdot \boldsymbol{x}_2, \\
T(\boldsymbol{x}_2) &= 0 \cdot \boldsymbol{x}_1 + 0 \cdot \boldsymbol{x}_2

\end{split}\end{equation}
\tag{4.1}
```

また、(3.4)式の $\Lambda$ を再掲する。
```math
\Lambda = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}.
\tag{4.2}
```
ストラングは教科書<sup>2)</sup>のP.413の節「行列の構成」の中で

>**重要な規則：** $A$ の第 $j$ 列は $T$ を $j$ 番目の基底 $\boldsymbol{v}_j$ に施すことにより求められる。
$T(\boldsymbol{v}_j) = W$ の基底ベクトルの線形結合 $= a\_{1j} \boldsymbol{w}_1 + \cdots + a\_{mj} \boldsymbol{w}_m $.

と書いている。ここで、$T$ は空間 $\boldsymbol{V}$（$n$ 次元）を空間 $\boldsymbol{W}$（$m$ 次元）に変換する線形変換で、$\boldsymbol{V}$ の基底を $\boldsymbol{v}\_1, \dots, \boldsymbol{v}\_n$ とし、$\boldsymbol{W}$ の基底を $\boldsymbol{w}\_1, \dots, \boldsymbol{w}\_m$ としている。
そして、**重要な規則**は $\boldsymbol{v}\_j$ を $T(\boldsymbol{v}\_j)$ に変換して得られた $\boldsymbol{w}\_1, \dots, \boldsymbol{w}\_m$ の係数 $a\_{1j}, \dots, a\_{mj}$ が $A$ の第 $j$ 列になることを主張している。
$\boldsymbol{V}$ の基底も$\boldsymbol{W}$ の基底もともに固有ベクトル $\boldsymbol{x}\_1, \boldsymbol{x}\_2$ とした場合、(4.1)式から $T$ に対応する行列の第 $1$ 列は $(1, 0)$、第 $2$ 列は $(0, 0)$ になることがこの**重要な規則**から導かれる。そうして得られた行列は確かに(4.2)式のようになっている。
つまり、対角化された行列 $\Lambda$ は固有ベクトルからなる基底から見た射影 $T$ の表現行列なのである。一方、(2.4)式の行列 $A$ は標準基底 $\boldsymbol{e}_1, \boldsymbol{e}_2$ から見た射影 $T$ の表現行列なのである。で、両者の間は固有ベクトルを並べて得られる行列 $S$ を用いて(3.5)式のように変換される。
ここに至って(3.5)式は
```math
S^{-1}_{標準基底 \rightarrow 固有ベクトル基底} A_{標準基底} S_{固有ベクトル基底 \rightarrow 標準基底} = \Lambda_{固有ベクトル基底}
\tag{4.3}
```
のように解釈できる。関連図を Fig.2 に示す。

![Fig2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/28bbd875-d6f0-6989-aeac-74226095c341.png)

$\boldsymbol{p}$ は標準基底を使って表現された任意の数ベクトルで、標準基底で射影 $T$ を表現する行列 $A$ によって、同じく標準基底を使って表現された数ベクトル $\boldsymbol{p}'$ に射影される（$\boldsymbol{p}' = A \boldsymbol{p}$）。
一方、$\boldsymbol{q}\$ は固有ベクトル基底を使って表現された任意の数ベクトルで、固有ベクトル基底で射影 $T$ を表現する行列 $\Lambda = S^{-1} A S $ によって、同じく固有ベクトル基底を使って表現された数ベクトル $\boldsymbol{q}'$ に射影される（$\boldsymbol{q}' = \Lambda \boldsymbol{q} = S^{-1} A S \boldsymbol{q}$）。
$A$ の固有ベクトルを並べて作る行列 $S = \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix}$ は標準基底を固有ベクトル基底に変換する基底変換行列になっており（$\begin{bmatrix} \boldsymbol{x}\_1 & \boldsymbol{x}\_2 \end{bmatrix} = \begin{bmatrix} \boldsymbol{e}\_1 & \boldsymbol{e}\_2 \end{bmatrix} S $：標準基底行列 $\begin{bmatrix} \boldsymbol{e}\_1 & \boldsymbol{e}\_2 \end{bmatrix}$ に右から作用して固有ベクトル基底行列 $\begin{bmatrix} \boldsymbol{x}\_1 & \boldsymbol{x}\_2 \end{bmatrix}$ を作成する）、これを用いて固有ベクトル基底での数ベクトル表現を $\boldsymbol{p} = S \boldsymbol{q}$ や $\boldsymbol{p}' = S \boldsymbol{q}'$ のように標準基底での数ベクトル表現に変換できる。たとえば $\boldsymbol{q} = (1, 0)$ であれば
```math
\boldsymbol{p} = S \boldsymbol{q} = \begin{bmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \boldsymbol{x}_1
```
となり、固有空間ベクトル基底の数ベクトル $(1, 0)$ は標準基底では $A$ の固有ベクトル $\boldsymbol{x}\_1 = (1, -1)$ になることがわかる。
ちなみに基底変換行列 $S$ は同一ベクトルを基底の変更に伴って数ベクトル表現を変換するためだけの行列なので、線形変換としては恒等変換であることに注意されたい。

# 5. 別な基底を用いて第３の行列 B を求めよ

設問３は

>別な基底 $\boldsymbol{v}\_1 = \boldsymbol{w}\_1 = (2, 0)$ と $\boldsymbol{v}\_2 = \boldsymbol{w}\_2 = (1, 1)$ を用いて第３の行列 $B$ を求めよ。

というものである。ヒントとして

>射影 $T(\boldsymbol{v}\_j)$ を $\boldsymbol{w}\_i$ の線形結合で表して、この行列の第 $j$ 列を求めよ。

とある。つまり、４章で述べた**重要な規則**を適用せよとのことである。
ただし、４章では

>**重要な規則：** $A$ の第 $j$ 列は $T$ を $j$ 番目の基底 $\boldsymbol{v}_j$ に施すことにより求められる。

と書いていたが、ここでは

>**重要な規則：** $B$ の第 $j$ 列は $T$ を $j$ 番目の基底 $\boldsymbol{v}_j$ に施すことにより求められる。

のように $A$ を $B$ に読み替えることに注意する（$A$ は(2.4)式に示した標準行列を表す表記として温存する）。
この設問を Fig.3 に図示した。
![Fig3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/f0e17836-4b66-5c03-9b3d-b34ae06bf1fa.png)

図から射影 $T$ によって基底 $\boldsymbol{v}_1 = \boldsymbol{w}_1$ は $(1, -1)$ に写り、基底 $\boldsymbol{v}_2 = \boldsymbol{w}_2$ は原点 $(0, 0)$ に写ることがわかるので

```math
\begin{equation}\begin{split}

T(\boldsymbol{v}_1) &= T(\boldsymbol{w}_1) = \boldsymbol{w}_1 - \boldsymbol{w}_2 = \begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix} \begin{bmatrix} 1 \\ -1 \end{bmatrix} \\

T(\boldsymbol{v}_2) &= T(\boldsymbol{w}_2) = 0 = 0 \cdot \boldsymbol{w}_1 - 0 \cdot \boldsymbol{w}_2 = \begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix} \begin{bmatrix} 0 \\ 0 \end{bmatrix}

\end{split}\end{equation}
\tag{5.1}
```
となり、**重要な規則**から

```math
B = \begin{bmatrix} 1 & 0 \\ -1 & 0 \end{bmatrix}
\tag{5.2}
```
であることが示される。

# 6. 第３の相似な行列

前章で第３の行列 $B$ を求めた方法は４章で固有ベクトルを射影して対角化された行列 $\Lambda$ を求めた方法と本質的に同じである。(4.1)式と(5.1)式を見比べるがいい。

対角化された行列 $\Lambda$ は固有ベクトルからなる基底から見た射影 $T$ の表現行列であった。ならば、$B$ は別な基底 $\boldsymbol{w}_1, \boldsymbol{w}_2$ から見た射影 $T$ の表現行列と考えてよいのではないだろうか。そうであれば、別な基底 $\boldsymbol{w}_1, \boldsymbol{w}_2$ を並べて得られる行列 $W := \begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix}$ を用いて(4.3)式と類似した次式のように変換されるだろう。

```math
W^{-1}_{標準基底 \rightarrow 基底 \boldsymbol{w}_i} A_{標準基底} W_{基底 \boldsymbol{w}_i \rightarrow 標準基底} = B_{基底 \boldsymbol{w}_i \rightarrow 基底 \boldsymbol{w}_i}
\tag{6.1}
```
実際
```math
\begin{equation}\begin{split}

W^{-1} A W &=
\begin{bmatrix} 2 & 1 \\ 0 & 1 \end{bmatrix}^{-1}
\begin{bmatrix} 0.5 & -0.5 \\ -0.5 & 0.5 \end{bmatrix}
\begin{bmatrix}  2 & 1 \\ 0 & 1 \end{bmatrix} \\
&= \frac{1}{2}
\begin{bmatrix} 1 & -1 \\ 0 & 2 \end{bmatrix}
\begin{bmatrix} 0.5 & -0.5 \\ -0.5 & 0.5 \end{bmatrix}
\begin{bmatrix}  2 & 1 \\ 0 & 1 \end{bmatrix} \\
&= \frac{1}{2}
\begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}
\begin{bmatrix}  2 & 1 \\ 0 & 1 \end{bmatrix} \\
&= \frac{1}{2}
\begin{bmatrix} 2 & 0 \\ -2 & 0 \end{bmatrix} 
=
\begin{bmatrix} 1 & 0 \\ -1 & 0 \end{bmatrix}

\end{split}\end{equation}
\tag{6.2}
```
のように(5.2)式と同じ $B$ を得ることができた。このような基底の変換に伴う行列の変換を**相似変換**という。相似変換(6.1)式は、基底 $\boldsymbol{w}_i$ で表現されたベクトルを $W$ によって標準基底で表現されたベクトルに変換し、標準行列 $A$ によって標準基底空間上で線形変換（この場合は射影）を行ない、最後に $W^{-1}$ によって標準基底で表現されたベクトルから基底 $\boldsymbol{w}_i$ で表現されたベクトルに戻している。
また、基底変換行列 $W$ は恒等変換を表しているため、行列 $B = W^{-1} A W$ は線形変換の観点から $ITI$ を表現している。ここで $I$ は恒等変換である。

この場合の関連図を Fig.4 に示す。

![Fig4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/ebe27428-7833-72ee-9f79-053a9fc2c7c6.png)

# 7. 重要な規則から相似変換を導く

５章で述べた方法は、Fig.3のような図を描いて、それを見ながら目視で(5.1)式をエイヤーで導き、最後に**重要な規則**を使って行列 $B$ を求めるトリッキーな方法である。それに比べて６章で述べた相似変換を使う方法は、計算は手間だが手堅い方法だと言える。両者は一見異なる方法に見えるが、実は相似変換は**重要な規則**から導出できる。ここで、その導出を行なってみよう。
まずは、**重要な規則**をこの状況に合うように手直しして再掲する。

>**重要な規則：** $B$ の第 $j$ 列は $T$ を $j$ 番目の基底 $\boldsymbol{w}_j$ に施すことにより求められる。
$T(\boldsymbol{w}\_j) = W$ の基底ベクトルの線形結合 $= b\_{1j} \boldsymbol{w}\_1 + \cdots + b\_{mj} \boldsymbol{w}\_m = \begin{bmatrix} \boldsymbol{w}\_1 & \cdots & \boldsymbol{w}\_m \end{bmatrix} \boldsymbol{b}\_j = W \boldsymbol{b}\_j$.

この重要な規則から
```math
\begin{bmatrix} T(\boldsymbol{w}_1) & \cdots & T(\boldsymbol{w}_m) \end{bmatrix}
=
\begin{bmatrix} W \boldsymbol{b}_1 & \cdots & W \boldsymbol{b}_m \end{bmatrix}
=W B
\tag{7.1}
```
が得られる。
ここで、左辺 $\begin{bmatrix} T(\boldsymbol{w}\_1) & \cdots & T(\boldsymbol{w}\_m) \end{bmatrix}$ の意味を考える。$T(\boldsymbol{w}\_j)$ は言うまでもなく $j$ 番目の基底ベクトル $\boldsymbol{w}\_j$ に線形変換 $T$ を施したものである。標準基底では $T$ に対応する行列は標準行列 $A$ なので $$T(\boldsymbol{w}\_j) = A \boldsymbol{w}\_j \tag{7.2}$$ と考えると、
```math
\begin{bmatrix} T(\boldsymbol{w}_1) & \cdots & T(\boldsymbol{w}_m) \end{bmatrix}
=
\begin{bmatrix} A \boldsymbol{w}_1 & \cdots & A \boldsymbol{w}_m \end{bmatrix}
=A W
\tag{7.3}
```
となる。これと(7.1)式から
```math
A W = W B
\tag{7.4}
```
が得られ、両辺に左から $W^{-1}$（があればそれ）を掛けると
```math
W^{-1} A W = B
\tag{7.5}
```
となって(6.1)式の相似変換が得られる。

# 8. おわりに
射影を線形変換の題材として様々な基底における線形変換に対応する行列の構成方法を例題を通じて眺めた。

２章では標準基底を射影することによって標準行列を求めた。標準行列とは標準基底空間から見た線形変換 $T$ の表現行列である。この方法だと(2.5)式のような射影行列の公式を覚えなくても感覚的に行列を求めることができた。

続く３章では固有ベクトルによって対角行列 $\Lambda$ を求めた。 $\Lambda$ は標準行列 $A$ を対角化したものである。この対角行列は固有ベクトル基底空間から見た線形変換 $T$ の表現行列であった。さらに４章では固有ベクトルを射影することで**重要な規則**を用いて $\Lambda$ を求める別の方法を示した。

５章では固有ベクトルではない別の基底を用いて**重要な規則**から第３の行列を求めた。この行列は別の基底空間から眺めた線形変換 $T$ の表現行列であった。さらに６章では相似変換を利用して行列 $B$ を求める第二の方法を述べた。７章では相似変換が**重要な規則**から導かれることを示した。４章で述べた $A$ の対角化は相似変換の特別な場合である。

最後に相似変換に関して一言触れておく。(7.5)式を導出する際、入力基底空間は出力基底空間と同じ空間であったが、両者が異なる場合についても考えてみよう。入力基底を $ \lbrace \boldsymbol{v}\_i \rbrace\_{i=1}^{n}$、出力基底を $ \lbrace \boldsymbol{w}\_i \rbrace\_{i=1}^{m} $ とすると重要な規則から
```math
\begin{bmatrix} T(\boldsymbol{v}_1) & \cdots & T(\boldsymbol{v}_n) \end{bmatrix}
=
\begin{bmatrix} W \boldsymbol{b}_1 & \cdots & W \boldsymbol{b}_n \end{bmatrix}
=W B
\tag{8.1}
```
となる。
$T(\boldsymbol{v}\_j)$ は $j$ 番目の入力基底ベクトル $\boldsymbol{v}\_j$ に線形変換 $T$ を施したものなので $$T(\boldsymbol{v}\_j) = A \boldsymbol{v}\_j \tag{8.2}$$ と考えると、
```math
\begin{bmatrix} T(\boldsymbol{v}_1) & \cdots & T(\boldsymbol{v}_n) \end{bmatrix}
=
\begin{bmatrix} A \boldsymbol{v}_1 & \cdots & A \boldsymbol{v}_n \end{bmatrix}
=A V
\tag{8.3}
```
となる。これと(8.1)式から
```math
A V = W B
\tag{8.4}
```
が得られ、両辺に左から $W^{-1}$（があればそれ）を掛けると
```math
W^{-1} A V = B
\tag{8.5}
```
となって入出力基底が異なるバージョンの相似変換が得られる。この場合の関連図を Fig.5 に示す。

![Fig5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/392075e4-36a9-13a1-0206-629204769b6f.png)

(8.5)式において、行列 $B$ を対角化するように変換行列 $V, W$ を選べば特異値分解(SVD)になる。
```math
W^{-1} A V = \Sigma
\tag{8.6}
```
ここで、 $V, W$ は各々 $A^T A, A A^T$ の固有ベクトル行列（固有ベクトルを列ベクトルにした行列）で、$\Sigma$ は特異値 $\sigma\_i$ を降順に対角成分に並べた特異値行列である。ちなみに $A^T A, A A^T$ の固有値は特異値 $\sigma\_i$ の二乗（${\sigma\_i}^2$）である。

# 参考文献
1. データ分析を楽しむ会：Gストラング線形代数勉強会. https://study-data-analysis.connpass.com/event/307804/, （閲覧日：2024.1.27）
2. G. ストラング：線形代数イントロダクション 原著第４版. 近代科学社, 2015.

# 付録A 回転を表す行列の構成
線形変換 $T$ として $\theta$ の回転を考える（Fig A1）。

![Fig A1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/89a9a40f-b69b-3e62-3002-ef4ae60580aa.png)

## A.1 標準基底を射影する
まず、線形変換 $T$ によって標準基底 $\boldsymbol{e}\_1 = (1, 0), \boldsymbol{e}\_2 = (0, 1)$ はそれぞれ $\boldsymbol{w}\_1 = (\cos \theta, \sin \theta), \boldsymbol{w}\_2 = (-\sin \theta, \cos \theta)$ に移されるので（Fig A2）、$T$ に対応する行列を $A$ とすると
```math
A \begin{bmatrix}1 \\ 0 \end{bmatrix} = 
\begin{bmatrix}\cos \theta \\ \sin \theta \end{bmatrix},
A \begin{bmatrix}0 \\ 1 \end{bmatrix} = 
\begin{bmatrix}-\sin \theta \\ \cos \theta \end{bmatrix}
\tag{A.1}
```
となる。

![Fig A2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/427b43a7-8169-4835-1fc6-6fa10fcb1e0e.png)

(A.1)式を一つの式にまとめると
```math
A \begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix} = 
\begin{bmatrix}\cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\tag{A.2}
```
となる。したがって
```math
A = 
\begin{bmatrix}\cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\tag{A.3}
```
を得る。

## A.2 固有ベクトルを射影する
(A.3)式で与えられる回転行列の固有値を求める。ただし、この場合は「3. 固有ベクトルによって対角行列 $\Lambda$ を求めよ」のように図を睨んでいても何も浮かばない。そもそも回転行列の固有値や固有ベクトルは何だろう。特性方程式を立てて正攻法で求めてもよいのだが、ここではトリッキーな方法で求めてみる。
オイラーの公式から
```math
\begin{equation}\begin{split}
\cos \theta + i \sin \theta &= e^{i \theta} \\
-i \cos \theta + \sin \theta &= -i e^{i \theta} \\
\end{split}\end{equation}
\tag{A.4}
```
となる。２行目は１行目の両辺に $-i$ を掛けたものである。これらの等式は、ベクトルの内積を使って
```math
\begin{equation}\begin{split}
\begin{bmatrix} \cos \theta & -\sin \theta \end{bmatrix}
\begin{bmatrix} 1 \\ -i \end{bmatrix}
&= e^{i \theta} \\
\begin{bmatrix} \sin \theta & \cos \theta \end{bmatrix}
\begin{bmatrix} 1 \\ -i \end{bmatrix}
&= -i e^{i \theta} \\
\end{split}\end{equation}
\tag{A.5}
```
と表すことができる。(A.5)式を行列を使って表せば
```math
\begin{equation}\begin{split}
\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\begin{bmatrix} 1 \\ -i \end{bmatrix}
= \begin{bmatrix} e^{i \theta} \\ -i e^{i \theta} \end{bmatrix} 
= e^{i \theta} \begin{bmatrix} 1 \\ -i \end{bmatrix} 
\end{split}\end{equation}
\tag{A.6}
```
となる。
次に、(A.4)式の $\theta$ を $-\theta$ に変えると
```math
\begin{equation}\begin{split}
\cos \theta - i \sin \theta &= e^{-i \theta} \\
-i \cos \theta - \sin \theta &= -i e^{-i \theta} \\
\end{split}\end{equation}
\tag{A.7}
```
となるが、２行目の両辺に $-1$ を掛けてからベクトルの内積を使って書けば
```math
\begin{equation}\begin{split}
\begin{bmatrix} \cos \theta & -\sin \theta \end{bmatrix}
\begin{bmatrix} 1 \\ i \end{bmatrix}
&= e^{-i \theta} \\
\begin{bmatrix} \sin \theta & \cos \theta \end{bmatrix}
\begin{bmatrix} 1 \\ i \end{bmatrix}
&= i e^{-i \theta} \\
\end{split}\end{equation}
\tag{A.8}
```
となり、これを行列を使って書けば
```math
\begin{equation}\begin{split}
\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\begin{bmatrix} 1 \\ i \end{bmatrix}
= \begin{bmatrix} e^{-i \theta} \\ i e^{-i \theta} \end{bmatrix} 
= e^{-i \theta} \begin{bmatrix} 1 \\ i \end{bmatrix} 
\end{split}\end{equation}
\tag{A.9}
```
となる。
$\boldsymbol{v}\_1 = \begin{bmatrix} 1 & -i \end{bmatrix}^T, \boldsymbol{v}\_2 = \begin{bmatrix} 1 & i \end{bmatrix}^T$ とすると(A.6)式、(A.9)式は
```math
\begin{equation}\begin{split}
A \boldsymbol{v}_1 &= e^{i \theta} \boldsymbol{v}_1 \\
A \boldsymbol{v}_2 &= e^{-i \theta} \boldsymbol{v}_2
\end{split}\end{equation}
\tag{A.10}
```
となり、$e^{i \theta}, e^{-i \theta}$ はそれぞれ固有ベクトル $\boldsymbol{v}\_1, \boldsymbol{v}\_2$ に対する $A$ の固有値であることがわかる。
(A.10)式を一つの式にまとめると
```math
A \begin{bmatrix} \boldsymbol{v}_1 & \boldsymbol{v}_2 \end{bmatrix} 
= \begin{bmatrix} \boldsymbol{v}_1 & \boldsymbol{v}_2 \end{bmatrix}
\begin{bmatrix} e^{i \theta} & 0 \\ 0 & e^{-i \theta} \end{bmatrix}
\tag{A.11}
```
となり、両辺に左から $\begin{bmatrix} \boldsymbol{v}\_1 & \boldsymbol{v}\_2 \end{bmatrix}^{-1}$ を掛けると
```math
A = 
\begin{bmatrix} \boldsymbol{v}_1 & \boldsymbol{v}_2 \end{bmatrix}
\begin{bmatrix} e^{i \theta} & 0 \\ 0 & e^{-i \theta} \end{bmatrix}
\begin{bmatrix} \boldsymbol{v}_1 & \boldsymbol{v}_2 \end{bmatrix}^{-1}
\tag{A.12}
```
となり、$A$ の対角化の式を得る。
(A.12)式に$\boldsymbol{v}\_1 = \begin{bmatrix} 1 & -i \end{bmatrix}^T, \boldsymbol{v}\_2 = \begin{bmatrix} 1 & i \end{bmatrix}^T$ を代入すると
```math
\begin{equation}\begin{split}
A &= 
\begin{bmatrix} 1 & 1 \\ -i & i \end{bmatrix}
\begin{bmatrix} e^{i \theta} & 0 \\ 0 & e^{-i \theta} \end{bmatrix}
\begin{bmatrix} 1 & 1 \\ -i & i \end{bmatrix}^{-1} \\
&= 
\begin{bmatrix} 1 & 1 \\ -i & i \end{bmatrix}
\begin{bmatrix} e^{i \theta} & 0 \\ 0 & e^{-i \theta} \end{bmatrix}
\frac{1}{2i}
\begin{bmatrix} i & -1 \\ i & 1 \end{bmatrix} \\
&= 
\frac{1}{2i}
\begin{bmatrix} 1 & 1 \\ -i & i \end{bmatrix}
\begin{bmatrix} e^{i \theta} & 0 \\ 0 & e^{-i \theta} \end{bmatrix}
\begin{bmatrix} i & -1 \\ i & 1 \end{bmatrix} \\
&= 
\frac{1}{2i}
\begin{bmatrix} e^{i \theta} & e^{-i \theta} \\ -i e^{i \theta} & i e^{-i \theta} \end{bmatrix}
\begin{bmatrix} i & -1 \\ i & 1 \end{bmatrix} \\
&= 
\frac{1}{2i}
\begin{bmatrix} i e^{i \theta} + i e^{-i \theta} & -e^{i \theta} + e^{-i \theta} \\ e^{i \theta} - e^{-i \theta} & i e^{i \theta} + i e^{-i \theta} \end{bmatrix} \\
&= 
\frac{1}{2i}
\begin{bmatrix} i (e^{i \theta} + e^{-i \theta}) & -e^{i \theta} + e^{-i \theta} \\ e^{i \theta} - e^{-i \theta} & i (e^{i \theta} + e^{-i \theta}) \end{bmatrix} \\
&= 
\frac{1}{2i}
\begin{bmatrix} 2i \cos \theta & -2i \sin \theta \\ 2i \sin \theta & 2i \cos \theta \end{bmatrix} 
= 
\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \\
\end{split}\end{equation}
\tag{A.13}
```
となって、(A.3)式を再現できる。
ここでは行列 $A$ を求めるために固有ベクトルを射影するのではなく、オイラーの公式から出発して回転行列 $A$ の固有値と固有ベクトルを求めた。本末転倒であるが、副産物として回転行列 $A$ の固有値が $e^{i\theta}, e^{-i\theta}$ であり、対応する固有ベクトルが
```math
\boldsymbol{v}_1 = \begin{bmatrix} 1 \\ -i \end{bmatrix}, 
\boldsymbol{v}_2 = \begin{bmatrix} 1 \\ i \end{bmatrix}
\tag{A.14}
```
であることを知ることができた。

固有値 $e^{i\theta}$ とは何だろう。これを複素数に掛ければ、複素平面上で角度 $\theta$ だけ回転させることを意味する。そもそも $A$ が実空間座標平面上での角度 $\theta$ の回転を表す行列であることを考えるとこれは意味深である。射影を表す行列の固有値は $1$ と $0$ であった。$1$ は対応する固有ベクトルをそれ自身に写す固有値である。それを考えると回転行列の固有値が複素平面で回転を表しているという事実ができすぎているように思える。何か面白い解釈ができそうであるが、まだモヤモヤとしている。

## A.3 重要な規則を適用する
入力基底として標準基底 $\boldsymbol{e}\_1 = (1, 0), \boldsymbol{e}\_2 = (0, 1)$ を、出力基底として Fig.A2 に示すように標準基底を $\theta$ 回転した $\boldsymbol{w}\_1 = (\cos \theta, \sin \theta), \boldsymbol{w}\_2 = (-\sin \theta, \cos \theta)$ を用いて**重要な規則**を適用して行列 $A$ を求めることを考える。この場合、重要な規則は

>**重要な規則：** $A$ の第 $j$ 列は $T$ を $j$ 番目の基底 $\boldsymbol{e}_j$ に施すことにより求められる。
$T(\boldsymbol{e}_j) = W$ の基底ベクトルの線形結合 $= a\_{1j} \boldsymbol{w}_1 + \cdots + a\_{mj} \boldsymbol{w}_m $.

となる。
Fig.A2 から

```math
\begin{equation}\begin{split}

T(\boldsymbol{e}_1) &= 1 \cdot \boldsymbol{w}_1 + 0 \cdot \boldsymbol{w}_2, \\
T(\boldsymbol{e}_2) &= 0 \cdot \boldsymbol{w}_1 + 1 \cdot \boldsymbol{w}_2

\end{split}\end{equation}
\tag{A.15}
```
であることがわかる。
標準行列を $A$ とすると
```math
T(\boldsymbol{e}_j) = A \boldsymbol{e}_j \tag{A.16}
```
だから、(A.15)式は
```math
\begin{equation}\begin{split}

A \boldsymbol{e}_1 &= 1 \cdot \boldsymbol{w}_1 + 0 \cdot \boldsymbol{w}_2 = \begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \\
A \boldsymbol{e}_2 &= 0 \cdot \boldsymbol{w}_1 + 1 \cdot \boldsymbol{w}_2 = \begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix}

\end{split}\end{equation}
\tag{A.17}
```
と表される。これを一つの式にまとめると
```math
A \begin{bmatrix} \boldsymbol{e}_1 & \boldsymbol{e}_2 \end{bmatrix} 
=
\begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix}
\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}
\tag{A.18}
```
となる。これに $\boldsymbol{e}\_1 = (1, 0), \boldsymbol{e}\_2 = (0, 1)$ と $\boldsymbol{w}\_1 = (\cos \theta, \sin \theta), \boldsymbol{w}\_2 = (-\sin \theta, \cos \theta)$ を代入すると

```math
A \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} 
=
\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\tag{A.19}
```
となり、行列 $A$ として(A.3)式を得る。

## A.4 基底変換行列を求める
最後に基底変換行列を求めてみよう。Fig.A2 に示すように、基底は $\boldsymbol{e}\_1, \boldsymbol{e}\_2$ から $\boldsymbol{w}\_1, \boldsymbol{w}\_2$ に変わる。よって、$\boldsymbol{w}\_1, \boldsymbol{w}\_2$ を $\boldsymbol{e}\_1, \boldsymbol{e}\_2$ によって表せば基底変換行列を求めることができる。
Fig.A2 から
```math
\begin{equation}\begin{split}
\boldsymbol{w}_1 &= \cos \theta \cdot \boldsymbol{e}_1 + \sin \theta \cdot \boldsymbol{e}_2 = \begin{bmatrix} \boldsymbol{e}_1 & \boldsymbol{e}_2 \end{bmatrix} \begin{bmatrix} \cos \theta \\ \sin \theta \end{bmatrix} \\
\boldsymbol{w}_2 &= -\sin \theta \cdot \boldsymbol{e}_1 + \cos \theta \cdot \boldsymbol{e}_2= \begin{bmatrix} \boldsymbol{e}_1 & \boldsymbol{e}_2 \end{bmatrix} \begin{bmatrix} -\sin \theta \\ \cos \theta \end{bmatrix} 
\end{split}\end{equation}
\tag{A.20}
```
となる。これを一つの式にまとめると
```math
\begin{bmatrix} \boldsymbol{w}_1 & \boldsymbol{w}_2 \end{bmatrix}
=
\begin{bmatrix} \boldsymbol{e}_1 & \boldsymbol{e}_2 \end{bmatrix}
\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
\tag{A.21}
```
となり、基底変換行列は(A.3)式の $A$ と同じになる。この場合の構成図を Fig.A3 に示す。

![Fig A3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/bbd631b1-accb-0869-b776-24b1801b8d2c.png)

興味深いのは、回転後の基底での座標 $\boldsymbol{q}$ は元の基底（標準基底）での座標 $\boldsymbol{p}$ を用いて
```math
\boldsymbol{q} = A^{-1} \boldsymbol{p}
```
のように $A$ の逆行列を掛けたものとして表現できる点である。$A^{-1}$ は $-\theta$ の回転を表す行列と解釈できるので、座標系を $\theta$ 回転させると、新しい座標は元の座標を $-\theta$ 回転させたものとみなすことができる。
すなわち、点を $\theta$ 回転することは、点をそのままにして座標系を $-\theta$ 回転させることと等価である。回転を点の回転として見るか、座標系の回転として見るかは裏腹の関係にあるのが興味深い。