XLPack 6.1
C/C++ API リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ _banfac()

void _banfac ( int  n,
int  kl,
int  ku,
int  ldab,
double  ab[],
int *  info 
)

連立一次方程式の係数行列(帯行列)のLU分解 (bint4およびbintkの補助ルーチン)

目的
本ルーチンはn次の(kl+1+ku)帯または対角行列AのLU分解を求める(ピボットの選択なし).
LU分解された行列は連立一次方程式を解いてB-スプライン係数を求めるためにbanslvにより使用される.
banfacおよびbanslvはbint4およびbintkの補助ルーチンである.
引数
[in]n連立方程式の数, すなわち, 行列Aの行および列数. (n >= 1)
[in]klAの下帯幅. (kl >= 0)
[in]kuAの上帯幅. (ku >= 0)
[in]ldab二次元配列ab[][]の整合寸法. (ldab >= kl + 1 + ku)
[in,out]ab[][]配列 ab[lab][ldab] (lab >= n)
[in] 帯行列形式の行列A.
[out] Aの対角要素が1の下三角行列Lおよび上三角行列U(両方とも帯行列)への分解結果. Aの各要素に上書き保存される.
[out]info= 0: 正常終了
= -1: 入力パラメータ n の誤り (n < 0)
= -2: 入力パラメータ kl の誤り (kl < 0)
= -3: 入力パラメータ ku の誤り (ku < 0)
= -4: 入力パラメータ ldab の誤り (ldab < kl + 1 + ku)
= 1: 分解に失敗した. これは, Aが特異であることを示している.
詳細
次の例は, n = 9, kl = 1, ku = 2 の場合の帯行列形式を表す.
* a13 a24 a35 a46 a57 a68 a79
a12 a23 a34 a45 a56 a67 a78 a89
a11 a22 a33 a44 a55 a66 a77 a88 a99
a21 a32 a43 a54 a65 a76 a87 a98 *
*で示された配列要素は使用されない.
出典
SLATEC