2x2実正方行列で線形写像を体験する

# はじめに
この記事では，2x2実正方行列での線形写像可視化ツールを使って平面から平面への線形写像を体験します．このツールは線形写像の独学用の教育支援ソフトウェアです．
線形代数には1次連立方程式の理論と線形写像の２つの柱があります．このツールで体験できるのは線形写像です．1次連立方程式や内積は本ツールでは体験できません．また，学校で学習する逆行列や固有値の求め方，行列の対角化といったいわゆる計算スキルは身に付きません．本記事はこれらの計算方法は知っていて，線形代数の定期試験も合格点をもらえるレベルにあるけれど，どうにも概念が腹落ちしないとか，この行列の計算スキルに意味を見出せないという学習者に向けて，実2次元における写像を体験していただき，学校で学習したことの意味の理解を深めることを目的としています．想定レベルは大学低学年の線形代数です．
(**おことわり**)
本記事は線形代数の問題が解けるようになる計算スキルを習得するためのものではありませんでの，試験対策には使えません．
# 支援ツール
ツールの場所はここです．
[著者のサーバ](http://www.olt.link/mapping.html)
TLSになっていませんので，実際にソースコードを見てから動かしたいという方はHTMLをダウンロードしてローカル環境で直接ブラウザで見てください．
ソースコード(HTML)ファイルはここにあります．
[Github.com](https://github.com/h-hata/linearmapping.git)
HTMLとjavascriptは一つのファイルに入っており，javascriptは他のライブラリを利用していませんので，HTMLファイルさえあればネット環境のない場所でも動作します．左側のキャンバスに何かを描くと，右側のキャンバスに写像が表示されます．線形代数を一応学んできた人には，説明なくとも何となく線形写像が体験できると思います．キーボードショートカットは以下の通りです．
e:直交座標と固有ベクトル座標の切替
c:描画クリア
u:Undo（一描画分取り消し）
上部の行列成分を変更すると自動的にそれまでの描画はクリアされます．

# 課題
以下のいくつかの課題に取り組んでみます．それぞれの課題は定期試験に出題されるような問題ではなく，ちょっと答えづらいような質問形式の課題です。

課題一覧
Q0 線形写像の線形性を確認する
Q1 行列式が正と負になる行列の写像はどのように異なるでしょうか？
Q2 行列式が0になる行列での線形写像はどうなるでしょうか？
Q3 なんとなくでいいので固有ベクトルの方向を調べてみましょう
Q4 対角行列の写像の性質はどのようなものでしょうか？
Q5 対称行列（エルミート）の写像の性質はどのようなものでしょうか？
Q6 直交行列（ユニタリ）の写像の性質はどのようなものでしょうか？
Q7 行列の対角化の利点を確認しましょう

Q7が本記事の主テーマですので，まずQ7の最後の図をご覧になって理解いただけたなら
本記事をお読みになる必要はありません．

## Q0 線形写像の線形性を確認する
写像Aによって点aがa'に写像されるとします。aをベクトルとしてみると
A(a+b)=A(a)+A(b)=a'+b'
A(kc)=kA(c)=kc'
写像Aが上記の性質をもつと線形性写像と言われます。
前者の性質は2次元ベクトルの場合、原点を通る三角形は写像後も原点を通る三角形（もしくは直線）になります。
原点を通る三角形を各辺異なる三色描いてみます。原点を通らない辺（緑）をd=a-bとしてみると、b=a+dです。線形写像では、A(b)=A(a+d)=A(a)+A(d)となります。b=a+dなら写像後もA(b)=A(a)+A(d)で三角形の性質が保たれています。線形写像の第1の性質により、原点を頂点とする三角形は写像後も原点を頂点とする三角形になります。
第2の性質は、あるベクトルをk倍して写像しても写像してからk倍しても同じ点に写像される、というものです。実際に原点から適当な方向に赤い線を引いて、それを同じ方向に何倍かしてオレンジ色の線を引いてみます。この例では2倍していますので、k=2です。すると、写像後の赤とオレンジの長さの比率が2倍のまま保たれています。同じ方向で倍率も同じで写像されるのが線形写像の第2の性質です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/a72054ce-2bc1-5ba8-ac37-6f41b560979b.png)

## Q1 行列式が正と負になる行列の写像はどのように異なるでしょうか？
まず行列式が正になる二つの行列で遊んでみます．行列式は$A_{11}*A_{22}-A_{12}*A_{21}$です．対角成分の積が正になるように大きめにとれば，行列式もせいになります．あまり大きすぎると，右側の描画範囲からはみ出しますので注意します．最初はこれでやってみます．
```math
\begin{pmatrix} 3 & 2 \\ 1 & 3 \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix}=\begin{pmatrix} x' \\ y' \end{pmatrix}
```
関係式は上式の通りで，$(x,y)$が左側に，$(x',y')$が右側に表示されます．自由に描けるのは左側座標面でそれに合わせて右側に自動的に写像を描画します．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/ac36e885-4e75-3ff5-16ee-37a4a989a1ba.png)


X軸とY軸がそれぞれ斜めになり，文字が歪（ゆが）んでいますが，読めないことはありません．AやBという文字が何となく同じ方向に**引っ張られている**感じがします．この引っ張られている方向というのは重要です．後ほど固有ベクトルというものが出てきますがその方向なのです．


もうひとつ別の例です．これも行列式が正になります．
```math
\begin{pmatrix} 3 & -2 \\ 1 & 3 \end{pmatrix}
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/3f0cc9a6-69a6-4d7f-22c2-9f877540ba6f.png)


前の例と違うのは引っ張られている方向がなさそうということです．もし左の図が左下と右上の方向に引っ張られれば，右の図では赤と黒の線が歩み寄るはずです．前の例ではそうなっていました．しかしこの図では黒い線は赤い線から逃げています．左上と右下の方向に引っ張られると黒と青は歩み寄るはずですが，やはり青は黒から逃げています．引っ張られるというよりも，捻じ曲げられている（**回転している**）というイメージの変換です．．このような行列は，固有ベクトルが存在しません．後ほど固有ベクトルは登場しますので，ここでは引っ張られるパターン（固有ベクトルあり）と回転するパターン（固有ベクトルなし）があると覚えておきましょう．

最後に行列式が負値となる例です．
```math
\begin{pmatrix} 1 & 2 \\ 1 & 1 \end{pmatrix}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/8e86457e-0b43-e912-9c4e-4155964cad87.png)




この変換の特徴は文字が**裏返っている**とことです．左図では反時計回りにXとY軸上の線が赤黒青緑の順だったのに，写像ではその色順は時計回りに変化しています．
このように正則行列（行列式は0ではない）でもいろいろなタイプの写像があります．

### 復習（固有値の求めかた）
```math
A=\begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix}
```
の固有値を$\lambda$で，固有ベクトルを$x$とします．固有ベクトルは$\mathbf x$は行列$A$による写像で向きを変えず大きさが$\lambda$倍になります．すなわち$A\mathbf x=\lambda \mathbf x$です．$A$は行列で$\lambda$は実数なので左の式が何となく気持ちが悪いと感じられる方もいらっしゃると思います．実際に行列要素で計算して両辺とも2次元の縦ベクトルになることが確かめられるでしょう．もし両辺を行列とベクトルの式として書き直すなら右辺は$\lambda I\mathbf x$と単位行列$I$を使って書けます（高校数学Cでは単位行列を$E$と習いますが工学では$I$と書く人が多いようです）．すると移行して$(A-\lambda I)\mathbf x=0$となります．$\mathbf x$はゼロベクトルではありませんので，左の式が成立するには$(A-\lambda I)$は原点以外の点を原点に写像できる行列でなければなりません．このような行列は行列式が0となります(Q3の零空間参照)．よって
```math
\begin{vmatrix} A_{11}-\lambda & A_{12} \\ A_{21} & A_{22}-\lambda \end{vmatrix}=0
```
とならなければなりません．それを書き直すと$(A_{11}-\lambda)(A_{22}-\lambda)-A_{12}A_{22}=0$で，展開すると
```math
\lambda ^2  - (A_{11}+A_{22})\lambda +(A_{11}A_{22}-A_{11}A_{22})=0
```
これを固有方程式といいます．
見やすくするために$t=A_{11}+A_{22}$と$d=A_{11}A_{22}-A_{12}A_{21}$とすると$\lambda ^2  - t\lambda +d=0$となり，この固有方程式が実数解を持つ（引っ張り行列になる）には判別式($t^2-4d$)の値が正にならなければなりません．$d$は$A$の行列式になっているので$t$に比べて大きくなりすぎると判別式が負（回転行列）になり固有方程式は解を持たず固有ベクトルが存在しません．また$d$が負であれば判別式は必ず正（引っ張り行列）になり，固有ベクトルが存在します．これはQ6の追加課題で可視化して確かめられます．
固有値は2次方程式の解の公式から
```math
\lambda =\frac{t \pm \sqrt{t^2-4d}}{2t}
```

で算出できます．これを$A\mathbf x=\lambda \mathbf x$に戻して$\mathbf x$が求まります．$\mathbf x=(x,y)$は解が無限個ありますが，本ツールでは$x$を正方向にとり長さを1に正規化したベクトルを表示しています.


## Q2 行列式が0になる行列での線形写像はどうなるでしょうか？
まず2つの行が等しい場合
```math
\begin{pmatrix} 1 & 2 \\ 1 & 2 \end{pmatrix}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/38283323-de23-1202-7ad7-d2b7d286ac96.png)

どのような図形を描いても$y=x$という直線に写像されてしまいます．もとの画像の形が全く失われています．このためもとに戻せません．Q1では，引っ張り，回転，裏返りは元に戻そうと思えば，縮めたり反対に回転したりすれば元に戻りそうな気がします．この逆操作をする行列が逆行列になります．しかし，この例では完全に像が**潰れて**しまっているので元に戻せません．これが逆行列が存在しないということです．工学では数学を道具として使いますので，（教科書には書かれませんが）行列式が0になると変換が扱いにくくなるので，**たちが悪い**行列と言われたりして嫌われがちです．しかし同じ工学でも，行列式が0である行列（不可逆行列）を好んで使う分野もあります．例えば情報通信で使われる誤り訂正符号では，不可逆行列$A$を選んで$Ax=0$を満たす$x$だけを通信符号として使用します．受信側では受信信号$y$から$Ay=b$を計算して，$b=0$なら伝送中のビット誤りなし，もし$b\neq0$なら$b$の1となる位置から誤りビットを特定します．

もう一つ別の不可逆行列の例です．
```math
\begin{pmatrix} 1 & 2 \\ 0.5 & 1 \end{pmatrix}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/0d120f96-075a-6509-9d39-99d111b51398.png)

今度は第2行が第1行の半分になっています．これでも直線に写像されることに変わりがないのですが，その直線は$y=0.5x$になっています．直線の傾きは第1行と第2行の比で決まります．第1列と第2列の比（も含めて値）によって，ある点がその直線上のどの位置に写像されるのかを決まります．

## Q3 なんとなくでいいので固有ベクトルの方向を調べてみましょう
固有ベクトルは$Ax=λx$を満たすベクトル$x$のことで，$A$で変換される前と後で**同じ方向を向いています**．大きさは同じではなく$λ$倍されています．$λ$は負数のこともあり，その場合は変換後は180°逆方向を向きます．
Q1で使った行列で固有ベクトルの方向を調べてみます．

```math
\begin{pmatrix} 3 & 2 \\ 1 & 3 \end{pmatrix}
```
下図に従って，固有ベクトルの方向を探ってみましょう．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/447f81e8-c089-2e75-d0f3-e3fb9139372f.png)
マウスの左ボタンを戻すと位置が確定します．見つけ方は同じ方向を探るのもありますが，半径１の円を描くようにマウスを動かすと，写像の直線は同じ長さではなく伸びたり縮んだりします．長くなる方向と短くなる方向が固有ベクトルの大体の方向です(最大化する方向が必ずしも固有ベクトルの方向ではありません)．描画される場所の上部にEigen Values(固有値）という名前のチェックボックスがあります．これをクリックすると，固有ベクトルの方向に座標軸を描きなおします．固有ベクトルは原点から，この軸上にピッタリ乗るはずです．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/4916323e-5f80-88f7-55fa-cf95f6db4253.png)



次に固有値1をもつ写像の特徴を調べます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/d75b1b80-76c7-82e9-ae6d-4d46d6ef696a.png)


固有値は固有ベクトル方向への倍率です．もし固有値が１なら，固有ベクトルは方向が同じで倍率1倍ですから写像も同じベクトルになります．このような，写像が原像と同じ点のことを**不動点**といいます．実際に不動点の存在を確かめてみます．上図の通り行列を変更して$y=(1/3)x$の直線を引き，その上にドットを乗せてみます．すると写像も同じ点になります．

次に固有値が0の場合を確かめましょう．Q2で使った行列式が0の不可逆行列には0という値をもつ固有値があります．
```math
\begin{pmatrix} 1 & 2 \\ 1 & 2 \end{pmatrix}
```
行列式が0なのに固有ベクトルが２つあります．どのような図形も$y=x$へ写されるのですから，(1,1)の方向のベクトルは固有ベクトルであることは分かります．しかし別方向にも固有ベクトルがあるとはどういうことでしょうか？それが下の図です．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/8d38027e-77da-936b-096f-53e330faf145.png)

右上方向に延びる軸が$y=x$で固有値L2=3方向の固有ベクトル軸です．それに斜交する(0.89,-0.45)方向に直線を引いてどのような像がみられるかを調べます．すると，右側の写像には何も現れていません．この赤い**直線はすべて原点に写像**されているのです．この方向も固有ベクトルです．チェックボックスの横にあるように，原点に集まる方向の固有値は0になっています．固有値を求めるための固有方程式は
```math
\lambda^2-tr\lambda+det=0
```
ですから($tr$はトレース$=A_{11}+A_{22}$，$det$は行列式$=A_{11}A_{22}-A_{12}A_{21}$)，行列式が0であれば0という固有値を持ちます．そしてそのベクトルは$Ax=0$となります．Aの行列式が0の場合$Ax=0$を満たす原点以外の$x$が存在してその$x$の存在する部分空間を零空間といいました．**零空間**の要素固有ベクトルです．

## Q4 対角行列の写像の性質はどのようなものでしょうか？
対角行列は非対角成分が0となっている行列です．対角成分に一つでも0が含まれると行列式が0になり非可逆になります．ここでは正則行列のみ考えます．
```math
\begin{pmatrix} 1 & 0 \\ 0 & 2 \end{pmatrix}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/962b4811-0a02-fa2c-11af-0942989d1682.png)



対角行列による写像の特徴は**xy軸に沿って位置した長方形は回転せずに同じくxy軸に沿った長方形に写像する**という点です．一般的な正則行列では，長方形が平行四辺形になったり，原点の周りに回転します．対角行列の写像では，それらの性質は見られません．対角
写像の変換式は以下のようになります．
```math
x_2=A_{11}x_1\\
y_2=A_{22}y_1
```
すなわち成分ごとに対角成分で定められた倍率で拡大縮小すればいいのです．この**x方向の変化はy方向に影響しない，y方向の変化はx方向に影響しない**性質はいろいろな分野で好まれます．Q7で行う対角化は，もともと対角行列ではなかった行列で表されている線形写像を，座標変換することでこの対角行列の素直な性質を利用しようとするものです．確率統計での多変量解析ではこの対角行列を目指して行列の対角化が行われます．

## Q5 対称行列（エルミート）の写像の性質はどのようなものでしょうか？
対称行列は対角成分に対称な要素が同じ値をもつ行列です．$A_{ij}=A_{ji}$ですので，行と列を入れ替えても変化しません．要素が複素数の場合は行と列を入れ替えて，かつ複素共役にします．$A_{ij}=A_{ji}^\ast$です．このような複素数の世界での対称行列はエルミート行列といいます．現実世界の現象を行列で表現すると多くの場合対称行列になります．ある性質1と別の性質2の関係は,たいていの場合性質2と性質1の関係に等しいです．
```math
\begin{pmatrix} 1 & -1 \\ -1 & 2 \end{pmatrix}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/e1e970be-8af7-8f54-e30f-f5476d492b56.png)


対称行列では、ある特定の方向を向いた垂直に交差する2直線は垂直の関係を保ったまま同じ方向に写像されます。上図では赤と青の直線は垂直を保持しているのに、オレンジと緑の直線は垂直ではなくなっています。このある特定の方向が固有ベクトルの方向です。すると**対称行列の固有ベクトルは直交する**ともいえます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/69046c2f-531e-c1a3-07f4-41d6af1d4c62.png)

正円を写像してみます（マウスで書いたので黒い円ががたがたしていますが半径1の円だとお考え下さい）．円は一般的な線形写像でも正円は楕円に写像されますが対称行列ではこの**楕円が固有ベクトルの方向を向く**ことが特徴です．長径方向のみならず短径方向も固有ベクトルです．楕円は円を引っ張ったり縮めたりしてできますが，引っ張ることで固有ベクトルの方向に長径が向きます．さらに別の固有ベクトル方向に引っ張ると楕円が回転して長径方向が固有ベクトルとずれてしまいます．対称行列では２つめの伸長が最初の伸長と直交しますので楕円が回転せず固有ベクトル方向を向くわけです．


## Q6 直交行列（ユニタリ）の写像の性質はどのようなものでしょうか？
直交行列では，行列の各列を縦ベクトルとみなしたときお互いが直交しています．一般的に行列に単位ベクトルを掛け合わせてみます．
```math
\begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix}
\begin{pmatrix}1\\0\end{pmatrix}=\begin{pmatrix}A_{11}\\A_{21}\end{pmatrix} \\
\begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix}
\begin{pmatrix}0\\1\end{pmatrix}=\begin{pmatrix}A_{12}\\A_{22}\end{pmatrix} 
```
上式のように行列の特定の**列を打ち抜いています**.行番号に相当する場所が1でそれ以外を0にした縦ベクトルでる単位ベクトルで特定の列を打ち抜けるのです．直交行列では単位ベクトルの写像のベクトルはもすべてお互いが直交していることになります．すなわち直交行列は**直交座標系を他の直交座標系に変換します**．複素数を要素に含む直交行列はユニタリ行列といいます．ユニタリとは内積を変化させないという意味です．

最初の直交行列の例は入れ替え行列です．
```math
\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}
```
各列は$^t(0,1)$と$^t(1,0)$で内積が0なので確かに直交しています．この行列は$x$軸と$y$軸を入れ替えます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/8501a933-2d72-f66f-fa0b-e16ae992b7d5.png)

左図を紫の線を中心軸としてこの面を180度回転すると右図になります．回転軸は方向を変えないので固有ベクトルです．また回転軸に直交する方向も180度向きを変えますが，固有値-1の固有ベクトルの方向です．対称行列の固有ベクトルは直交しましたが，入れ替え行列も対称行列になっています．



もう一つの直交行列の例は回転行列です．角$\theta$回転する行列は
```math
\begin{pmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{pmatrix}
```
です．各列の内積は$cos\theta sin\theta-cos\theta sin\theta=0$なので確かに直交しています．30度回転する行列は．
```math
\begin{pmatrix} 0.87 & -0.5 \\ 0.5 & 0.87 \end{pmatrix}
```
これを使って回転してみます．
先の例と同じく直交座標を別の直交座標に変換していますが，回転行列には固有ベクトルがありません．この状態を実際にベクトルを動かしながら同じ方向になる角度が存在しないことが確かめられます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/01d773dd-7c30-0d51-2072-4f429ac3dc03.png)
3次元空間の直交行列のイメージは，右手の親指，人差し指，中指をそれぞれx軸y軸z軸に見立ててお互いを直交させて指の付け根（そこが原点）を固定して手首を動かします．これが回転操作に相当します．いっぽう入れ替えは，右手から左手に交代になります．
### Q6 （追加課題）回転行列と入れ替え行列を組み合わせた（積をとった）行列は固有値を持つでしょうか？
```math
\begin{pmatrix} -0.5&0.87   \\ 0.87 & 0.5\end{pmatrix}
```
で試してください，xy軸を入れ替えてから30度回転しています．入れ替え行列の行列式が負だったのでこの行列の行列式も負になります．行列式が負なら固有方程式の判別式は正になるため固有値が存在しました．これをツールで確かめるには，上図と同じように原点の周りをぐるっと一周してみればはっきりとわかります．行列式が負の写像は裏返っているために回転方向が逆になります．するとどこかで出会えるはずです．その方向が固有ベクトルです．これが行列式が負の行列は固有ベクトルをもつ理由です．


## Q7 行列の対角化の利点を確認しましょう
行列の対角化を誤解している学生がたまにいます．ある行の何倍かを他の行に加えて上三角行列に変形して対角成分にピボットを抽出するガウスの消去法は，**これは対角化ではありません**．
行列$A$の対角化とは，その行列の固有ベクトル行列$P$を使って，$D=P^{-1}AP$のように$A$から$D$を導くことでした．線形代数の後期期末試験に出題される典型的な問題で，これができれば合格です．変換式に右から$P^{-1}$を，左から$P$をかけると$A=PDP^{-1}$のように変形できます．なんの意味があるのか分からなくても試験には合格しますが，なんとなく腹おちせずモヤモヤ感が残っている人もいるのではないでしょうか（これを習う時期は後期期末試験前のことが多く，理解よりも，進級や高いGPA獲得が優先する背景もあります）．ここでは$A=PDP^{-1}$の意味を理解することを目的に，学習支援ツールを使って対角化の利点を確認します．
### 行列*A*による写像
まず$A=PDP^{-1}$の右辺である$A$について，復習を兼ねて写像を確認します．Q7で使う行列は
```math
A=\begin{pmatrix} 1&2   \\ 4& 3\end{pmatrix}
```
とします．
まずどこか適当に点を打って，この行列$A$で写像されていることを確認します．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/c381e886-d288-520c-34e9-ebcb195b1b2f.png)
上図のように，原像を$\dot{x}=(-1.0,0.5)$に置きました．上付きドットでベクトルを表します．$A\dot{x}=\dot{y}$のとおり
```math
\left\{
\begin{array}{l}
1x+2y=x' \\
4x+3y=y'
\end{array}
\right.
```
に$\dot{x}=(x,y)=(-1.0,0.5)$を代入すると，$\dot{y}(x',y')=(0.0,-2.5)$が得られるというわけでした．
いったんここで行列$A$のことを忘れましょう．
#### ベクトル空間と座標軸の復習
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/72c1d5a6-fb7f-f3f7-9146-47d4f79f8dcc.png)
ベクトル空間には原点とベクトルが存在できます．ベクトルは原点を始点とすれば終点位置が決まりますので，原点と点の*位置*が存在できるといってもいいでしょう．しかし，座標点や長さ，内積といった機能はありません．ベクトル空間には座標点や座標軸は装備されていないのでした．座標軸はオプション品です．このオプションを搭載せずにベクトル空間を使うのは不便なので，ほとんどの場合このオプションを使います．しかし，座標軸オプションはラーメンのトッピングと異なりどれか一つしか選択できません．あるベクトル空間上の点は，同じ位置の点なのにタイプ１座標軸とタイプ２座標軸では座標値が異なります．次のステップに進む前に，ひとつのベクトル空間の上に乗せる座標軸は交換できることを思い出しておきましょう．



### 直交座標系から固有ベクトル座標系への座標変換
座標変換を体験してみましょう．座標変換はある座標から別の座標軸に交換したときに，ベクトル空間上の点の座標値がどのように変化するのかその変化のルールです．これは，元の座標の単位ベクトルが別の座標の単位ベクトルにどのように変換されるのかによって決まります．ここでは元の座標の単位ベクトル$e_1=(1,0)$と$e2_(0,1)$がそれぞれ別のベクトル$v1=(v1_x,v1_y)$と$v_2=(v2_x,v2_y)$に線形変換されるものとします．どのような行列$P$なら$e_1$を$v1$へ，$e_2$を$v2$に変化させてくれるのでしょうか．その答はすでにQ6で，単位ベクトルは行列の列を打ち抜くということで得られています．新座標軸の単位ベクトルを旧座標軸での座標点で表した$(v1_x,v1_y)$と$(v2_x,v2_y)$を縦に並べた行列$P$
```math
P=\begin{pmatrix} v1_x&v2_x   \\ v1_y& v2_y\end{pmatrix}
```
で単位ベクトルを新単位ベクトルに写せます．
点$\dot{x}=(x,y)$の座標点は新座標軸ではどう変わるのでしょうか．この点は新座標軸では$P^{-1}\dot{x}$として逆行列をかけた値になります．点の位置は変わっていませんが，座標軸を変化したことで座標の値が変わります．なぜ逆行列になるのかは成分での計算で比較すると分かりますが，イメージとして一次元ベクトル空間で考えてみると良く分かります．旧座標軸での単位ベクトルは1m(メートル）だったものを新しい座標軸では単位ベクトルを1kmに変更します．単位ベクトルが1000倍されるのでP=1000です．いっぽう原点からXメートルの位置にあった点の座標はXでしたが，新座標軸でのその点の座標はX/1000(km)とPの逆数になります．単位ベクトルが大きくなると，位置の座標値は小さくならなければならないのでした．実際にこれを体験してみます．
前にうった点$\dot{x}=(-1.0,0.5)$を固有ベクトルを単位ベクトルとする別の座標軸（固有ベクトル座標）に変更して，座標値がどのように変化するのかを確認します．図のように直交座標系でマウスポインタを$(-1.0,0.5)$に置いた状態でキーボードにeキーを押します．これで，直交座標と固有ベクトル座標を差し替えできます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/ebbcd42f-9a42-fd3a-a952-4e0cc7610ab1.png)
まだ原像の左面だけに注目しておいてください．上図では左右に二つの面が描いてありますが，これらは支援ツール画面上の左面の遷移を表しており．点は移動していませんが座標点は$(x,y)=(-1.0,0.5)$から$(p,q)=(-1.18,-0.37)$に変わりました．固有ベクトルは$(0.71,-0.71)$と$(0.45,0.89)$の２つありますので，$P$は
```math
P=\begin{pmatrix} 0.71&0.45\\-0.71&0.89\end{pmatrix}
```
です．行列式は$|P|=0.71 \times 0.45+0.71 \times 0.89=0.9514$となり逆行列は
```math
P^{-1}=\begin{pmatrix} 0.94&-0.47\\0.75&0.75\end{pmatrix} \\
P^{-1}\dot{x}=\begin{pmatrix} 0.94&-0.47\\0.75&0.75\end{pmatrix}\begin{pmatrix} -1.0\\0.5\end{pmatrix}=\begin{pmatrix} -1.18\\-0.38\end{pmatrix}
```
となります．画面では固有ベクトルの座標値を小数第2位までしか表示していないため多少の誤差がでています．
### 固有ベクトル座標での写像A
直交座標系で行列$A$で表されていた線形写像*A*は，固有ベクトル座標では対角行列$D$になります．$D$は対角要素に固有値を持ちます．
```math
D=\begin{pmatrix} -1&0\\0&5\end{pmatrix} 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/ed91d789-8013-87ff-93af-a75c66628acb.png)
固有ベクトル座標系では原像の座標が$P^{-1}\dot{x}$でしたので，写像の点は$DP^{-1}\dot{x}$となります．図にあるように実際，$P^{-1}\dot{x}=(-1.18,-0.37)$は$DP^{-1}\dot{x}=(1.18,-1.86)$に写っています．それぞれの成分を対角要素倍する対角行列の写像の性質がみられます．
この対角行列の性質は便利です．たとえば写像を何回も繰り返し，点が目まぐるしく移動する場合を想定します．$k$回写像を繰り返すと直交座標では$\dot{x}$は$A^k\dot{x}$に移動します．$A$が分かっていても$A^k$の計算には時間がかかります．いっぽう固有ベクトル座標系でも$k$ 回目の到達点は$D^kP^{-1}\dot{x}$にはなりますが，$D$が対角行列で
```math
D=\begin{pmatrix} L_1&0\\0&L_2\end{pmatrix} 
```
であれば
```math
D^k=\begin{pmatrix} L_1^k&0\\0&L_2^k\end{pmatrix} 
```
のようにかなり簡単に$D^kP^{-1}\dot{x}$が計算できます．わざわざ直交座標系から固有ベクトル座標系に変更したのは，この対角行列の便利な性質を利用したかったからなのでした．

### 固有ベクトル座標系から直交座標系へ戻す座標変換
固有ベクトル座標系で$D$を使って写像した点$DP^{-1}\dot{x}$は固有ベクトル座標で表示されていますので，この点を固定したまま直交座標に座標軸を戻してみます．直交座標系から固有ベクトル座標系へは旧座標に$P^{-1}$を左からかけましたが．固有ベクトル座標系から直交座標系へはその逆行列$P$を左からかければよいのです．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/979b6cbb-9350-d779-ebeb-8a0b4cc1a393.png)
$P$は
```math
P=\begin{pmatrix} 0.71&0.45\\-0.71&0.89\end{pmatrix}
```
でしたので，$DP^{-1}\dot{x}$に$P$を左からかけて
```math
PDP^{-1}\dot{x}=\begin{pmatrix} 0.71&0.45\\-0.71&0.89\end{pmatrix}\begin{pmatrix} 1.18\\-1.86\end{pmatrix}\\
=\begin{pmatrix} 0\\-2.5\end{pmatrix}
```
この座標点は確かに直交座標系で行列Aを使って写像した$A\dot{x}$の座標点になっています．

### Q7まとめ
直交座標系である点$\dot{x}$を別の点$\dot{y}$に写す線形写像**A**は行列$A$で表され$A\dot{x}=\dot{y}$で関係づけられました．この写像**A**を行列$A$を使わずに$A$の固有値だけを使って$PDP^{-1}\dot{x}=\dot{y}$としても$\dot{y}$を求めることができました．これを図にまとめると以下のようになります．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135512/529b0113-4a7a-6673-7581-41d7399f7c1f.png)
直接$\dot{x}$から$\dot{y}$に至るには行列$A$をつかう直接ルートのほかに，多少迂回をしますが$PDP^{-1}$を使う別ルートもあります．どちらを使っても$\dot{y}=A\dot{x}=PDP^{-1}\dot{x}$で$\dot{y}$に到達できます．これが$A=PDP^{-1}$すなわち両辺に右から$P$を左から$P^{-1}$をかけることでできた$A$の対角化$D=P^{-1}AP$の正体でした．
写像**A**を繰り返し行って$\dot{x_0}$から$\dot{x_k}$に至る写像は直接ルートでは$A^k\dot{x_0}=\dot{x_k}$ですが，間接ルートでは$(PDP^{-1})(PDP^{-1})...(PDP^{-1})(PDP^{-1})\dot{x_0}=\dot{x_k}$です．行列の積では結合法則が使えますので，隣り合っている$P^{-1}$と$P$を先にかけて単位ベクトルにしておくと$PD^kP^{-1}\dot{x_0}$=\dot{x_k}となり，直接$A^k$を計算するよりも$D^k$の方が断然お得です．このように工学の分野では，現世でのハードモードをいったん異世界に転生してイージーモードで何かをやって現世に戻ってくるというチートな手法は非常によく使われる定番ストーリーなのです．