IMSL の行列の格納方法 IMSL Fortran ライブラリでの行列格納モード 行列の格納方法は、その構造と形式に応じて異なります。非対称密行列(一般行列)は全 要素を2次元配列に格納します。これを「一般モード」と称して Fortran の配列では共通 していいます。 それ以外の行列は 2 次元配列に格納して必要部分を参照するか、或いは、 変形 2 次元配列に格納して記憶域を節約する方法を採用しています。これら記憶域節約方 式を「圧縮モード」と称しています。 以下に、各種の行列とその格納方法について示します。詳細は IMSL 5.0 マニュアル参照資 料(Reference Material)を参照して下さい。 ➀ 一般モード A(K,L) なる 2 次元配列 é a11 êa 21 A=ê ê a 31 ê ëa 41 a12 a13 a 22 a 23 a 32 a 33 a 42 a 43 [注意] · 対応関係 aij a14 ù a 24 ú ú a 34 ú ú a 44 û → ➡ a11 a12 a21 a22 a31 a32 a41 a42 A(I,J) · K は、整合寸法である 対称行列用圧縮モード L -1- a13 a23 a33 a43 a14 a 24 a34 a 44 4 K IMSL の行列の格納方法 ➁ 対称行列用圧縮モード ◍対称密行列 A を格納します。 é a11 êa 21 A=ê ê a31 ê ë a 41 a12 a13 a 22 a 23 a 32 a33 a 42 a 43 éa11 ê A=ê ê ê ë a14 ù a 24 ú ú a 34 ú ú a 44 û a12 a13 a 22 a 23 a33 a14 ù a 24 ú ú a34 ú ú a 44 û を参照する 又は é a11 êa 21 A=ê êa31 ê ëa 41 a 22 a32 a33 a 42 a 43 ù ú ú ú ú a 44 û を参照する 一般には、対称密行列 A の対角部分と上三角部分の要素を参照しますが、マニュ アル第 9 章の BLAS ではフラッグの「U」又は「L」の選択により上三角部分又は下 三角部分を参照することができます。 ③ エルミート行列用圧縮モード( A ◍複素密行列 A T T = A) = A を格納します。 aij = a ji , bij = b ji a11 é êa - i × b 21 21 A=ê ê a 31 - i × b31 ê ëa 41 - i × b41 a12 + i × b12 a13 + i × b13 a 22 a 23 + i × b23 a 32 - i × b32 a33 a 42 - i × b42 a 43 - i × b43 -2- a14 + i × b14 ù a 24 + i × b24 ú ú a34 + i × b34 ú ú a 44 û IMSL の行列の格納方法 éa11 a12 + i × b12 a13 + i × b12 a14 + i × b12 ù ê a22 a23 + i × b12 a24 + i × b12 ú ú ê A= ê a33 a34 + i × b12 ú ú ê a44 û ë を参照する ù é a11 ú êa - i × b a22 21 21 ú ê A= ú êa31 - i × b31 a32 - i × b32 a33 ú ê ëa41 - i × b41 a42 - i × b42 a43 - i × b43 a44 û を参照する 又は 一般には、複素密行列 A の対角部分と上三角部分の要素を参照しますが、マニュアル 第 9 章の BLAS ではフラッグの「U」又は「L」の選択により上三角部分又は下三角部 分を参照することができます。 ④ 対称帯行列用圧縮モード( A T = A) ◍対称バンド行列 A の対角部分と上三角部分の要素を2次元配列 A 上に格納します。 é a11 êa 21 A=ê ê a31 ê ë0 a12 a13 a 22 a 23 a 32 a33 a 42 a 43 0 ù a 24 ú ú a 34 ú ú a 44 û é´ A = êê ´ êëa11 ´ a13 a12 a 23 a 22 a33 a 24 ù a34 úú a34 úû 一般には、上記のように、複素密行列 A の対角部分と上三角部分の要素を参照しま すが、マニュアル第 9 章の BLAS ではフラッグの「L」の選択により下記のように、 A の対角部分と下三角部分を参照することができます。 é a11 êa 21 A=ê ê a31 ê ë0 a12 a13 a 22 a 23 a 32 a33 a 42 a 43 0 ù a 24 ú ú a 34 ú ú a 44 û é a11 A = êê a 21 êë a31 -3- a 22 a33 a 32 a 43 a 42 ´ a 44 ù ´ úú ´ úû IMSL の行列の格納方法 ⑤ 非対称帯行列用圧縮モード ◍非対称バンド行列 A の要素を2次元配列 A 上に格納します。 é a11 êa ê 21 A = ê a31 ê ê0 êë 0 a12 0 0 a 22 a 23 0 a32 a 33 a34 a 42 a 43 a 44 0 a 53 a54 0 ù 0 ú ú 0 ú ú a 45 ú a 55 úû é0 êa 11 A=ê êa 21 ê ë a31 a12 a 23 a34 a 22 a 33 a 44 a32 a 43 a54 a 42 a 53 0 a 45 ù a 55 ú ú 0 ú ú 0 û ⑥ 疎行列の格納モード ・疎行列 A を、行列 A の非零の値の数の行と列と値の配列に格納します。 é a11 êa ê 21 A=ê 0 ê ê0 êë 0 0 a13 a14 a 22 0 0 a32 0 a33 a43 a34 0 0 0 a54 0ù 0 úú 0ú ú 0ú a55 úû PARAMETER ( NZ = 11, N = 5 ) DIMENSION IROW(NZ), JCOL(NZ), A(NZ) DATA IROW / 1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5/ DATA JCOL / 1, 3, 4, 1, 2, 2, 3, 4, 3, 4, 5/ DATA A / a11, a13, a14, a21, a22, a32, a33, a34, a43, a54, a55/ -4-
© Copyright 2024 ExpyDoc