amazon:Excelで操る! ここまでできる科学技術計算 第2版 楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ] |
n×n行列Aに対して Ax = λx x ≠0 ・・・ (1) を満たす時、λをAの固有値、xを固有ベクトルという。 固有値は次式から算出できる。 |A-λI|= 0 ・・・(2) (2)式はn次の代数方程式となり、n次方程式を解けば、固有値は求まる。 |
たった1日で即戦力になるExcelの教科書 入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス) |
固有値を求めるn次方程式を xn + a1xn-1 + ・・・・ + an = 0 とすると、するとその係数は下記となる。 a1 = -tr( A ) trはトリムといい、マトリックスの対角成分の和である。 H1 = A + a1I a2 = -tr(A×H1)/2 Hk-1 = A×Hk-2 + ak-1I ak = -tr(A×Hk-1)/k Excelを用いた3次マトリックスにおける固有値方程式の係数計算の例を示す。 図1 Excelを用いた固有値の方程式の計算例 |
ヒッチコック・ベアストウ法は、実係数の高次代数方程式の実根および虚根を求めるのに良く使われる。 n次代数方程式を(1)式とする。 f(x) = xn + a1xn-1 + a2xn-2 + ・・・・・ + an-1x + an = 0 ・・・・・ (3) 2個の実数をp,qとし、このp,qを使用し、(3)式を次式に展開する。 f(x) = (x2 + px + q)(xn-2 + b1xn-3 + ・・・・ + bn-3x + bn-2) + Rx + S ・・・・・ (4) ここで、RとSが0となるp,qがもとまれば、(4)式は因数分解ができたことになり、(4)式の2次方程式の2根が解となる。 x2 + px + q=0 ・・・・・ (5) 2次方程式の解は次式となる。 x =(-p±√(D))/2 D = b2-4q Dが負の時、虚根となる。 2根が求まれば、同様に残ったn-2次代数方程式を次々と解いてゆけばよい。 (3)式を展開すると、次の関係式が得られる。 b1 = a1 - p b2 = a2 - pb1 - q b3 = a3 - pb2 - qb1 ・・・・・・・・・ bk = ak - pbk-1 - qbk-2 ・・・・・・・・・・ bn-2 = an-2 - pbn-3 - qbn-4 R = an-1 - pbn-2 - qbn-3 S = an - qbn-2 ただし、a0=1 b0=1 |
例題の3次代数方程式の根を求め、固有値を算出しよう。 適当なp,qを設定し、方程式の係数からbnとR,Sを算出する。 図2 ソルバー実行前 メニューバーのツール−ソルバーを選択すると、図3のソルバー:パラメータ設定画面が表示される。 変化させるセルをp,qとし、目的セルをRに設定し、目標値を0に設定し、制約条件として、S=0を設定する。 図3 ソルバーのパラメータ設定画面 ソルバーを実行すると、R,Sが0となるp,qが算出され、2根が求まる。 計算結果から、固有値は -0.44949, -5, 4.44949 であることがわかる。 ベアストウ法を用いると、固有値が複素数の場合でも対応ができる。 図4 ソルバー実行後 |
固有値(λ)と固有ベクトル(x)の関係は次式となる。 (A-λI)x= 0 ・・・(6) 図5のように、固有値を-5 とし、適当な固有ベクトルを設定し、(6)式の左辺を計算しても、0にはならない。 図5 適当な固有ベクトルで計算した結果 メニューバーのツール−ソルバーを選択すると、図6のソルバー:パラメータ設定画面が表示される。 変化させるセルを固有ベクトルとし、目的セルをベクトル(A-λI)xの2乗和に設定し、目標値を最小値に設定し、制約条件として、固有ベクトルが0にならないよう、固有ベクトルの2乗和を1に設定し、規格化する。 図6 ソルバーのパラメータ設定画面 ソルバーを実行すると、(A-λI)xが0となる固有ベクトルが算出される。 他の固有値に対応する固有ベクトルも同様に計算できる。 図7 固有ベクトル計算結果 |