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

◆ Zgbcon()

Sub Zgbcon ( Norm As  String,
N As  Long,
Kl As  Long,
Ku As  Long,
Ab() As  Complex,
IPiv() As  Long,
ANorm As  Double,
RCond As  Double,
Info As  Long 
)

行列の条件数 (複素帯行列)

目的
本ルーチンは複素帯行列Aの(1ノルムまたは無限ノルムによる)条件数の逆数を推定する. 計算にはZgbtrfにより求められたLU分解が使用される.

norm(inv(A))の推定値を求め, 次のように条件数の逆数を計算する.
RCond = 1 / (norm(A) * norm(inv(A)))
引数
[in]Norm1ノルム条件数を求めるか, 無限ノルム条件数を求めるかを指定.
= "1"または"O": 1ノルム
= "I": 無限ノルム
[in]N行列Aの行および列数. (N >= 0) (N = 0 の場合, RCond = 1 を返す)
[in]KlAの下帯幅 (Kl >= 0)
[in]KuAの上帯幅 (Ku >= 0)
[in]Ab()配列 Ab(LAb1 - 1, LAb2 - 1) (LAb1 >= 2*Kl+Ku+1, LAb2 >= N)
Zgbtrfで計算された帯行列AのLU分解結果. Uは上帯幅Kl+Kuの上三角帯行列として第1〜Kl+Ku+1行に格納される. また, 分解中に使われた乗数が第Kl+Ku+2〜2Kl+Ku+1行に格納される.
[in]IPiv()配列 IPiv(LIPiv - 1) (LIPiv >= N)
Zgbtrfによるピボットインデックス. 1 <= i <= nに対して, 行列の第i行は第IPiv(i-1)行と交換されたことを表す.
[in]ANormNorm = "1"または"O": 分解前の行列Aの1ノルム (ANorm >= 0)
Norm = "I": 分解前の行列Aの無限ノルム (ANorm >= 0)
[out]RCond行列Aの条件数の逆数. (RCond = 1/(norm(A) * norm(inv(A))))
[out]Info= 0: 正常終了.
= -1: パラメータ Norm の誤り. (Norm <> "1", "O"および"I")
= -2: パラメータ N の誤り. (N < 0)
= -3: パラメータ Kl の誤り. (Kl < 0)
= -4: パラメータ Ku の誤り. (Ku < 0)
= -5: パラメータ Ab() の誤り.
= -6: パラメータ IPiv() の誤り.
= -7: パラメータ ANorm の誤り. (ANorm < 0)
出典
LAPACK
使用例
Zgbsvの使用例を参照せよ.