固有ベクトルを求める
すみませんがサーバでエラーが起こりました。このページを再読込してください
すみませんがサーバでエラーが起こりました。このページを再読込してください
固有ベクトルを(数値的に)求める方法.
行列の固有ベクトルと固有値は,
(あるベクトルにその行列をかけた結果を)それぞれ伸縮する方向と伸縮率を表します.
というのは
つまり,ベクトルに行列をかける(y=Axとでも書く)と, 元のベクトルはその行列の固有ベクトルの方向に移される. ここで固有ベクトルは一般には複数存在するが, (ベクトルyの)方向はそれらのうち一番伸縮率が大きい固有ベクトルに左右される. つまり最も大きい固有値に対応する固有ベクトルの方向に支配される (固有値が負だけど絶対値は大きいときは,その固有ベクトルと逆の方向を向くだけで, 結局その方向に支配されることに変わりはない.ということで厳密には 絶対値最大の固有値に対応する〜というのが正しい).
以上よりこんなことを考える. 適当な初期ベクトルx0を用意して, それに行列Aをかけてベクトルx1を得る. またベクトルx1に行列Aをかけて, ベクトルx2を得る. さて,この手順を延々繰り返していくと, 最終的にベクトルxnは行列Aの絶対値最大の固有値に対応する固有ベクトルの方向に向かうはず. これで固有ベクトル(の近似)が一つ得られる.このやり方が冪乗法(power method).
これとは逆に,Aの逆行列A-1をかけていくと, 今度は絶対値最小の固有値に対応する固有ベクトルの方向に向かうことになる. 実際にはA-1を陽に求めず,LU分解して連立一次方程式を解く方が良いらしい. つまり初期ベクトルx0を与えて Ax1=x0を解き,次に Ax2=x1を解くというのを繰り返す. これもまた固有ベクトルが得られる.このやり方が逆反復法(inverse iteration method).
どちらも収束性は良いらしい.
Comments are closed
Comments are currently closed on this entry.