固有値・固有ベクトル②(行列のn乗を理解する)|行列〜線形代数の基本を確認する #4

f:id:lib-arts:20210213195311p:plain

当シリーズでは高校〜大学教養レベルの行列〜線形代数のトピックを簡単に取り扱います。#1では外積の定義とその活用について、#2では逆行列の計算について、#3では固有値固有ベクトルの計算についてそれぞれ簡単に取り扱いました。

#4では行列のn乗について取り扱います。下記などを参考にします。

線型代数学/行列の対角化 - Wikibooks

以下、目次になります。
1. 行列のn乗の計算の流れ
2. 固有値固有ベクトルを用いた行列のn乗の計算の理解
3. まとめ


1. 行列のn乗の計算の流れ
1節では行列のn乗の計算の流れについて確認を行います。議論の簡易化のために#3と同様に\displaystyle A=\left(\begin{array}{rr} 2 1 \\ 1 2 \\ \end{array} \right)n乗の計算について取り扱うこととします。このとき、固有値\lambdaとそれに対応する固有ベクトル\vec{x}は#3より下記のようになります。

\lambda=3のとき、\displaystyle \vec{x} = t\left(\begin{array}{c} 1 \\ 1 \\ \end{array} \right)tは任意の実数)
\lambda=1のとき、\displaystyle \vec{x} = t\left(\begin{array}{c} 1 \\ -1 \\ \end{array} \right)tは任意の実数)

上記のように固有値とそれに対応する固有ベクトルが計算できます。ここでは議論の簡略化のため、固有ベクトルt=1とおいて以下確認を行います(tをそのままにした上で議論も可能ですが、複雑なだけであまりリターンはないのでここではなるべくシンプルな議論を行うものとします)。
このとき、固有値固有ベクトルの大元の式より、下記が成立します。

\displaystyle \left(\begin{array}{rr} 2 1 \\ 1 2 \\ \end{array} \right)\left(\begin{array}{c} 1 \\ 1 \\ \end{array} \right) = 3\left(\begin{array}{c} 1 \\ 1 \\ \end{array} \right)
\displaystyle \left(\begin{array}{rr} 2 1 \\ 1 2 \\ \end{array} \right)\left(\begin{array}{c} 1 \\ -1 \\ \end{array} \right) = \left(\begin{array}{c} 1 \\ -1 \\ \end{array} \right)

上記までは#3の議論と同様ですが、行列のn乗を考えるにあたっては上記において固有値ベクトルを並べた\displaystyle X = \left(\begin{array}{rr} 1  1 \\ 1 -1 \\ \end{array} \right)を定義することでその後の計算を行います。このようにXを定義すると、①と②の関係式を元に下記のように書き直せます。

\displaystyle \left(\begin{array}{rr} 2 1 \\ 1 2 \\ \end{array} \right)\left(\begin{array}{rr} 1  1 \\ 1 -1 \\ \end{array} \right) = \left(\begin{array}{rr} 3  1 \\ 3 -1 \\ \end{array} \right)
\displaystyle = \left(\begin{array}{rr} 1  1 \\ 1 -1 \\ \end{array} \right)\left(\begin{array}{rr} 3 0 \\ 0 1 \\ \end{array} \right)

上記の式において、\displaystyle \Lambda = \left(\begin{array}{rr} 3 0 \\ 0 1 \\ \end{array} \right)とおくと、AX=X\Lambdaが成立します。ここでdet(X) = 1\times(-1)-1\times1=-2\neq0より、X正則行列(逆行列X^{-1}が存在する行列)であり、A=X\Lambda X^{-1}が成立します。ここでA^nを考えると、A^n=(X\Lambda X^{-1})^nも成立し、ここでXX^{-1}=Eのように単位行列となることから、A^n=X\Lambda^nX^{-1}が成立します。
ここで\displaystyle \Lambda^n = \left(\begin{array}{rr} 3^n 0 \\ 0 1^n \\ \end{array} \right) = \left(\begin{array}{rr} 3^n 0 \\ 0  1 \\ \end{array} \right)\displaystyle X^{-1} = -\frac{1}{2} \left(\begin{array}{rr} -1 -1 \\ -1  1 \\ \end{array} \right)より、A^nは下記のようになります。

\displaystyle A^n = X\Lambda^nX^{-1}
  \displaystyle = -\frac{1}{2}\left(\begin{array}{rr} 1  1 \\ 1 -1 \\ \end{array} \right)\left(\begin{array}{rr} 3^n 0 \\ 0  1 \\ \end{array} \right)\left(\begin{array}{rr} -1 -1 \\ -1  1 \\ \end{array} \right)
  \displaystyle = \frac{1}{2} \left(\begin{array}{rr} 3^n+1 3^n-1 \\ 3^n-1 3^n+1 \\ \end{array} \right)

このように行列A^nn乗を求めることができます。


2. 固有値固有ベクトルを用いた行列のn乗の計算の理解
1節では固有値固有ベクトルを用いたオーソドックスな行列のn乗の計算について取り扱いましたが、2節ではこの話をより直感的に理解ができるように確認を行います。もちろん固有値固有ベクトルを用いて行列のn乗を求めるプロセスは非常に有用なのですが、いまいち直感的なイメージがわかない導出でもあると思います。
この話を理解するにあたっては固有ベクトルを元にした行列は「元々の行列に対応して操作しやすいように基底(平面や空間を構成するベクトルくらいで理解しておけば十分だと思います。)の変換を行う」と理解すると良いです。だいたいの話においては\displaystyle \vec{e}_1=\left(\begin{array}{c} 1 \\ 0 \\ \end{array} \right)\displaystyle \vec{e}_2=\left(\begin{array}{c} 0 \\ 1 \\ \end{array} \right)が基底となりますが、1節で取り扱った固有ベクトル\vec{u}_1\vec{u}_2とし、こちらを基底に用いて計算を行うことを考えます。
このとき上記で設定した基底を元にベクトル\vec{a}を2通りの表し方で表すことを考えます。

\vec{a} = x_1\vec{e}_1 + y_1\vec{e}_2
 = x_2\vec{u}_1 + y_2\vec{u}_2   ③

上記では(x_1,y_1)\vec{e}_1\vec{e}_2に基づく座標、(x_2,y_2)\vec{u}_1\vec{u}_2に基づく座標のイメージをそれぞれ持つと良いと思います。また、1節の計算結果より、\vec{e}_1\vec{e}_2\vec{u}_1\vec{u}_2に下記のような関係が成り立ちます。

\displaystyle \vec{u}_1 = \left(\begin{array}{c} 1 \\ 1 \\ \end{array} \right) = \vec{e}_1+\vec{e}_2
\displaystyle \vec{u}_2 = \left(\begin{array}{c} 1 \\ -1 \\ \end{array} \right) = \vec{e}_1-\vec{e}_2

これを③に代入します。

\vec{a} = x_2\vec{u}_1 + y_2\vec{u}_2
  = x_2(\vec{e}_1+\vec{e}_2) + y_2(\vec{e}_1-\vec{e}_2)
  = (x_2+y_2)\vec{e}_1 + (x_2-y_2)\vec{e}_2

上記は\vec{a} = x_1\vec{e}_1 + y_2\vec{e}_2でもあるので、x_1=x_2+y_2y_1=x_2-y_2が成立します。この関係は下記のように表すことができます。

\displaystyle \left(\begin{array}{c} x_1 \\ y_1 \\ \end{array} \right) = \left(\begin{array}{c} x_2+y_2 \\ x_2-y_2 \\ \end{array} \right)
   \displaystyle = \left(\begin{array}{rr} 1  1 \\ 1 -1 \\ \end{array} \right)\left(\begin{array}{c} x_2 \\ y_2 \\ \end{array} \right)

このことにより、\displaystyle \left(\begin{array}{c} x_2 \\ y_2 \\ \end{array} \right)に1節で定義したXを左からかけることにより(x_2,y_2)から(x_1,y_1)を求めることができることがわかります。反対にX^{-1}を左からかけることで(x_1,y_1)から(x_2,y_2)を計算することも可能です。これらの処理を図式化すると下記のようになります。

f:id:lib-arts:20210612163756p:plain

このように\vec{e}_1\vec{e}_2に基づく座標系を固有ベクトル\vec{u}_1\vec{u}_2に基づく座標系に変換することについて確認してきたわけですが、固有ベクトルに基づいた座標系を用いることで元の行列による操作を単に固有値倍するだけで変換を求めることが可能になります。これによってA^nを作用させる際などに役に立ち、X^{-1}を元に固有ベクトルに基づいた\vec{u}_1\vec{u}_2を基底に変更し、固有値倍を繰り返し、計算後にXをかけて\vec{e}_1\vec{e}_2に基づいた基底に戻すということも可能になります。

このように固有ベクトルは基底を変換し、計算の簡易化を実現することができますが、これを分散共分散行列に用いるのが主成分分析です。難しく考え過ぎずに単に、固有ベクトルを元に空間を考えると行列演算が簡単になるくらいで抑えておけば十分だと思います。


3. まとめ
#4では行列のn乗の計算とそれに関連して固有ベクトルを用いた処理のイメージについて確認しました。
#5では分散共分散行列の固有値固有ベクトルについて考えます。