相似変換の可視化

1.始めに

本記事では、対称行列2次元を実例として固有値方程式の行列を相似変換したとき何が起きているのかを可視化します。

なお、以下の記事で説明した内容がベースになっていますので、先にこちらを宜しければご覧ください。


2.想定している行列の形                                                                

以下のような行列に相似変換を行ったときを想定しています。対称行列2次元です。
$$ \begin{pmatrix}  a & c \\ c  & b \end{pmatrix} \begin{pmatrix}    x \\ y \end{pmatrix} = \lambda \begin{pmatrix}    x \\ y \end{pmatrix} $$

 

3.相似変換とは何か

固有値方程式を解くときに、前処理として以下のような変換をすることがあります。

\(R^tR = E(単位行列)\)を満たすような変換行列R(2次元,対称とは限らない)が与えられたとき、行列の左側から転置行列、右側からそのままの行列として掛けて新たな行列を作成します。この処理が相似変換です。

$$ R^t\begin{pmatrix}  a & c \\ c  & b \end{pmatrix}R \Rightarrow \begin{pmatrix}  a' & c' \\ c'  & b' \end{pmatrix}$$

相似変換した行列を使った固有値方程式

$$ \begin{pmatrix}  a' & c' \\ c'  & b' \end{pmatrix} \begin{pmatrix}    x' \\ y' \end{pmatrix} = \lambda \begin{pmatrix}    x' \\ y' \end{pmatrix} $$

この相似変換のメリットですが、変換後の行列に対して固有値方程式を解くと、変換前の行列の固有値と一致します(※固有ベクトルは一致するとは限りません)。

そのため行列の\(c'\)成分をうまく0にするような変換行列を作ることができれば、\(a'\)と\(b'\)がそのまま固有値となるため、固有値方程式を簡単に解くことができます。
固有ベクトルについても逆算することで簡単に解けます。

この相似変換は何回繰り返してもOKです。1回目と2回目で違う変換行列\(R\)を使っても問題ありません。


4.変換行列\(R\)とは何か

この変換行列\(R\)のイメージを持つと理解が格段に深まります。答えを言うと回転行列です。もしくは直交座標系といっても良いです。

回転行列:

$$ R = \begin{pmatrix}  cos(θ) & -sin(θ) \\ sin(θ)  & cos(θ) \end{pmatrix} $$


以下のように\(R^tR = E(単位行列)\)を満たします。

$$ \begin{align}  R^t R &= \begin{pmatrix}  cos(θ) & sin(θ) \\ -sin(θ)  & cos(θ) \end{pmatrix}  \begin{pmatrix}  cos(θ) & -sin(θ) \\ sin(θ)  & cos(θ) \end{pmatrix} \\ &=  \begin{pmatrix}  cos^2(θ) + sin^2(θ) & -cos(θ)sin(θ) + cos(θ)sin(θ)  \\ -cos(θ)sin(θ) + cos(θ)sin(θ)  & cos^2(θ) + sin^2(θ) \end{pmatrix} \\ &= \begin{pmatrix}  1 & 0 \\ 0  & 1 \end{pmatrix}  \end{align} $$


直交座標系(※ただし原点中心):

以下図のように30度回転した座標系があるとします。X軸が\(\vec{x}=\begin{pmatrix} \frac{\sqrt{3}}{2}  \\  \frac{1}{2}  \end{pmatrix} \)、Y軸が\(\vec{y}=\begin{pmatrix} -\frac{1}{2}  \\  \frac{\sqrt{3}}{2}  \end{pmatrix} \)です。


この2つの軸を使って直交座標系を以下のように表すことが良く行われます。

$$ 直交座標系行列M = \begin{pmatrix} \vec{x}  &  \vec{y}  \end{pmatrix}  = \begin{pmatrix} \frac{\sqrt{3}}{2}  & -\frac{1}{2} \\ \frac{1}{2} & \frac{\sqrt{3}}{2} \end{pmatrix} $$


こちらも\(M^tM = E(単位行列)\)を満たします。

$$ M^tM = \begin{pmatrix} \vec{x}^t  \\  \vec{y}^t  \end{pmatrix} \begin{pmatrix} \vec{x}  &  \vec{y}  \end{pmatrix} =      \begin{pmatrix} \vec{x}^t \vec{x}   & \vec{x}^t \vec{y} \\ \vec{y}^t \vec{x} & \vec{y}^t \vec{y} \end{pmatrix}               = \begin{pmatrix}  1 & 0 \\ 0  & 1 \end{pmatrix}$$

以下は各要素の計算結果です。\(\vec{x}、\vec{y} \)は直交しているため、この2つの内積は0です。また\(\vec{x}、\vec{y} \)は長さを1としているのでそれぞれの内積1です。

$$ \vec{x}^t \vec{x} =  \begin{pmatrix} \frac{\sqrt{3}}{2}  &  \frac{1}{2}  \end{pmatrix}             \begin{pmatrix} \frac{\sqrt{3}}{2}  \\  \frac{1}{2}  \end{pmatrix}   = 1$$


$$ \vec{x}^t \vec{y} =  \begin{pmatrix} \frac{\sqrt{3}}{2}  &  \frac{1}{2}  \end{pmatrix}             \begin{pmatrix} -\frac{1}{2}  \\  \frac{\sqrt{3}}{2}  \end{pmatrix}   = 0$$


$$ \vec{y}^t \vec{x} =  \begin{pmatrix} -\frac{1}{2}  &  \frac{\sqrt{3}}{2} \end{pmatrix}             \begin{pmatrix}  \frac{\sqrt{3}}{2}  \\  \frac{1}{2}   \end{pmatrix}   = 0$$

$$ \vec{y}^t \vec{y} =  \begin{pmatrix} -\frac{1}{2}  &  \frac{\sqrt{3}}{2}  \end{pmatrix}             \begin{pmatrix} -\frac{1}{2}  \\  \frac{\sqrt{3}}{2}  \end{pmatrix}   = 1$$


また、この直交座標系行列は、回転行列に必ず書き換えられます。直交座標系行列と回転行列は同一なのです。


$$ 直交座標系行列M = \begin{pmatrix} \vec{x}  &  \vec{y}  \end{pmatrix}  = \begin{pmatrix} \frac{\sqrt{3}}{2}  & -\frac{1}{2} \\ \frac{1}{2} & \frac{\sqrt{3}}{2} \end{pmatrix}  =                             \begin{pmatrix}  cos(30°) & -sin(30°) \\ sin(30°)  & cos(30°) \end{pmatrix}$$


5.相似変換の本質的な意味

相似変換とは、「楕円(または一般二次曲線)を回転させること」です。
突然「楕円(または一般二次曲線)」が出てきましたが、これは固有値式の本質から出ている考えです。

固有値方程式の本質は、「楕円(または一般二次曲線)と半径1の円の接点を求める問題」です。この辺りの説明は「M1-1.固有値方程式の可視化(対称行列の場合)」に書いていますのでそちらをご参照ください。

そのため、「相似変換を行って固有値方程式を解く」という作業は、「楕円(または一般二次曲線)を回転させて、その楕円(または一般二次曲線)と半径1の円の接点を求める問題」と言い換えることができます。


6.楕円(または一般二次曲線)の回転

まず楕円(または一般二次曲線)を行列表現していきます。以下のように書き換えられます。


$$ ax^2 + by^2 + c x y = \lambda $$

$$ \Downarrow $$

$$ \begin{pmatrix}  x & y \end{pmatrix}  \begin{pmatrix}  a & \frac{c}{2} \\ \frac{c}{2}  & b \end{pmatrix} \begin{pmatrix}    x \\ y \end{pmatrix} = \lambda  $$

ポイントは、行列の左側と右側両方から\(\begin{pmatrix} x \\ y\end{pmatrix}\)とその転置が掛かっていることです。相似変換も左側と右側に変換行列とその転置が掛かっていましたので類似性があります。

次に\(\begin{pmatrix} x \\ y\end{pmatrix}\)は実は別のベクトル\(\begin{pmatrix} x' \\ y'\end{pmatrix}\)が回転したものだった、という式を作ります。

$$  \begin{pmatrix}    x \\ y \end{pmatrix}  =   \begin{pmatrix}  cos(θ) & -sin(θ) \\ sin(θ)  & cos(θ) \end{pmatrix} \begin{pmatrix}    x' \\ y' \end{pmatrix} $$

この式を楕円(または一般二次曲線)の式に代入します。


$$ \begin{pmatrix}  x' & y' \end{pmatrix} \begin{pmatrix}  cos(θ) & sin(θ) \\ -sin(θ)  & cos(θ) \end{pmatrix} \begin{pmatrix}  a & \frac{c}{2} \\ \frac{c}{2}  & b \end{pmatrix}  \begin{pmatrix}  cos(θ) & -sin(θ) \\ sin(θ)  & cos(θ) \end{pmatrix} \begin{pmatrix}    x' \\ y' \end{pmatrix} = \lambda $$


そして左辺に2x2行列が3つありますが、それを1つにまとめて式を見やすくするとこのようになります。


$$ \begin{pmatrix}  x' & y' \end{pmatrix}  \begin{pmatrix}  a' & \frac{c'}{2} \\ \frac{c'}{2}  & b' \end{pmatrix}   \begin{pmatrix}    x' \\ y' \end{pmatrix} = \lambda $$


そしてこの楕円(または一般二次曲線)に対してラグランジュの未定乗数法で半径1の円と接する点を求める式を立てれば、相似変換した行列の固有値方程式が完成します。


ポイント2つあります。

ポイント1.右辺の\(\lambda\)は回転に対して何の影響も受けていません。この\(\lambda\)はそのまま固有値を表しています。(その理由も「M1-1.固有値方程式の可視化(対称行列の場合)」に書いていますのでそちらをご参照ください)
つまり、相似変換によって固有値は変わりません。

ポイント2.相似変換で回転行列を左側と右側から掛ける理由は、この楕円の回転で考えると必然であることが分かります。



7.一般解の自動計算

一般解をjavascriptで実装しました。まずは行列を色々と変更した時の固有値、固有ベクトルを確認してみてください。また下にグラフも載せています。このグラフの意味は以下ブログに詳細を書いています。


行列の各要素


固有値、固有ベクトル、グラフ



6.最後に

いかがでしたでしょうか。固有値の相似変換も、楕円(または一般二次曲線)という具体的に可視化できるものを考えると、イメージ構築しやすいのではないでしょうか。お役に立ちましたら幸いです。


コメント