概要・書式
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
- 解が代入される
実際の連立方程式と、各変数の対応は次のようになっている。
次のような連立方程式があった場合、
a11 | 0 | a13 | 0 | x1 | b1 | ||
0 | a21 | a23 | 0 | * | x2 | = | b2 |
0 | a32 | a33 | a34 | x3 | b3 | ||
0 | 0 | a43 | a44 | x4 | b4 |
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の配列サイズは等しくなる。
対角行列の場合は、行列の上三角か下三角のみを格納すればよい。