|
|
◆ dptcon()
| void dptcon |
( |
int |
n, |
|
|
double |
d[], |
|
|
double |
e[], |
|
|
double |
anorm, |
|
|
double * |
rcond, |
|
|
double |
work[], |
|
|
int * |
info |
|
) |
| |
行列の条件数 (正定値対称3重対角行列)
- 目的
- 本ルーチンはdpttrfにより計算された, 分解 A = L*D*L^T または A = U^T*D*U を用いて正定値3重対角対称行列の(1-ノルムによる)条件数の逆数を求める.
norm(inv(A))を直接法により求め, 条件数の逆数を次のように計算する. rcond = 1 / (anorm * norm(inv(A)))
- 引数
-
| [in] | n | 行列Aの行および列数. (n >= 0) (n = 0 の場合, rcond = 1 を返す) |
| [in] | d[] | 配列 d[ld] (ld >= n)
dpttrfにより計算された, Aの分解結果の対角行列Dのn個の対角要素. |
| [in] | e[] | 配列 e[le] (le >= n - 1)
dpttrfにより計算された, Aの分解結果の2重対角行列UまたはLのn-1個の副対角要素. |
| [in] | anorm | 分解前の行列Aの1ノルム. (anorm >= 0) |
| [out] | rcond | 行列Aの条件数の逆数. 次のように計算する.
rcond = 1/(anorm * ainvnm)
ここで, ainvnmは本ルーチンで求められたinv(A)の1-ノルムの値である. |
| [out] | work[] | 配列 work[lwork] (lwork >= n)
作業領域. |
| [out] | info | = 0: 正常終了
= -1: 入力パラメータ n の誤り (n < 0)
= -4: 入力パラメータ anorm の誤り (anorm < 0) |
- 出典
- LAPACK
|