|
|
◆ cg1()
| def cg1 |
( |
uplo |
, |
|
|
n |
, |
|
|
val |
, |
|
|
rowptr |
, |
|
|
colind |
, |
|
|
b |
, |
|
|
x |
, |
|
|
tol |
= 1.0e-10, |
|
|
maxiter |
= 500 |
|
) |
| |
共役勾配(CG)法による連立一次方程式 Ax = b の解 (正定値対称行列) (シンプルドライバ)
- 目的
- 共役勾配(CG)法により正定値対称な係数行列の連立一次方程式 Ax = b の解を求める. 行列 A は CSR 形式で表される.
- 戻り値
- (info, iter, res)
info (int):
= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 1: (警告) 行列 A が正定値でない(計算は続行する).
= 2: (警告) 前処理行列 M が正定値でない(計算は続行する).
= 11: 最大反復回数を超えた.
= 12: 行列 A が特異である.
iter (int):
最終的な反復回数.
res (float):
最終的な残差ノルム norm(b - A*x).
- 引数
-
| [in] | uplo | 対称行列 A の上または下三角部分のどちらを格納するか指定する.
= 'U': 上三角部分を格納.
= 'L': 下三角部分を格納.
= 'F': 全体(上および下三角部分両方)を格納. |
| [in] | n | 行列の次数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | val | Numpy ndarray (1次元配列, float, nnz)
行列 A の非ゼロ要素の値. (nnz は非ゼロ要素数) |
| [in] | rowptr | Numpy ndarray (1次元配列, int32, n + 1)
行列 A の行ポインタ. |
| [in] | colind | Numpy ndarray (1次元配列, int32, nnz)
行列 A の列インデクス. (nnz は非ゼロ要素数) |
| [in] | b | Numpy ndarray (1次元配列, float, n)
右辺ベクトル b. |
| [in,out] | x | Numpy ndarray (1次元配列, float, n)
[in] 解の初期推定値.
[out] 求められた近似解. |
| [in] | tol | (省略可)
収束判定基準値.
norm(b - A*x) <= tol*norm(b) であれば収束とみなす. (省略時 = 1.0e-10)
Tol < eps (マシン精度) であれば Tol = eps とみなす. |
| [in] | maxiter | (省略可)
最大反復回数. (maxiter > 0) (省略時 = 500) |
|