XLPack 6.1
Excel VBA 数値計算ライブラリ・リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ Zunmhr()

Sub Zunmhr ( Side As  String,
Trans As  String,
M As  Long,
N As  Long,
Ilo As  Long,
Ihi As  Long,
A() As  Complex,
Tau() As  Complex,
C() As  Complex,
Info As  Long 
)

ヘッセンベルグ形への変換行列の乗算 (複素行列)

目的
本ルーチンは M x N 一般複素行列 C に以下の演算を行い上書きする.
Side = "L" Side = "R"
trans = "N": Q * C C * Q
trans = "T": Q~H * C C * Q~H
ただし, Q は nq 次のユニタリ行列である(nq = M (Side = "L" の場合), nq = N (Side = "R" の場合)). Q は Zgehrd が返す Ihi-Ilo 個の基本鏡映の積で定義される.
Q = H(Ilo) H(Ilo+1) . . . H(Ihi-1).
引数
[in]Side= "L": Q または Q~H を左から適用する.
= "R": Q または Q~H を右から適用する.
[in]trans= "N": 転置しない. Q を適用する.
= "C": 共役転置する. Q~H を適用する.
[in]M行列 C の行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る)
[in]N行列 A の行および列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る)
[in]Ilo
[in]IhiIlo と Ihi は Zgehrd を呼び出したときと同じ値でなければならない. Q は小行列 Q(Ilo+1〜Ihi, Ilo+1〜Ihi) を除いては単位行列に等しい.
Side = "L": 1 <= Ilo <= Ihi <= M (M > 0 の場合), Ilo = 1 および Ihi = 0 (M = 0 の場合).
Side = "R": 1 <= Ilo <= Ihi <= N (N > 0 の場合), Ilo = 1 および Ihi = 0 (N = 0 の場合).
[in]A()配列 A(LA1 - 1, LA2 - 1) (LA1 >= M, LA2 >= M (Side = "L" の場合), LA1 >= N, LA2 >= N (Side = "R" の場合))
Zgehrd により返された基本鏡映を定義するベクトル.
[in]Tau()配列 Tau(LTau - 1) (LTau >= M - 1 (Side = "L" の場合), LTau >= N - 1 (Side = "R" の場合))
Tau(i) は Zgehrd により返された基本鏡映 H(i) のスカラー係数でなければならない.
[in,out]C()配列 C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] M x N 行列 C.
[out] C は Q*C, Q~H*C, C*Q~H または C*Q により上書きされる.
[out]Info= 0: 正常終了.
= -1: パラメータ Side の誤り. (Side <> "L" および "R")
= -2: パラメータ Trans の誤り. (Trans <> "N" および "T")
= -3: パラメータ M の誤り. (M < 0)
= -4: パラメータ N の誤り. (N < 0)
= -5: パラメータ Ilo の誤り.
= -6: パラメータ Ihi の誤り.
= -7: パラメータ A() の誤り.
= -8: パラメータ Tau() の誤り.
= -9: パラメータ C() の誤り.
出典
LAPACK
使用例
Zhsein の使用例を参照せよ.