|
|
◆ dgttrf()
| void dgttrf |
( |
int |
n, |
|
|
double |
dl[], |
|
|
double |
d[], |
|
|
double |
du[], |
|
|
double |
du2[], |
|
|
int |
ipiv[], |
|
|
int * |
info |
|
) |
| |
係数行列のLU分解 (一般3重対角行列)
- 目的
- 本ルーチンはピボットの部分選択および行交換による消去法を用いて3重対角行列AのLU分解を計算する. 分解は次の形式である. ここで, Lは置換行列と対角成分が1の下2重対角行列の積, そして, Uは対角要素と第1・第2上副対角要素のみが0でない上三角行列である.
- 引数
-
| [in] | n | 行列Aの行および列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in,out] | dl() | 配列 dl[ldl] (ldl >= n - 1)
[in] Aのn-1個の下副対角要素.
[out] AのLU分解結果の行列Lを定義するn-1個の乗数. |
| [in,out] | d[] | 配列 d[ld] (ld >= n)
[in] Aの対角要素.
[out] AのLU分解結果の上三角行列Uのn個の対角要素. |
| [in,out] | du[] | 配列 du[ldu] (ldu >= n - 1)
[in] Aのn-1個の上副対角要素.
[out] Uのn-1個の第1上副対角要素. |
| [out] | du2[] | 配列 du2[ldu2] (ldu2 >= n - 2)
Uのn-2個の第2上副対角要素. |
| [out] | ipiv[] | 配列 ipiv[lipiv] (lipiv >= n)
ピボットインデックス. 1 <= i <= n について, 行列の第i行は第ipiv[i-1]行と交換されたことを表す. ipiv[i-1]は常にiまたはi+1である. ipiv[i-1] = i は行の交換が不要であったことを示す. |
| [out] | info | = 0: 正常終了
= -1: 入力パラメータ n の誤り (n < 0)
= i > 0: Uのi番目の対角要素が0である. 分解を完了したがUが特異であり, 連立方程式の解の計算に使用すると0による除算が発生する. |
- 出典
- LAPACK
|