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

◆ Ztrsyl()

Sub Ztrsyl ( Transa As  String,
Transb As  String,
Isign As  Long,
M As  Long,
N As  Long,
A() As  Complex,
B() As  Complex,
C() As  Complex,
Scal As  Double,
Info As  Long 
)

シルベスター方程式の解 (複素行列)

目的
本ルーチンは次のシルベスター方程式を解く.
op(A)*X + X*op(B) = scale*C または
op(A)*X - X*op(B) = scale*C
ただし, op(A) = A または A^H で, A と B は両方とも上準三角行列である. A は M x M, B は N x N, 右辺行列 C および 解行列 X は M x N 行列である. scale は出力スケール因子で, X のオーバーフローを避けるために scale <= 1 と設定される.
引数
[in]Transaop(A) を指定する.
= "N": op(A) = A (転置なし)
= "C": op(A) = A^H (共役転置)
[in]Transbop(B) を指定する.
= "N": op(B) = B (転置なし)
= "C": op(B) = B^H (共役転置)
[in]Isgn方程式の符号を指定する.
= +1: op(A)*X + X*op(B) = scale*C を解く.
= -1: op(A)*X - X*op(B) = scale*C を解く.
[in]M行列 A の行および列数. また, 行列 X および C の行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る)
[in]N行列 B の行および列数. また, 行列 X および C の列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る)
[in]A()配列 A(LA1 - 1, LA2 - 1) (LA1 >= M, LA2 >= M)
上三角行列 A.
[in]B()配列 B(LB1 - 1, LB2 - 1) (LB1 >= N, LB2 >= N)
上三角行列 B.
[in,out]C()配列 C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] M x N 右辺行列 C.
[out] 解行列 X で上書きされる.
[out]Scalスケール因子 scale. 本ルーチンは X のオーバーフローを避けるために scale <= 1 と設定する.
[out]Info= 0: 正常終了.
= -1: パラメータ Transa の誤り. (Transa <> "N" および "C")
= -2: パラメータ Transb の誤り. (Transb <> "N" および "C")
= -3: パラメータ Isgn の誤り. (Isign <> 1 および -1)
= -4: パラメータ M の誤り. (M < 0)
= -5: パラメータ N の誤り. (N < 0)
= -6: パラメータ A() の誤り.
= -7: パラメータ B() の誤り.
= -8: パラメータ C() の誤り.
= 1: A と B が同じまたは非常に近い固有値を持ち, 方程式を解くために摂動を加えた値が使われた(A と B は変更されない).
出典
LAPACK