PARDISO

Last-modified: 2008-03-26 (水) 10:04:06

概要・書式

CSR( Compressed Sparse Row )フォーマットで記述された行列を解くサブルーチン。
並列計算に対応している。

最低限の説明のみ記す。詳細はMath Kernel Library添付のマニュアルを参照。

pardiso( pt, maxfct, mnum, mtype, phase, n, VALUES, ROWINDEX, COLUMNS, perm, iparm, msglvl, B, X, error)

連立方程式の表現:

VALUES
行列中の非ゼロの要素の値
COLUMNS
非ゼロの要素の列インデックス
ROWINDEX
各行の先頭要素のインデックス
B
連立方程式の右辺の項
X
解が代入される

実際の連立方程式と、各変数の対応は次のようになっている。

次のような連立方程式があった場合、

a110a130x1b1
0a21a230*x2=b2
0a32a33a34x3b3
00a43a44x4b4
VALUES   = { a11, a13, a21, a23, a32, a33, a34, a43, a44}
COLUMNS  = {   1,   3,   2,   3,   2,   3,   4,   3,   4}
ROWINDEX = {   1,        3,        5,             8,     10}
B        = {  b1,  b2,  b3,  b4}
X        = {   0,   0,   0,   0}

ROWINDEXの最後の値には、非ゼロの要素数+1の値が入る事に注意する必要がある。
また、VALUESとCOLUMNSの配列サイズは等しくなる。

対角行列の場合は、行列の上三角か下三角のみを格納すればよい。