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

◆ Zsycon()

Sub Zsycon ( Uplo As  String,
N As  Long,
A() As  Complex,
IPiv() As  Long,
ANorm As  Double,
RCond As  Double,
Info As  Long 
)

行列の条件数 (複素対称行列)

目的
本ルーチンはZsytrfにより求められた分解 A = U*D*U^T あるいは A = L*D*L^T を用いて, 複素対称行列Aの(1ノルムによる)条件数の逆数を推定する.

norm(inv(A))の推定値を求め, 次のように条件数の逆数を計算する.
RCond = 1 / (norm(A) * norm(inv(A)))
引数
[in]Uplo分解形が上三角行列あるいは下三角行列のどちらで格納されているかを指定.
= "U": 上三角, 分解形は A = U*D*U^T.
= "L": 下三角, 分解形は A = L*D*L^T.
[in]N行列Aの行および列数. (N >= 0) (N = 0 の場合, RCond = 1 を返す)
[in]A()n配列 A(LA1 - 1, LA2 - 1) (LA1 >= N, LA2 >= N) Zsytrfにより求められたUまたはLを得るために使われるブロック対角行列Dおよび乗数.
[in]IPiv()配列 IPiv(LIPiv - 1) (LIPiv >= N)
Zsytrfにより求められた行および列の交換とDのブロック構造の情報.
[in]ANorm分解前の行列Aの1ノルム. (ANorm >= 0)
[out]RCond行列Aの条件数の逆数. 次のように計算する.
  RCond = 1/(ANorm * Ainvnm)
ここで, Ainvnmは本ルーチンで求められたinv(A)の1-ノルムの推定値である.
[out]Info= 0: 正常終了.
= -1: パラメータ Uplo の誤り. (Uplo != "U"および"L")
= -2: パラメータ N の誤り. (N < 0)
= -3: パラメータ A() の誤り.
= -4: パラメータ IPiv() の誤り.
= -5: パラメータ ANorm の誤り. (ANorm < 0)
出典
LAPACK
使用例
Zsysvの使用例を参照せよ.