XLPack 7.0
XLPack 数値計算ライブラリ (Excel ワークシート関数) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ WZhegv()

Function WZhegv ( IType As  Long,
Jobz As  String,
Uplo As  String,
N As  Long,
A As  Variant,
B As  Variant 
)

一般化固有値問題 (エルミート行列) (Excel複素数形式)

目的
WZhegvはエルミート行列の一般化固有値問題
Ax = λBx, ABx = λx または BAx = λx
のすべての固有値, および, 必要により固有ベクトルを求める. ここで, AとBはエルミート行列で, さらにBは正定値である.

セル中で複素数を表現するためにExcelの複素数形式(例, 2.5+1i)を使用する. 複素数値はComplexワークシート関数を使って入力することができる.
戻り値
N+1×1 (Jobz = "N"の場合), N+1×N+1 (Jobz = "V"の場合)
列1列2〜N+1
行1〜N固有値 (昇順)固有ベクトル(Jobz = "V" かつ Info = 0の場合). 次のように正規化される.
IType = 1, 2: (Z^H)BZ = I
IType = 3: (Z^H)B^(-1)Z = I
行N+1リターンコード0

リターンコード.
= 0: 正常終了.
= i (0 < i <= N): 中間結果の3重対角形の非対角要素のi個が0にならなかった.
= i (N < i): Bの(i-N)次小行列が正定値でないためBの分解に失敗した.
引数
[in]IType解くべき問題のタイプを指定.
= 1: Ax = λBx
= 2: ABx = λx
= 3: BAx = λx
[in]Jobz= "N": 固有値のみ求める.
= "V": 固有値と固有ベクトルを求める.
[in]Uplo= "U": AおよびBの上三角部分を格納する.
= "L": AおよびBの下三角部分を格納する.
[in]N行列AおよびBの行および列数. (N >= 1)
[in]A(N×N) エルミート行列 A.
[in]B(N×N) 正定値エルミート行列 B.
出典
LAPACK
使用例
一般化固有値問題 Ax = λBx の固有値および固有ベクトルを求める. ここで, Aはエルミート行列, Bは正定値エルミート行列である. ただし,
( 0.20 -0.11+0.93i 0.81-0.37i )
A = ( -0.11-0.93i -0.32 -0.80+0.92i )
( 0.81+0.37i -0.80-0.92i -0.29 )
( 2.20 -0.11+0.93i 0.81-0.37i )
B = ( -0.11-0.93i 2.32 -0.80+0.92i )
( 0.81+0.37i -0.80-0.92i 2.29 )
とする.

WZhegv