amazon:Excelで操る! ここまでできる科学技術計算 第2版 楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ] |
n×n行列Aに対して Ax = λx x ≠0 ・・・ (1) を満たす時、λをAの固有値、xを固有ベクトルという。 |
たった1日で即戦力になるExcelの教科書 入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス) |
べき乗法は、絶対値が最大の固有値とその固有ベクトルのみを算出する。 行列Aの固有値(λi)と対応する規格化された固有ベクトル(xi)より、任意のベクトル(u0)は次のようにあらわせる。 u0 = Σaixi ・・・(2) (2)式の両辺に行列Aを掛けると次式になる。 u1=Au0=Σaiλixi ・・・(3) 次に、u1ベクトルの大きさを1(規格化)し、次式のように反復計算を行う。 u2=Au1 ・・・(4) 反復回数が十分大きいrに達した時、次式となる。 n ur = Au(r-1) = Aru0 = Σaiλirxi = λ1r[a1x1 + Σai(λi/λ1)rxi] ・・・(5) i=2 λ1が絶対値最大の固有値の場合、rを十分大きくすると(λi/λ1)r は0に近づく。よって(5)式は(6)式と置ける。 ur ≒ λ1rx1 ・・・(6) すなわち、urを規格化すれば、固有ベクトルとなる。 また、固有値は次式となる。 λ1 = (ur,ur+1)/(ur,ur) = (ur,ur+1) ・・・(7) |
図1にExcelを用いたべき乗法の1回目の計算例題を示す。行列の次数は3で、初期ベクトルu0=(1,0,0)とする。 図1 Excelを用いたべき乗法の1回目の計算例題 |
べき乗法の繰返し計算を行うためにVBAを作成した。そのソースコードを示す。 図2 べき乗法のVBA |
ボタンにマクロを登録し、計算実行を行った。計算結果より、固有値は6.828427 となる。 固有ベクトルは規格化されたベクトルとなる。 図3 ヤコビ法による固有値計算、固有ベクトル計算結果 |