|
|
◆ WZgeev2()
| Function WZgeev2 |
( |
JobVl As |
String, |
|
|
JobVr As |
String, |
|
|
N As |
Long, |
|
|
A As |
Variant |
|
) |
| |
固有値・固有ベクトル (複素行列) (実数部/虚数部分離形式)
- 目的
- WZgeev2はN×N複素行列Aの固有値, および, 必要により左および/または右固有ベクトルを求める.
Aの右固有ベクトルv(j)は次式を満たす. ここで, λ(j)は固有値である.
Aの左固有ベクトルu(j)は次式を満たす. u(j)^H * A = λ(j) * u(j)^H
ここで, u(j)^H はu(j)の共役転置を表す.
求められた固有ベクトルはユークリッドノルムが1で最大成分が実数になるように正規化される.
複素数を表現するために実数部と虚数部を隣り合ったセルに格納する(左が実数部, 右が虚数部). 得られた解も実数部と虚数部が隣り合った別々のセルに出力される.
- 戻り値
- N+1×2 (JobVl = "N", JobVr = "N" の場合)
| 列1 | 列2 |
| 行1〜N | 固有値の実数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 固有値の虚数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) |
| 行N+1 | リターンコード | 0 |
N+1×2N+2 (JobVl = "V", JobVr = "N" の場合)
| 列1 | 列2 | 列3〜2N+2 |
| 行1〜N | 固有値の実数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 固有値の虚数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 左固有ベクトルが固有値と同順で格納される |
| 行N+1 | リターンコード | 0 | 0 |
N+1×2N+2 (JobVl = "N", JobVr = "V" の場合)
| 列1 | 列2 | 列3〜2N+2 |
| 行1〜N | 固有値の実数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 固有値の虚数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 右固有ベクトルが固有値と同順で格納される |
| 行N+1 | リターンコード | 0 | 0 |
N+1×4N+2 (JobVl = "V", JobVr = "V" の場合)
| 列1 | 列2 | 列3〜2N+2 | 列2N+3〜4N+2 |
| 行1〜N | 固有値の実数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 固有値の虚数部 (共役な対は虚数部が正のもの, 負のものの順に続けて格納される) | 左固有ベクトルが固有値と同順で格納される | 右固有ベクトルが固有値と同順で格納される |
| 行N+1 | リターンコード | 0 | 0 | 0 |
リターンコード.
= 0: 正常終了.
= i > 0: 1〜i番目の固有値の計算が収束しなかった. 固有ベクトルは計算されない.
- 引数
-
| [in] | JobVl | = "N": Aの左固有ベクトルを求めない.
= "V": Aの左固有ベクトルを求める. |
| [in] | JobVr | = "N": Aの右固有ベクトルを求めない.
= "V": Aの右固有ベクトルを求める. |
| [in] | N | 行列Aの行および列数. (N >= 1) |
| [in] | A | (N×2N) N×N 複素行列 A. |
- 出典
- LAPACK
- 使用例
- 行列Aの固有値・固有ベクトルを求める. ただし,
( 0.20-0.11i -0.93-0.32i 0.81+0.37i )
A = ( -0.80-0.92i -0.29+0.86i 0.64+0.51i )
( 0.71+0.59i -0.15+0.19i 0.20+0.94i )
とする.
|