|
|
◆ 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 )
とする.
|