英語でいうと アイゲンバリューとアイゲンベクターというそうです。
(Eigen Value , Eigen Vector)
メモっておきます。
ステップ0 定義
- A:行列
- X:ベクトル
- λ:スカラー
があったら
AX=λX
と表されるとき、右辺のλとXは
- λ:固有値
- X : 固有ベクトル
と呼ばれます。
言わなくてもわかると思いますが、X=ゼロベクトル というのは無しですよ!
ステップ1 変換
線形変換の復習です
左辺
- A=[[2,3],[2,1]]
- X=[1,3]
のとき、計算すると
- AX=[2*1+3*3 , 2*1+1*3]=[11,5]
これは、ベクトルX[1,3]が行列Aによってベクトル[11,5]へ変換されたことを意味します。
ステップ2 ” 固有 ” とは
ベクトルXだけを変えてみましょう
- X=[3,2]
すると、左辺は、
- AX=[2*3+3*2 , 2*3+1*2]=[12,8]
- さらに変形して,AX=4[3,2]
ということで、AX=λXの形と見比べると、左辺と右辺のベクトルXは[3,2]で同一の値になっていて、さらにスカラーλは4という値になりなっています。
このとき,
- λ:固有値
- X : 固有ベクトル
という呼び方をされます。
結果として、ベクトルXに行列Aをかけ合わせたんだけど、結果としてベクトルの向きは[3,2]のまま変わらないで大きさだけ4倍になった。
固有というのは「向きが保存される特殊な状況」ということです。
ステップ3 どんなとき使うの?
現時点iのときにα[i],β[i]という値をとる事象を考えます。
次の時点[i+1]のときは、それがα[i+1],β[i+1]に変化するとしましょう。
それぞれの数式は漸化式の如く下記のように表現できるものとしましょう。
- α[i+1] = 0.5 α[i] + 0.4 β[i]
- β[i+1] =-0.104 α[i] + 1.1 β[i]
そうすると、これはAX=λXのように表現できます。
- [[0.5,0.4],[-0.104,1.1]] [α[i],β[i]] = λ [α[i],β[i]]
ステップ4 固有値、固有ベクトルを求める
固有方程式を使うと固有ベクトルλを求めることができます。
- 固有方程式:det(A-λE)=0
AX=λX を移行して
AX-λX=0 を行列Xでくくって
(A-λE)X=0 ※単位行列Eを忘れないで
ここでXはゼロベクトルではない。
ここで左辺の行列(A-λE)が逆行列を持っていたら、
(A-λE)^-1 (A-λE)X = (A-λE)^-1 ・0
EX=ゼロベクトル
Eは単位行列なので、Xがゼロベクトルでなくては、この式は満たされない。
でも、今は、固有値、固有ベクトルを有するためにはXがゼロベクトルであってはだめなので、そもそも、「(A-λE)に逆行列があってはならない」というところまで遡る。
行列(A-λE)が逆行列を持たない条件
det(A-λE)=0
結果
λ=1.02 , 0.58 と2つ解(固有値)が出てきますので、それぞれ
- λ1=1.02
- λ2=0.58
としましょう。
固有ベクトルは、いまさっき求めた固有値を使って
- (A-λ1E)X=0 より固有ベクトル v1=[10,13]
- (A-λ2E)X=0 より固有ベクトル v2=[5,1]
と算出できます。
ステップ5 AX=λXの意味
- 固有ベクトル v1=[10,13] のとき
AX=λXは
- [[0.5,0.4],[-0.104,1.1]] [10,13] = 1.02 [10,13]
この意味するところは、[α[i],β[i]]=[10,13] という組み合わせのときには、
そのベクトル[10,13] を変化されることなく、ステップごとに1.02倍されていく ということです。
同様に、固有値 λ2 = 0.58 のとき
- 固有ベクトル v2=[5,1]
- [[0.5,0.4],[-0.104,1.1]] [5,1] = 0.58 [5,1]
こちらの意味も同様に、そのベクトル[5,1] を変化されることなく、ステップごとに0.58倍されていく ということです。
これで、どういう組み合わせのときに、その組み合わせの割合を変えずに、スケールだけを変化させられるのかがわかるようになりました。
しかし、これでは、2つの固有ベクトルのとき、という限定された情報しかありません。
ステップ6 最終的には・・・
初期ベクトルX[0]を
- X[0]=C1 V1+C2 V2
と置きます。
ここで V1,V2は固有ベクトル
C1,C2は固有ベクトルにないかしらを掛け算する係数
では、ステップを進めてみましょう。
- X[1] = AX[0]= C1 A V1+C2 A V2
ここで Aをλに入れ替えます。
- X[1] = C1 λ1 V1+C2 λ2 V2
さらにすすめて
- X[2] = AX[1]= C1 λ1λ1 V1+C2 λ2λ2 V2
- X[3] = AX[2]= C1 λ1λ1λ1 V1+C2 λ2λ2λ2 V2
λが増えていくだけです。
- X[i] = C1 (λ1^i) V1+C2 (λ2^i) V2
- X[∞] = C1 (λ1^∞) V1+C2 (λ2^∞) V2
ここで λ2は1よりも小さいので λ2^∞=0 、 よって
- X[∞] = C1 (λ1^∞) V1
よって、ステップ数を増やしていくと、最終的には固有ベクトルv1に落ち着くということです。
もう一度整理すると。X[i+1]のときは、
- X[i+1] = C1 (λ1^(i+1)) V1 =λ C1 (λ1^i) V1 よって
- X[i+1]=λ1 X[i]
というシンプルな形になります。