(57)【要約】【課題】解析者が一定の手順を踏むだけで、一般の多重対角行列を係数行列とする巨大なサイズの連立一次方程式を高速で解くことができるようにする。【解決手段】ブロック３重対角行列を係数行列として有する連立一次方程式を入力し（Ｓ１００）、このブロック３重対角行列に基づいて生成されたブロック３重対角行列表記式を、４行４列のブロック正方行列を単位として、このブロック正方行列のサイズから決定される分割の回数の上限値まで分割・圧縮のプロセスを再帰的に繰り返す（Ｓ１５０〜Ｓ２００）。そして、これらのプロセスを逆に辿ることによって連立一次方程式の解を求める（Ｓ２１０〜Ｓ２４０）。その際、このブロック正方行列の逆行列を所定の代数関係式を用いて計算させる（Ｓ１４０）。【選択図】図２
2006048637.tif 000002
【特許請求の範囲】
【請求項１】
連立一次方程式を解くためにコンピュータを、
前記連立一次方程式の係数行列として正方行列を成分とするブロック３重対角行列の入
力を促す係数行列入力手段と、
前記ブロック３重対角行列の入力に基づき、前記連立一次方程式からブロック３重対角
行列表記式（ブロック３重対角行列×ブロック未知数ベクトル＝ブロック既知数ベクトル
）を生成するブロック３重対角行列表記式生成手段と、
前記ブロック３重対角行列のサイズから分割の回数を決定する分割回数決定手段と、
前記ブロック３重対角行列表記式を、４行４列のブロック正方行列を単位として複数の
分割ブロック行列表記式（分割ブロック行列×分割ブロック未知数ベクトル＝分割ブロッ
ク既知数ベクトル）として分割するブロック行列表記式分割手段と、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する分割ブロック逆行列演算手段と、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式（分割ブロ
ック未知数ベクトル＝分割ブロック逆行列×分割ブロック繰り込みベクトル）を生成する
繰り込みブロック行列表記式生成手段と、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式（圧縮ブロック行列×圧縮ブロック
未知数ベクトル＝圧縮ブロック繰り込みベクトル）を生成する圧縮ブロック行列表記式生
成手段と、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分
割から圧縮までの操作を再帰的に繰り返す再帰操作制御手段と、
前記再帰操作制御手段によって前記分割の回数の上限まで繰り返されて得られたすべて
の圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記分割ブロッ
ク逆行列生成手段で生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作
とは逆の順番に施すことによって求める逆算求解手段と、
して機能させる連立一次方程式の計算プログラム。
【請求項２】
前記分割回数決定手段は、前記ブロック３重対角行列のサイズを２のべき乗展開した際
の各項の次数に基づき、前記分割の回数を決定することを特徴とする請求項１記載の連立
一次方程式の計算プログラム。
【請求項３】
前記分割回数決定手段は、前記ブロック３重対角行列のサイズをｐとしたとき、関係式
ｐ＝２f+2を満たすような自然数ｆとして前記分割の回数を決定することを特徴とする請
求項１又は２記載の連立一次方程式の計算プログラム。
【請求項４】
連立一次方程式を解くための計算装置であって、
前記連立一次方程式の係数行列として正方行列を成分とするブロック３重対角行列の入
力を促す係数行列入力手段と、
前記ブロック３重対角行列の入力に基づき、前記連立一次方程式からブロック３重対角
行列表記式（ブロック３重対角行列×ブロック未知数ベクトル＝ブロック既知数ベクトル
）を生成するブロック３重対角行列表記式生成手段と、
前記ブロック３重対角行列のサイズから分割の回数を決定する分割回数決定手段と、
前記ブロック３重対角行列表記式を、４行４列のブロック正方行列を単位として複数の
分割ブロック行列表記式（分割ブロック行列×分割ブロック未知数ベクトル＝分割ブロッ
ク既知数ベクトル）として分割するブロック行列表記式分割手段と、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する分割ブロック逆行列演算手段と、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式（分割ブロ
ック未知数ベクトル＝分割ブロック逆行列×分割ブロック繰り込みベクトル）を生成する
繰り込みブロック行列表記式生成手段と、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式（圧縮ブロック行列×圧縮ブロック
未知数ベクトル＝圧縮ブロック繰り込みベクトル）を生成する圧縮ブロック行列表記式生
成手段と、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分
割から圧縮までの操作を再帰的に繰り返す再帰操作制御手段と、
前記再帰操作制御手段によって前記分割の回数の上限まで繰り返されて得られたすべて
の圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記分割ブロッ
ク逆行列生成手段で生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作
とは逆の順番に施すことによって求める逆算求解手段と、
からなる連立一次方程式の計算装置。
【請求項５】
コンピュータを用いて連立一次方程式を解くための計算方法であって、
前記連立一次方程式の係数行列として正方行列を成分とするブロック３重対角行列の入
力を促す第１ステップと、
前記ブロック３重対角行列の入力に基づき、前記連立一次方程式からブロック３重対角
行列表記式（ブロック３重対角行列×ブロック未知数ベクトル＝ブロック既知数ベクトル
）を生成する第２ステップと、
前記ブロック３重対角行列のサイズから分割の回数を決定する第３ステップと、
前記ブロック３重対角行列表記式を、４行４列のブロック正方行列を単位として複数の
分割ブロック行列表記式（分割ブロック行列×分割ブロック未知数ベクトル＝分割ブロッ
ク既知数ベクトル）として分割する第４ステップと、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する第５ステップと、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式（分割ブロ
ック未知数ベクトル＝分割ブロック逆行列×分割ブロック繰り込みベクトル）を生成する
第６ステップと、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式（圧縮ブロック行列×圧縮ブロック
未知数ベクトル＝圧縮ブロック繰り込みベクトル）を生成する第７ステップと、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記第
４ステップから第７ステップまでを再帰的に繰り返す第８ステップと、
前記第８ステップによって前記分割の回数の上限まで繰り返されて得られたすべての圧
縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記第５ステップで
生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作とは逆の順番に施す
ことによって求める第９ステップと、
からなる連立一次方程式の求解方法。
【請求項６】
前記第３のステップにおいて、前記ブロック３重対角行列のサイズを２のべき乗展開し
た際の各項の次数に基づき、前記分割の回数を決定することを特徴とする請求項５記載の
連立一次方程式の求解方法。
【請求項７】
前記第３のステップにおいて、前記ブロック３重対角行列のサイズをｐとしたとき、関
係式ｐ＝２f+2を満たすような自然数ｆとして前記分割の回数を決定することを特徴とす
る請求項５又は６記載の連立一次方程式の求解方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連立一次方程式の計算プログラム、連立一次方程式の計算装置、及び連立一
次方程式の求解方法に関し、特にコンピュータを用いて一般的な多重対角行列を係数行列
とする連立一次方程式を直接法によって高速で解くための連立一次方程式の計算プログラ
ム、連立一次方程式の計算装置、及び連立一次方程式の求解方法に関する。
【背景技術】
【０００２】
数理モデルの解析を通して自然現象のダイナミクスを調べることは、制御性の高い工学
システムを構築する上で重要である。通常、自然現象のダイナミクスは微分方程式や差分
方程式等の数理モデルによって記述されるが、これらの数理モデルは、ごく典型的な場合
を除いて、一般には解析的に解くことができない。
【０００３】
したがって、数理モデルの解析にあたっては、計算装置（コンピュータ）を用いて数値
解を求めることが必須となる。このとき、計算装置では、微分方程式を差分法、有限要素
法、境界要素法、有限体積法などを用いて離散化した離散化方程式が数値処理されること
になる。数理モデルが最初から差分方程式で与えられる場合には、その差分方程式が計算
機の直接の計算対象となる。
【０００４】
離散化方程式は、通常、求めるべき未知数（すなわち離散化された変数）をベクトル表
記した未知数ベクトルと、それに対応する既知の数値から成る既知数ベクトルとを用いて
、「係数行列×未知数ベクトル＝既知数ベクトル」という形式で連立一次方程式として行
列表記される。なお、簡単のため、以降において、連立一次方程式を行列表記した際の係
数行列のことを、単に、連立一次方程式の係数行列と称することにする。
【０００５】
計算装置を用いて離散化方程式の数値解を求める方法の一つに直接法がある。直接法と
は、上述したように離散化方程式を連立一次方程式と見なすことによって、この連立一次
方程式をＬＵ分解法やガウスの消去法などの代数的なアルゴリズムを用いて計算すること
によって未知数ベクトルを直接求める方法である。この方法を用いれば、丸め誤差以外の
計算誤差は理論上排除されるため、高い精度の数値解を得ることが可能となるが、その反
面、係数行列のサイズが巨大なとき（すなわち係数行列の要素数が非常に多いとき）には
、上記の代数的なアルゴリズムを用いて計算させるにあたり大容量のメモリを必要とする
上、非常に長い計算時間を要することになる。
【０００６】
このような問題を解決するために、特許文献１には、直接法を用いて巨大なサイズの３
重対角行列を係数行列とする連立一次方程式を高速で数値計算するための解法プロセスに
基づく計算プログラムが開示されている。また、非特許文献１，２には、この解法プロセ
スの数理的側面の詳細が開示されている。
【０００７】
特許文献１に記載された解法プロセスを要約すると次のようになる（図３および図７を
参照）。
【０００８】
・ステップ１：解析者によって入力された微分方程式、初期条件、境界条件を離散化し
て得られる連立一次方程式を「係数行列×未知数ベクトル＝既知数ベクトル」という形式
に行列表記する。特許文献１には、この係数行列としてスカラー３重対角行列の場合が例
示されている。スカラー３重対角行列とは、すべての成分がスカラーである３重対角行列
のことを言う。
【０００９】
・ステップ２：解析者によって入力された分割数ｓ（ｓは２以上の整数）に従って、上
記の係数行列であるスカラー３重対角行列をｓ個の小行列に分割する。それに伴い、上記
の未知数ベクトルもｓ個のグループに分割する。これにより、上記の連立一次方程式は、
これらの小行列ごとにｓ個の連立一次方程式のグループに分割されることになる（これを
ｓ個の連立一次方程式群と呼ぶことにする）。ここで、上記の係数行列がスカラー３重対
角行列であることから、ｓ−１本の分割線のすぐ両端に位置する未知数は、分割線の両側
に位置する隣接した２つの連立一次方程式群の間で共有されることになる（この未知数を
共有未知数と呼ぶことにする）。
【００１０】
・ステップ３：上記の未知数ベクトルの最両端に位置する未知数（これを境界未知数と
呼ぶことにする）と上記の共有未知数だけを取り出して、それらの未知数（これを圧縮未
知数と呼ぶことにする）に関する連立一次方程式を形成する（このようにして形成された
連立一次方程式を圧縮連立一次方程式と呼ぶことにする）。
【００１１】
・ステップ４：上記の圧縮連立一次方程式の係数行列の逆行列を通常の計算方法を用いて求める。この操作によって、上記の圧縮未知数の値がすべて求められる。
【００１２】
・ステップ５：このようにして求められた圧縮未知数の値を上記のｓ個の連立一次方程
式群に代入する。すると、上記のｓ個の連立一次方程式群は完全に線形分離する（すなわ
ち共有未知数を持たない完全に独立したｓ個の連立方程式群に帰着する）ことになるので
、これらの線形分離されたｓ個の連立一次方程式群の各係数行列の逆行列を通常の計算方法を用いて求めることによって、残りの未知数をすべて決定することができる。
この解法の利点は、解析対象である３重対角行列を係数行列として有する連立一次方程式を複数の小さな連立一次方程式に体系的に分割できる点にある。これによって、解析対象である連立一次方程式の係数行列が巨大なサイズの場合であっても、小行列を係数行列とする複数の連立一次方程式に体系的に分割することによって、個々の連立一次方程式の計算を並列して行わせることが可能となる。その結果、複数の中央演算処理装置（ＣＰＵ）を用いることによって個々の連立一次方程式の計算を並列的に行わせることが可能となるので、巨大なサイズの連立一次方程式をＬＵ分解法やガウスの消去法などの直接法における既存の代数的なアルゴリズムを用いて求める場合と比較して、全体の計算時間を大幅に短縮できるという利点がある。
【００１３】
さらに、数値計算の対象となる連立一次方程式の係数行列のサイズが非常に大きな場合
には、解析者によって入力された分割の回数に従って上記のステップ２からステップ４ま
でのプロセスを再帰的に繰り返すことも開示されている。これによって、小行列のサイズ
を次第に小さくすることができるので、これらの小行列の逆行列を短時間で計算させるこ
とが可能となる。
【００１４】
このように、特許文献１に記載された連立一次方程式の解法プロセスは、直接法を用い
ているので計算精度が高く、その解法自体も巧みなものであり、既存の直接法の計算アル
ゴリズムを用いた場合と比較して計算時間を大幅に短縮できる点において非常に優れたも
のであるが、更なる発展の可能性として以下に示す２つの課題を抱える。
【００１５】
＜課題１＞特許文献１においては、計算装置内で連立一次方程式の係数行列を小行列に
分割する際に、係数行列の分割数（分割のサイズ）及び分割の回数の最適値を明確に規定していない。
【００１６】
これに関して、特許文献１の図８（Ａ）には、分割数が多くなるに従って計算時間が短
くなる傾向があることが示されている。この場合、分割数を２５０（つまり、分割された
小行列のサイズが４００×４００）としたときの計算時間が最も短いことがわかる。更に
、図８（Ｂ）には、分割数が５０までは急激に計算時間が減少し、それ以上の分割数では
緩やかに計算時間が減少していく傾向があることも示されている。また、図１２（Ａ），
１２（Ｂ）には、分割の回数が多くなるに従って計算時間が短くなる傾向があることが示
されている。
【００１７】
しかしながら、解析者が計算装置を利用する際に重要なことの一つは、入力する条件の数が少ないことと、各条件に代入する値の選択の自由度が小さいことである。解析者が特許文献１に記載された計算装置を使用した場合、解析者は連立一次方程式の係数行列の分割のサイズ及び分割の回数を入力しなければならない。また、このとき、解析者が上記のような傾向に関する情報を有していたとしても、実際には、それだけでは分割のサイズ及び分割の回数に対する選択の余地が大きすぎる。このことは、係数行列のサイズが大きくなるに従ってより顕著となる。さらに、解析者が入力する入力対象は解析者のレベル又は解析対象となる数理モデルの種類によって異なるのが通常であるが、特許文献１ではそのことが考慮されていない。
【００１８】
このようなことから、特許文献１に記載された計算装置は、数値解析に長けた専門的な
解析者も含めた一般の解析者にとって扱いにくいといった課題が残る。
【００１９】
＜課題２＞特許文献１においては、解析対象となる連立一次方程式の係数行列がスカラ
ー３重対角行列になる場合が例示されているが、一般には、係数行列がスカラー３重対角
行列になるとは限らない。
【００２０】
連立一次方程式の係数行列がスカラー３重対角行列となる典型的な例は、解析対象とな
るシステムが要素間の局所相互作用のみを有する場合である。
【００２１】
しかしながら、解析対象となるシステムの規模が大きくなるにつれて、隣接する要素間
の局所相互作用はもちろんのこと、離れた要素間の非局所（長距離）相互作用の影響も無
視できなってくる。それに伴い、要素間の情報伝達に必然的にタイムラグも生じることに
なる。このような大規模システムは、一般には、汎関数偏微分方程式によってモデル化さ
れる。汎関数偏微分方程式には、２回までの微分項以外に非局所相互作用の効果を表す積
分項（又は、３次以上の高階の微分項）が含まれている。このような汎関数偏微分方程式
を離散化して得られる離散化方程式には、上記の積分項を離散化した総和項（又は上記の
高階微分の離散化項）が出現する。このような離散化方程式を行列表記した連立一次方程
式の係数行列はスカラー３重対角行列にはならず、簡単な場合であってもスカラー４重対
角行列以上の帯行列（すなわちスカラー多重対角行列）になる。
【００２２】
したがって、特許文献１に記載された計算装置は、要素間に非局所相互作用が存在する
ような大規模システムのダイナミクスを数値解析する際には扱いにくいといった課題が残
る。
【特許文献１】特開２００２−３１２３４１公報
【非特許文献１】“微分方程式の離散化による連立一次方程式の直接高速解法（分割階層化法を用いたN層構造物の振動解析）”，郡安憲三，平本経幸，谷本充司，小佐野峰忠；日本機会学会論文集（C編）68巻672号pp.2217-2224 (2002)
【非特許文献２】”A New Efficient Solver for Huge Linear Algebraic Equations Derived from Fluid Dynamics”, T. Hiramoto, M. Osano, and K. Oshima, Computer Fluid Dynamics JOURNAL, vol. 11, No. 3, pp. 346-357 (2002)
【発明の開示】
【発明が解決しようとする課題】
【００２３】
本発明は、上記の２つの課題を同時に解決するために為されたものであり、その目的と
するところは、解析者が一定の手順を踏むだけで、一般的な多重対角行列を係数行列とす
る巨大なサイズの連立一次方程式を高速に解くことを可能とする連立一次方程式の計算プ
ログラム、連立一次方程式の計算装置、及び連立一次方程式の求解方法を提供することに
ある。
【課題を解決するための手段】
【００２４】
上記目的を達成するために、請求項１記載の本発明は、連立一次方程式を解くためにコ
ンピュータを、前記連立一次方程式の係数行列として正方行列を成分とするブロック３重
対角行列の入力を促す係数行列入力手段と、前記ブロック３重対角行列の入力に基づき、
前記連立一次方程式からブロック３重対角行列表記式（ブロック３重対角行列×ブロック
未知数ベクトル＝ブロック既知数ベクトル）を生成するブロック３重対角行列表記式生成
手段と、前記ブロック３重対角行列のサイズから分割の回数を決定する分割回数決定手段
と、前記ブロック３重対角行列表記式を、４行４列のブロック正方行列を単位として複数
の分割ブロック行列表記式（分割ブロック行列×分割ブロック未知数ベクトル＝分割ブロ
ック既知数ベクトル）として分割するブロック行列表記式分割手段と、前記複数の分割ブ
ロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を用いて演算する分割
ブロック逆行列演算手段と、前記複数の分割ブロック未知数ベクトルと、前記複数の分割
ブロック既知数ベクトルと、前記複数の分割ブロック逆行列とから、複数の繰り込みブロ
ック行列表記式（分割ブロック未知数ベクトル＝分割ブロック逆行列×分割ブロック繰り
込みベクトル）を生成する繰り込みブロック行列表記式生成手段と、前記複数の繰り込み
ブロック行列表記式の境界部分に位置するベクトル成分のみを取り出し圧縮することによ
って、圧縮ブロック行列表記式（圧縮ブロック行列×圧縮ブロック未知数ベクトル＝圧縮
ブロック繰り込みベクトル）を生成する圧縮ブロック行列表記式生成手段と、前記決定さ
れた分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分割から圧縮ま
での操作を再帰的に繰り返す再帰操作制御手段と、前記再帰操作制御手段によって前記分
割の回数の上限まで繰り返されて得られたすべての圧縮ブロック行列表記式における圧縮
ブロック未知数ベクトルの値を、前記分割ブロック逆行列生成手段で生成された複数の分
割ブロック逆行列を前記分割から圧縮までの操作とは逆の順番に施すことによって求める
逆算求解手段として機能させることを特徴とする。
【００２５】
請求項２記載の本発明は、請求項１記載の連立一次方程式の計算プログラムであって、
前記分割回数決定手段は、前記ブロック３重対角行列のサイズを２のべき乗級数展開した
際の各項の次数に基づき、前記分割の回数を決定することを特徴とする。
【００２６】
請求項３記載の本発明は、請求項１又は２記載の連立一次方程式の計算プログラムであ
って、前記分割回数決定手段は、前記ブロック３重対角行列のサイズをｐとしたとき、関
係式ｐ＝２f+2を満たすような自然数ｆとして前記分割の回数を決定することを特徴とす
る。
【００２７】
請求項４記載の本発明は、連立一次方程式を解くための計算装置であって、前記連立一
次方程式の係数行列として正方行列を成分とするブロック３重対角行列の入力を促す係数
行列入力手段と、前記ブロック３重対角行列の入力に基づき、前記連立一次方程式からブ
ロック３重対角行列表記式（ブロック３重対角行列×ブロック未知数ベクトル＝ブロック
既知数ベクトル）を生成するブロック３重対角行列表記式生成手段と、前記ブロック３重
対角行列のサイズから分割の回数を決定する分割回数決定手段と、前記ブロック３重対角
行列表記式を、４行４列のブロック正方行列を単位として複数の分割ブロック行列表記式
（分割ブロック行列×分割ブロック未知数ベクトル＝分割ブロック既知数ベクトル）とし
て分割するブロック行列表記式分割手段と、前記複数の分割ブロック行列の逆行列である
分割ブロック逆行列を所定の代数関係式を用いて演算する分割ブロック逆行列演算手段と
、前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式（分割ブロ
ック未知数ベクトル＝分割ブロック逆行列×分割ブロック繰り込みベクトル）を生成する
繰り込みブロック行列表記式生成手段と、前記複数の繰り込みブロック行列表記式の境界
部分に位置するベクトル成分のみを取り出し圧縮することによって、圧縮ブロック行列表
記式（圧縮ブロック行列×圧縮ブロック未知数ベクトル＝圧縮ブロック繰り込みベクトル
）を生成する圧縮ブロック行列表記式生成手段と、前記決定された分割の回数を上限とし
て、前記圧縮ブロック行列表記式に対して前記分割から圧縮までの操作を再帰的に繰り返
す再帰操作制御手段と、前記再帰操作制御手段によって前記分割の回数の上限まで繰り返
されて得られたすべての圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの
値を、前記分割ブロック逆行列生成手段で生成された複数の分割ブロック逆行列を前記分
割から圧縮までの操作とは逆の順番に施すことによって求める逆算求解手段とからなるこ
とを特徴とする。
【００２８】
請求項５記載の本発明は、コンピュータを用いて連立一次方程式を解くための計算方法
であって、前記連立一次方程式の係数行列として正方行列を成分とするブロック３重対角
行列の入力を促す第１ステップと、前記ブロック３重対角行列の入力に基づき、前記連立
一次方程式からブロック３重対角行列表記式（ブロック３重対角行列×ブロック未知数ベ
クトル＝ブロック既知数ベクトル）を生成する第２ステップと、前記ブロック３重対角行
列のサイズから分割の回数を決定する第３ステップと、前記ブロック３重対角行列表記式
を、４行４列のブロック正方行列を単位として複数の分割ブロック行列表記式（分割ブロ
ック行列×分割ブロック未知数ベクトル＝分割ブロック既知数ベクトル）として分割する
第４ステップと、前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定
の代数関係式を用いて演算する第５ステップと、前記複数の分割ブロック未知数ベクトル
と、前記複数の分割ブロック既知数ベクトルと、前記複数の分割ブロック逆行列とから、
複数の繰り込みブロック行列表記式（分割ブロック未知数ベクトル＝分割ブロック逆行列
×分割ブロック繰り込みベクトル）を生成する第６ステップと、前記複数の繰り込みブロ
ック行列表記式の境界部分に位置するベクトル成分のみを取り出し圧縮することによって
、圧縮ブロック行列表記式（圧縮ブロック行列×圧縮ブロック未知数ベクトル＝圧縮ブロ
ック繰り込みベクトル）を生成する第７ステップと、前記決定された分割の回数を上限と
して、前記圧縮ブロック行列表記式に対して前記第４ステップから第７ステップまでを再
帰的に繰り返す第８ステップと、前記第８ステップによって前記分割の回数の上限まで繰
り返されて得られたすべての圧縮ブロック行列表記式における圧縮ブロック未知数ベクト
ルの値を、前記第５ステップで生成された複数の分割ブロック逆行列を前記分割から圧縮
までの操作とは逆の順番に施すことによって求める第９ステップとからなることを特徴と
する。
【００２９】
請求項６記載の本発明は、請求項５記載の連立一次方程式の求解方法であって、前記第
３のステップにおいて、前記ブロック３重対角行列のサイズを２のべき乗級数展開した際
の各項の次数に基づき、前記分割の回数を決定することを特徴とすることを特徴とする。
【００３０】
請求項７記載の本発明は、請求項５又は６記載の連立一次方程式の求解方法であって、
前記第３のステップにおいて、前記ブロック３重対角行列のサイズをｐとしたとき、関係
式ｐ＝２f+2を満たすような自然数ｆとして前記分割の回数を決定することを特徴とする
。
【発明の効果】
【００３１】
本発明によれば、連立一次方程式の係数行列としてブロック３重対角行列の入力を促し
、入力されたブロック３重対角行列の逆行列を求める際に、４行４列のブロック正方行列
を分割の単位として、このブロック正方行列の逆行列を予めメインメモリに記憶された所
定の代数関係式を用いて求めることにより、一般的な多重対角行列を係数行列として有す
る巨大なサイズの連立一次方程式の解を短時間で求めることが可能となる。
【００３２】
また、本発明によれば、上記のように、４行４列のブロック正方行列を分割の単位とし
たことによって、分割数及び分割の回数を一意に決定することが可能となる。
【００３３】
さらに、本発明によれば、上記の係数行列として、ブロックＮ（Ｎは４以上の整数）重
対角行列やスカラーｑ重対角行列（ｑは３以上の整数）の入力を促してもよく、この場合
には、この係数行列をブロック３重対角行列に変換することによって、上記と同様の効果
を得ることが可能となるだけでなく、解析者のレベル又は解析対象となる数理モデルの種
類に応じた入力対象を多段階的に設定できるので、解析者にとってより扱いやすい計算装
置を提供することが可能となる。
【００３４】
さらに、本発明によれば、係数行列として行列を単位成分とするブロック多重対角行列
を扱うことによって、通常の局所相互作用のみを有する数理モデルから複雑な非局所相互
作用を有するような数理モデルまで、幅広い工学分野における数理モデルを数値計算の対
象とすることが可能となる。
【発明を実施するための最良の形態】
【００３５】
まず、本発明の理解を容易にするために、本明細書において使用される主要な用語につ
いて説明する。
【００３６】
「スカラー行列」とは、スカラーを単位成分とする行列のことを表すものとする。例え
ば、スカラー正方行列とは、スカラーを単位成分とする正方行列のことを意味する。
【００３７】
次に、「ブロック行列」とは、行列を単位成分とする行列のことを表すものとする。例
えば、ブロックＮ（Ｎは３以上の整数）重対角行列とは、正方行列を単位成分とするＮ重
対角行列のことを意味する。また、ブロックＮ重対角行列のＮ重対角成分のことをブロッ
クＮ重対角成分と称することにする。なお、Ｎ重対角行列において、対角線から最も遠く
離れている非零成分までの距離ｚを半帯幅と呼び、Ｎ重対角行列が対称行列（すなわち、
Ｎが３以上の奇数）の場合、半帯幅ｚはｚ＝（Ｎ−１）／２と定義される。また、本発明
においては、Ｎ重対角行列が非対称行列（すなわち、Ｎが４以上の偶数）の場合には、半
帯幅ｚをｚ＝Ｎ／２と定義することにする。
【００３８】
また、単位成分がスカラー又は行列のどちらでもよい場合には、「一般的な行列」と称
することにする。例えば、一般的な多重対角行列とは、スカラーを単位成分とする多重対
角行列であってもよいし、行列を単位成分とするブロック多重対角行列であってもよいも
のとする。  
また、単に「行列」と言った場合には、その単位成分の種類は文脈に従うものとする。
【００３９】
また、本明細書中で用いられる行列は、特に断らない限り、単位成分の如何を問わず正方
行列のことを意味するものとする。
【００４０】
次に、「ブロックベクトル」とは、ベクトルを単位成分とするベクトルのことを表すも
のとする。例えば、ブロック未知数ベクトルとは、ベクトルを単位成分とする未知数ベク
トルのことを意味する。なお、単位成分がスカラーの場合には、単に「ベクトル」と称す
ることにする。
【００４１】
また、「零行列」とは、すべての成分が０である行列を表すものとする。したがって、
「非零行列」とは、すべての成分のうち０でない要素を少なくとも一つ有する行列のこと
を表すものとする。
【００４２】
なお、本実施形態においては、ブロックＮ重対角行列のブロックＮ重対角成分がすべて
非零行列であることを想定しているが、もちろん、その中に零行列が含まれていてもかま
わない。
【００４３】
また、行列のサイズについてであるが、「ブロック行列のサイズ」と言った場合には、
その単位成分である正方行列を単位とした行または列の個数のことを意味するものとする
。例えば、ブロック行列のサイズの値がｐであるとは、正方行列を単位とするｐ行ｐ列の
ブロック行列、つまり単位成分である正方行列をｐ2個有するブロック行列、のことを意
味する。
【００４４】
次に、図面を参照して本発明に係る実施形態について詳細に説明する。
【００４５】
解析対象となる連立一次方程式の係数行列の種類又は解析者のレベルに応じて、特に３
つの実施形態について図面を用いて詳細に説明する。
【００４６】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。
【００４７】
第１の実施形態は、解析対象となる連立一次方程式の係数行列がブロック３重対角行列
の場合を想定したものである。
【００４８】
図１に示すように、第１の実施形態に係る計算装置は、入力装置１００と、出力装置２
００と、中央演算処理装置（ＣＰＵ）３００と、メインメモリ４００と、サブメモリ５０
０とを外部バス６００を介して連結して構成されている。
【００４９】
入力装置１００は、解析対象となる連立一次方程式と、それを解くために必要となる初
期条件、境界条件などの各種解析条件を入力するための装置であって、例えば、キーボー
ド、タッチパネル、タブレットなどが使用可能である。
【００５０】
出力装置２００は、入力装置１００から入力された連立一次方程式や各種解析条件を表
示したり、解析結果を表示したりするための装置であって、例えば、ＣＲＴディスプレイ
、ＴＦＴディスプレイ、プラズマディスプレイなどの各種ディスプレイや、インクジェッ
トプリンタ、レーザープリンタなどの各種プリンタなどが使用可能である。
【００５１】
メインメモリ４００は、本実施形態に係る連立一次方程式の計算プログラムを記憶する
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  
Ｍｅｍｏｒｙ）などの記憶装置から構成されている。
【００５２】
中央演算処理装置３００は、メインメモリ４００に記憶されている上記の計算プログラ
ムに従って、入力装置１００から入力された各種解析条件を用いて連立一次方程式の解を
求め、その解析結果を表、グラフ、図などにして出力装置２００に出力する装置である。
【００５３】
中央演算処理装置３００は、メインメモリ４００に記憶されている上記の計算プログラム
を実効することによって、本実施形態に係る連立一次方程式の計算装置の各機能（請求項
に記載された各手段）を実現する。
【００５４】
サブメモリ５００は、中央演算処理装置３００が計算の途中で求めたブロック行列やブ
ロック逆行列などの値を一次的に記憶させておくための装置であり、ＲＡＭやハードディ
スクなどの記憶装置が使用可能である。サブメモリ５００は、解析条件記憶領域５１０と
、ブロック３重対角行列表記式記憶領域５２０と、第１基本ブロック逆行列記憶領域５４
０1と、第１圧縮ブロック行列表記式記憶領域５５０1と、第ｒ基本ブロック逆行列記憶領
域５４０rと、第ｒ圧縮ブロック行列表記式記憶領域５５０rと、第ｆ（最終）基本ブロッ
ク逆行列記憶領域５４０f、及び第ｆ（最終）圧縮ブロック行列表記式記憶領域５５０ｆ
などの領域に区分されている。ここで、ｒは２≦ｒ≦ｆ−１を満たす整数である。
【００５５】
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
【００５６】
図２は、図１に示した第１の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。
【００５７】
まず、中央演算処理装置３００は、入力装置１００を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル＝既知数ベクトル」として行列表記した際の係数行
列として、ｚ行ｚ列の正方行列を単位成分とするｐ行ｐ列のブロック３重対角行列の入力
を解析者に促す（ステップ１００）。詳細には、中央演算処理装置３００は、上記のブロ
ック３重対角行列中のブロック３重対角成分のみの入力を解析者に促す。
【００５８】
また、ステップ１００において、中央演算処理装置３００は、ブロック３重対角行列の
サイズの値ｐとして２のべき乗の値の入力を解析者に促すが、ブロック３重対角行列の単
位成分である正方行列のサイズの値ｚに関しては自然数であるということ以外に特に制限
は設けない。
【００５９】
なお、本実施形態においては、上述したように、ブロック３重対角行列のサイズの値ｐ
として２のべき乗の値を入力させるようにしているが、それ以外の一般の自然数を入力さ
せてもよい。これについては後述する。
【００６０】
また、ステップ１００において、中央演算処理装置３００は、上述した係数行列として
のブロック３重対角行列の入力に対応して、ブロック未知数ベクトルとしてｚ行１列の未
知数ベクトルを単位成分とするｐ行１列のブロック未知数ベクトルの入力、及び、ブロッ
ク既知数ベクトルとしてｚ行１列の未知数ベクトルを単位成分とするｐ行１列のブロック
既知数ベクトルの入力を解析者に促す。
【００６１】
さらに、ステップ１００において、中央演算処理装置３００は、解析対象である連立一
次方程式を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析
者に促す。
【００６２】
そして、中央演算処理装置３００は、このようにして入力されたブロック３重対角行列
のサイズの値ｐ、ブロック３重対角行列の単位成分である正方行列のサイズの値ｚ、初期
条件、及び境界条件などの解析条件を、サブメモリ５００の解析条件記憶領域５１０に記
憶させる。
【００６３】
次に、中央演算処理装置３００は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてブロック３重対角行列表記式
【数１】
2006048637.tif 000003
【００６４】
を生成する（ステップ１１０）。
【００６５】
ここで、
2006048637.tif 000004
【００６６】
は、
【数２】
2006048637.tif 000005
【００６７】
として表されるｐ行ｐ列のブロック３重対角行列である。ここで、ブロック３重対角行列
（２）のブロック３重対角成分は、入力装置１００から入力されたｚ行ｚ列の非零行列で
ある。その他の成分“Ｏ”はすべて零行列である。
【００６８】
そして、
2006048637.tif 000006
【００６９】
は、
【数３】
2006048637.tif 000007
【００７０】
として表されるｐ行１列のブロック未知数ベクトルである。ここで、式（３）の単位成分
2006048637.tif 000008
【００７１】
は、
【数４】
2006048637.tif 000009
【００７２】
として表されるｚ行１列の未知数ベクトルである。
【００７３】
また、
2006048637.tif 000010
【００７４】
は、
【数５】
2006048637.tif 000011
【００７５】
として表されるｐ行１列のブロック既知数ベクトルである。ここで、式（５）の単位成分
2006048637.tif 000012
【００７６】
は、
【数６】
2006048637.tif 000013
【００７７】
として表されるｚ行１列の既知数ベクトルである。なお、既知数ベクトル（６）には入力
装置１００から入力された初期条件や境界条件などの解析条件が導入されている。
【００７８】
そして、中央演算処理装置３００は、ブロック３重対角行列（２）のブロック３重対角
成分と、ブロック既知数ベクトル（５）を、サブメモリ５００のブロック３重対角行列表
記式記憶領域５２０に記憶させる。
【００７９】
次に、解析対象となる連立一次方程式の解であるブロック未知数ベクトル（３）を求め
るために、特許文献１に記載の計算アルゴリズムを利用する。
【００８０】
まず、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０から、
ブロック３重対角行列（２）のサイズの値ｐを読み出し、読み出した値ｐから、分割回数
決定（単項）式
【数７】
2006048637.tif 000014
【００８１】
を満たす自然数ｆを求め（ステップ１２０）、この自然数ｆを分割の回数ｒの上限として
設定する（ステップ１３０）。
【００８２】
そして、中央演算処理装置３００は、分割の回数ｒの初期値をｒ＝１に設定し、第１回
目の分割プロセスを開始する（ステップ１４０）。
【００８３】
中央演算処理装置３００は、ブロック３重対角行列表記式（１）を、４行４列のブロッ
ク正方行列である第１分割ブロック行列
【数８】
2006048637.tif 000015
【００８４】
を単位としてk1(=p/4=2f)等分にブロック化する（ステップ１５０）。このプロセスのこ
とを第１分割プロセスと称することにする。
【００８５】
これによって、中央演算処理装置３００は、ブロック３重対角行列表記式（１）から第
１分割ブロック行列表記式
【数９】
2006048637.tif 000016
【００８６】
を生成する。ここで、第１分割ブロック行列表記式（９）の左辺のブロックベクトルのこ
とを第１分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第１分割ブロッ
ク既知数ベクトルと称することにする。
【００８７】
次に、中央演算処理装置３００は、第１分割ブロック行列（８）のブロック３重対角成
分を式（１１）に示す第１代数関係式に直接代入することによって、第１分割ブロック行
列（８）の逆行列である第１分割ブロック逆行列
【数１０】
2006048637.tif 000017
【００８８】
を算出する（ステップ１６０）。
【００８９】
ここで、第１代数関係式（１１）は、
【数１１】
2006048637.tif 000018
【００９０】
によって定義されるものであり、予めメインメモリ４００の計算プログラムに記載されて
いる。ここで、
【数１２】
2006048637.tif 000019
【００９１】
とした。なお、式（１１）においては、式（１０）の下付き添字がi=1の要素のみを明示
したが、i=2,...,k1の要素についても下付き添字が変更されるだけで同じ形をしているの
で省略した。
【００９２】
そして、中央演算処理装置３００は、第１分割ブロック逆行列（１０）のすべての行列
成分（一般には、すべて非零行列である）を、サブメモリ５００の第１分割ブロック逆行
列記憶領域５４０1に記憶させる。
【００９３】
次に、中央演算処理装置３００は、サブメモリ５００の第１分割ブロック逆行列記憶領
域５４０1から第１分割ブロック逆行列（１０）のすべての行列成分を読み出して、第１
分割ブロック行列表記式（９）を用いて、
【数１３】
2006048637.tif 000020
【００９４】
を生成する。ここで、
【数１４】
2006048637.tif 000021
【００９５】
である。
【００９６】
式（１３）の右辺の第１分割ブロック既知数ベクトルには、隣接する第１分割ブロック
未知数ベクトルの境界部分に属するベクトル成分
2006048637.tif 000022
【００９７】
が繰り込まれているので、これを第１分割ブロック繰り込みベクトルと称することにする
。また、式（１３）のことを第１繰り込みブロック行列表記式と称することにする。
【００９８】
次に、中央演算処理装置３００は、第１繰り込みブロック行列表記式（１３）から式（
１５）に示す境界部分のベクトル成分のみを取り出して圧縮する（ステップ１７０）。こ
のプロセスを第１圧縮プロセスと称することにする。
【数１５】
2006048637.tif 000023
【００９９】
ここで、
【数１６】
2006048637.tif 000024
【０１００】
及び、
【数１７】
2006048637.tif 000025
【０１０１】
とした。
【０１０２】
次に、中央演算処理装置３００は、式（１５）に
【数１８】
2006048637.tif 000026
【０１０３】
を代入することにより、式（１５）から
【数１９】
2006048637.tif 000027
【０１０４】
を算出する。ここで、
【数２０】
2006048637.tif 000028
【０１０５】
である。
【０１０６】
式(１９)は2k1個のベクトルから成る連立一次方程式である。これを第１圧縮ブロック
ベクトル方程式と称することにする。 
このようにして、中央演算処理装置３００は、第１圧縮ブロックベクトル方程式（１９
）から第１圧縮ブロック行列表記式
【数２１】
2006048637.tif 000029
【０１０７】
を生成する（ステップ１８０）。ここで、
2006048637.tif 000030
【０１０８】
は、
【数２２】
2006048637.tif 000031
【０１０９】
として表される2k1行2k1列のブロック正方行列である。これを第１圧縮ブロック行列と称
することにする。
【０１１０】
また、
2006048637.tif 000032
【０１１１】
は、
【数２３】
2006048637.tif 000033
【０１１２】
として表される2k1行１列のブロックベクトルである。これを第１圧縮ブロック未知数ベ
クトルと称することにする。
【０１１３】
また、
2006048637.tif 000034
【０１１４】
は、
【数２４】
2006048637.tif 000035
【０１１５】
として表される2k1行１列のブロックベクトルである。これを第１圧縮ブロック繰り込み
ベクトルと称することにする。さらに、式（２４）の右辺第１項のブロック既知数ベクト
ルのことを第１圧縮ブロック既知数ベクトルと称することにする。
【０１１６】
そして、中央演算処理装置３００は、第１圧縮ブロック行列（２２）の非零行列成分（
ただし、単位行列Ｉは除く）と第１圧縮ブロック繰り込みベクトル（２４）の第１圧縮ブ
ロック既知数ベクトルを、サブメモリ５００の第１圧縮ブロック行列表記式記憶領域５５
０1に記憶させる。
【０１１７】
上記の第１分割プロセス及び第１圧縮プロセスをまとめて第１接続プロセスと称するこ
とにする。
【０１１８】
以降、中央演算処理装置３００は、分割の回数ｒの値をｒ＝２からｆまでインクリメン
トすることによって、上記の第１接続プロセスと実質的に同じプロセスを再帰的にｆ−１
回繰り返す（ステップ１９０，２００）。２回目以降の接続プロセスにおける特徴を示す
ために、第ｒ接続プロセスについて説明する。ここで、ｒは２≦ｒ≦ｆを満たす整数であ
る。
【０１１９】
中央演算処理装置３００は、サブメモリ５００の第ｒ−１圧縮ブロック行列表記式記憶
領域から第ｒ−１圧縮ブロック行列
2006048637.tif 000036
【０１２０】
の非零行列成分を読み出し、読み出した非零行列成分から生成した第ｒ−１圧縮ブロック
行列
2006048637.tif 000037
【０１２１】
を４行４列のブロック正方行列である第ｒ分割ブロック行列
【数２５】
2006048637.tif 000038
【０１２２】
を単位としてkr(=kr-1/2=2f+1-r)等分にブロック化する（ステップ１５０）。このプロセ
スのことを第ｒ分割プロセスと称することにする。
【０１２３】
これによって、中央演算処理装置３００は、第ｒ−１圧縮ブロック行列表記式から第ｒ
分割ブロック行列表記式
【数２６】
2006048637.tif 000039
【０１２４】
を生成する。ここで、第ｒ分割ブロック行列表記式（２６）の左辺のブロックベクトルの
ことを第ｒ分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第ｒ分割ブロ
ック既知数ベクトルと称することにする。
【０１２５】
次に、中央演算処理装置３００は、第ｒ分割ブロック行列（２５）の非零行列成分を式
（２８）に示す第ｒ代数関係式に直接代入することによって、第ｒ分割ブロック行列（２
５）の逆行列である第ｒ分割ブロック逆行列
【数２７】
2006048637.tif 000040
【０１２６】
を計算させる（ステップ１６０）。
【０１２７】
ここで、第ｒ代数関係式（２８）は、
【数２８】
2006048637.tif 000041
【０１２８】
によって定義されるものであり、予めメインメモリ４００の計算プログラムに記載されて
いる。なお、式（２８）においては、式（２７）の下付き添字がi=1の要素のみを明示し
たが、i=2,...,krの要素についても下付き添字が変更されるだけで同じ形をしているので
省略した。
【０１２９】
そして、中央演算処理装置３００は、第ｒ分割ブロック逆行列（２７）の非零行列成分
（ただし、単位行列Ｉは除く）を、サブメモリ５００の第ｒ分割ブロック逆行列記憶領域
５４０rに記憶させる。
【０１３０】
次に、中央演算処理装置３００は、サブメモリ５００の第ｒ分割ブロック逆行列記憶領
域５４０rから第ｒ分割ブロック逆行列（２７）の非零行列成分を読み出して、第ｒ分割
ブロック行列表記式（２６）を用いて、
【数２９】
2006048637.tif 000042
【０１３１】
を生成する。
【０１３２】
式（２９）の右辺の第ｒ分割ブロック既知数ベクトルには、隣接する第ｒ分割ブロック
未知数ベクトルの境界部分に属するベクトル成分
2006048637.tif 000043
【０１３３】
が繰り込まれているので、これを第ｒ分割ブロック繰り込みベクトルと称することにする
。また、式（２９）のことを第ｒ繰り込みブロック行列表記式と称することにする。
【０１３４】
次に、中央演算処理装置３００は、第ｒ繰り込みブロック行列表記式（２９）から式（
３０）に示す境界部分のベクトル成分のみを取り出して圧縮する（ステップ１７０）。こ
のプロセスを第ｒ圧縮プロセスと称することにする。
【数３０】
2006048637.tif 000044
【０１３５】
ここで、
【数３１】
2006048637.tif 000045
【０１３６】
及び、
【数３２】
2006048637.tif 000046
【０１３７】
とした。
【０１３８】
次に、中央演算処理装置３００は、式（３０）に、
【数３３】
2006048637.tif 000047
【０１３９】
を代入することにより、式（３０）から
【数３４】
2006048637.tif 000048
【０１４０】
を算出する。
【０１４１】
式(３４)は2kr個のベクトルから成る連立一次方程式である。これを第ｒ圧縮ブロック
ベクトル方程式と称することにする。 
このようにして、中央演算処理装置３００は、第ｒ圧縮ブロックベクトル方程式（３４
）から第ｒ圧縮ブロック行列表記式
【数３５】
2006048637.tif 000049
【０１４２】
を生成する（ステップ１８０）。
【０１４３】
ここで、
2006048637.tif 000050
【０１４４】
は、
【数３６】
2006048637.tif 000051
【０１４５】
として表される2kr行2kr列のブロック正方行列である。これを第ｒ圧縮ブロック行列と称
することにする。
【０１４６】
また、
2006048637.tif 000052
【０１４７】
は、
【数３７】
2006048637.tif 000053
【０１４８】
として表される2kr行１列のブロックベクトルである。これを第ｒ圧縮ブロック未知数ベ
クトルと称することにする。
【０１４９】
また、
2006048637.tif 000054
【０１５０】
は、
【数３８】
2006048637.tif 000055
【０１５１】
として表される2kr行１列のブロックベクトルである。これを第ｒ圧縮ブロック繰り込み
ベクトルと称することにする。さらに、式（３８）の右辺第１項のブロック既知数ベクト
ルのことを第ｒ圧縮ブロック既知数ベクトルと称することにする。
【０１５２】
そして、中央演算処理装置３００は、第ｒ圧縮ブロック行列（３６）の非零行列成分（
ただし、単位行列Ｉは除く）と第ｒ圧縮ブロック繰り込みベクトル（３８）の第ｒ圧縮ブ
ロック既知数ベクトルを、サブメモリ５００の第ｒ圧縮ブロック行列表記式記憶領域５５
０rに記憶させる。
【０１５３】
上記の第ｒ分割プロセス及び第ｒ圧縮プロセスをまとめて第ｒ接続プロセスと称するこ
とにする。
【０１５４】
このようにして、中央演算処理装置３００は、分割の回数の値ｒがｆになるまで上記の
第ｒ接続プロセスを再帰的に繰り返す（ステップ１９０，２００）。
【０１５５】
最終プロセス（ｒ＝ｆ）は以下の通りである。
【０１５６】
中央演算処理装置３００は、サブメモリ５００の第ｆ−１圧縮ブロック行列表記式記憶
領域５５０rから第ｆ−１圧縮ブロック行列の非零行列成分を読み出し、読み出した非零
行列成分から生成した第ｆ−１圧縮ブロック行列を４行４列のブロック正方行列である第
ｆ（最終）分割ブロック行列
【数３９】
2006048637.tif 000056
【０１５７】
を単位としてkf=kf-1/2=2等分にブロック化する（ステップ１５０）。このプロセスのこ
とを第ｆ（最終）分割プロセスと称することにする。
【０１５８】
これによって、中央演算処理装置３００は、第ｆ−１圧縮ブロック行列表記式から第ｆ
（最終）分割ブロック行列表記式
【数４０】
2006048637.tif 000057
【０１５９】
を生成する。ここで、第ｆ分割ブロック行列表記式（３９）の左辺のブロックベクトルの
ことを第ｆ（最終）分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第ｆ
（最終）分割ブロック既知数ベクトルと称することにする。
【０１６０】
次に、中央演算処理装置３００は、第ｆ分割ブロック行列（３９）の非零行列成分を式
（４２）に示す第ｆ代数関係式に直接代入することによって、第ｆ分割ブロック行列（３
９）の逆行列である第ｆ（最終）分割ブロック逆行列
【数４１】
2006048637.tif 000058
【０１６１】
を計算させる（ステップ１６０）。
【０１６２】
ここで、第ｆ代数関係式（４２）は、               
【数４２】
2006048637.tif 000059
【０１６３】
によって定義されるものであり、予めメインメモリ４００の計算プログラムに記載されて
いる。
【０１６４】
そして、中央演算処理装置３００は、第ｆ分割ブロック逆行列（４１）の非零行列成分
（ただし、単位行列Ｉは除く）を、サブメモリ５００の第ｆ（最終）分割ブロック逆行列
記憶領域５４０fに記憶させる。
【０１６５】
次に、中央演算処理装置３００は、サブメモリ５００の第ｆ分割ブロック逆行列記憶領
域５４０fから第ｆ分割ブロック逆行列（４１）の非零行列成分を読み出して、第ｆ分割
ブロック行列表記式（４０）を用いて、
【数４３】
2006048637.tif 000060
【０１６６】
を生成する。
【０１６７】
式（４３）の右辺の第ｆ分割ブロック既知数ベクトルは、隣接する第ｆ分割ブロック未
知数ベクトルの境界部分に属するベクトル成分
2006048637.tif 000061
【０１６８】
が繰り込まれているので、これを第ｆ（最終）分割ブロック繰り込みベクトルと称するこ
とにする。また、式（４３）のことを第ｆ（最終）繰り込みブロック行列表記式と称する
ことにする。
【０１６９】
次に、中央演算処理装置３００は、第ｆ繰り込みブロック行列表記式（４３）から式（
４４）に示す境界部分だけを取り出し圧縮する（ステップ１７０）。このプロセスを第ｆ
（最終）圧縮プロセスと称することにする。
【数４４】
2006048637.tif 000062
【０１７０】
ここで、
【数４５】
2006048637.tif 000063
【０１７１】
及び、
【数４６】
2006048637.tif 000064
【０１７２】
とした。
【０１７３】
次に、中央演算処理装置３００は、式（４４）に、
【数４７】
2006048637.tif 000065
【０１７４】
を代入することにより、式（４４）から
【数４８】
2006048637.tif 000066
【０１７５】
を算出する。
【０１７６】
式(４８)は2kf-1(=4)個のベクトルから成る連立一次方程式である。これを第f（最終）
圧縮ブロックベクトル方程式と称することにする。 
このようにして、中央演算処理装置３００は、第ｆ圧縮ブロックベクトル方程式（４８
）から第ｆ（最終）圧縮ブロック行列表記式
【数４９】
2006048637.tif 000067
【０１７７】
を生成する（ステップ１８０）。ここで、
2006048637.tif 000068
【０１７８】
は、
【数５０】
2006048637.tif 000069
【０１７９】
として表される４行４列のブロック正方行列である。これを第ｆ（最終）圧縮ブロック行
列と称することにする。
【０１８０】
また、
2006048637.tif 000070
【０１８１】
は、
【数５１】
2006048637.tif 000071
【０１８２】
として表される４行１列のブロックベクトルである。これを第ｆ（最終）圧縮ブロック未
知数ベクトルと称することにする。
【０１８３】
また、
2006048637.tif 000072
【０１８４】
は、
【数５２】
2006048637.tif 000073
【０１８５】
として表される４行１列のブロックベクトルである。これを第ｆ（最終）圧縮ブロック繰
り込みベクトルと称することにする。さらに、式（５２）の右辺第１項のブロック既知数
ベクトルのことを第ｆ（最終）圧縮ブロック既知数ベクトルと称することにする。
【０１８６】
そして、中央演算処理装置３００は、第ｆ圧縮ブロック行列（５０）の非零行列成分（
ただし、単位行列Ｉは除く）と第ｆ圧縮ブロック繰り込みベクトル（５２）の第ｆ圧縮ブ
ロック既知数ベクトルを、サブメモリ５００の第ｆ（最終）接続ブロック行列表記式記憶
領域５５０fに記憶させる。
【０１８７】
上記の第ｆ分割プロセス及び第ｆ圧縮プロセスをまとめて第ｆ（最終）接続プロセスと
称することにする。
【０１８８】
次に、中央演算処理装置３００は、このようにして生成された上記の複数の第ｒ接続ブ
ロック行列表記式を用いて、ブロック未知数ベクトル（３）を求める（ステップ２１０〜
２４０）。ここで、ｒは、１≦ｒ≦ｆを満たす整数である。これらのステップのことを逆
算求解ステップと称することにする。
【０１８９】
まず、中央演算装置３００は、サブメモリ５００の第ｆ圧縮ブロック行列表記式記憶領
域５５０ｆから第ｆ圧縮ブロック行列（５０）の非零行列成分を読み出し、読み出した非
零行列成分を式（５４）に示す第ｆ＋１代数関係式に直接代入することによって、第ｆ＋
１圧縮ブロック行列（５０）の逆行列である第ｆ＋１圧縮ブロック逆行列
【数５３】
2006048637.tif 000074
【０１９０】
を計算させる（ステップ２１０）。
【０１９１】
ここで、第ｆ＋１代数関係式は、
【数５４】
2006048637.tif 000075
【０１９２】
によって定義されるものであり、予めメインメモリ４００の計算プログラムに記載されて
いる。
【０１９３】
次に、中央演算処理装置３００は、第ｆ圧縮ブロック行列表記式（４９）を用いて、
【数５５】
2006048637.tif 000076
【０１９４】
を生成する。
【０１９５】
次に、中央演算処理装置３００は、
【数５６】
2006048637.tif 000077
【０１９６】
を用いて、式（５５）から
【数５７】
2006048637.tif 000078
【０１９７】
を生成する。
【０１９８】
次に、中央演算処理装置３００は、サブメモリ５００の第ｆ圧縮ブロック行列表記式記
憶領域５５０fから第ｆ圧縮ブロック繰り込みベクトル（５２）の第ｆ圧縮ブロック既知
数ベクトルを読み出し、読み出した第ｆ圧縮ブロック既知数ベクトルを式（５７）に代入
して、ブロック未知数ベクトル（３）のうちの分割された未知数ベクトル
【数５８】
2006048637.tif 000079
【０１９９】
の値を算出する（ステップ２２０）。
【０２００】
次に、中央演算処理装置３００は、
【数５９】
2006048637.tif 000080
【０２０１】
を用いて、式(４３)より
【数６０】
2006048637.tif 000081
【０２０２】
を生成する。そして、式（６０）に、既に求めた未知数ベクトルの値である
【数６１】
2006048637.tif 000082
【０２０３】
と、同じく既に求めた未知数ベクトル(５９)を代入して、ブロック未知数ベクトル（３）
のうちの分割された未知数ベクトル
【数６２】
2006048637.tif 000083
【０２０４】
の値を算出する。これによって、未知数ベクトル
【数６３】
2006048637.tif 000084
【０２０５】
の値が求められる。
【０２０６】
このようにして、中央演算処理装置３００は、式(２９)においてｒ＝１となるまで上記
のプロセスを繰り返すことにより（ステップ２３０，２４０）、すべての未知数ベクトル
、すなわちブロック未知数ベクトル（３）、を求める。
【０２０７】
（第２の実施形態）
図３は、本発明の第２の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。なお、第１の実施形態と同一の構成には同一の符号を付し、繰り返しの説
明を省略する。
【０２０８】
第２の実施形態は、解析対象となる連立一次方程式の係数行列がブロックＮ（Ｎは４以
上の整数）重対角行列の場合を想定したものである。
【０２０９】
なお、以降においても、Ｎは４以上の整数を表すものとする。
【０２１０】
図３に示すように、第２の実施形態に係る計算装置は、第１の実施形態と同じく、入力
装置１００と、出力装置２００と、中央演算処理装置（ＣＰＵ）３００と、メインメモリ
４００と、サブメモリ５００とを外部バス６００を介して連結して構成されている。
【０２１１】
本実施形態に係るサブメモリ５００には、第１の実施形態の記憶領域の他にブロックＮ
重対角行列表記式記憶領域５６０が設けられている。それに対応して、メインメモリ４０
０には、本実施形態に係る連立一次方程式の計算プログラムが記憶されている。そして、
中央演算処理装置３００は、メインメモリ４００に記憶されている上記の計算プログラム
に従って、入力装置１００から入力された各種解析条件を用いて解析対象となる連立一次
方程式の解を求める。中央演算処理装置３００は、メインメモリ４００に記憶されている
上記の計算プログラムを実効することによって、本実施形態に係る連立一次方程式の計算
装置の各機能を実現する。
【０２１２】
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
【０２１３】
図４は、図３に示した第２の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。図５は、図４に示した数値計算の処理手順の続きを示す
フローチャートである。
【０２１４】
まず、中央演算処理装置３００は、入力装置１００を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル＝既知数ベクトル」として行列表記した際の係数行
列として、ｍ行ｍ列の正方行列を単位成分とするｎ行ｎ列のブロックＮ重対角行列の入力
を解析者に促す（ステップ３００）。詳細には、中央演算処理装置３００は、上記のブロ
ックＮ重対角行列中のブロックＮ重対角成分のみの入力を解析者に促す。
【０２１５】
また、ステップ３００において、中央演算処理装置３００は、ブロックＮ重対角行列の
サイズの値ｎとして正の偶数の値の入力を解析者に促すが、ブロックＮ重対角行列の単位
成分である正方行列のサイズの値ｍに関しては自然数であるということ以外に特に制限は
設けない。
【０２１６】
なお、本実施形態においては、上述したように、ブロックＮ重対角行列のサイズの値ｎ
として正の偶数の値を入力させるようにしているが、それ以外の一般の自然数を入力させ
てもよい。これについては後述する。
【０２１７】
また、ステップ３００において、中央演算処理装置３００は、上述した係数行列として
のブロックＮ重対角行列の入力に対応して、ブロック未知数ベクトルとしてｍ行１列の未
知数ベクトルを単位成分とするｎ行１列のブロック未知数ベクトルの入力、及び、ブロッ
ク既知数ベクトルとしてｍ行１列の未知数ベクトルを単位成分とするｎ行１列のブロック
既知数ベクトルの入力を解析者に促す。
【０２１８】
さらに、ステップ３００において、入力装置１００は、解析対象である連立一次方程式
を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析者に促す
。
【０２１９】
そして、中央演算処理装置３００は、このようにして入力されたブロックＮ重対角行列
のサイズの値ｎ、ブロックＮ重対角行列の単位成分である正方行列のサイズの値ｍ、初期
条件、及び境界条件などの各種解析条件を、サブメモリ５００の解析条件記憶領域５１０
に記憶させる。
【０２２０】
次に、中央演算処理装置３００は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてブロックＮ重対角行列表記式
【数６４】
2006048637.tif 000085
【０２２１】
を生成する（ステップ３１０）。
【０２２２】
ここで、
2006048637.tif 000086
【０２２３】
は、
【数６５】
2006048637.tif 000087
【０２２４】
として表されるｎ行ｎ列のブロックＮ重対角行列である。ここで、ブロックＮ重対角行列
（６５）のＮ重対角成分は入力装置１００から入力されたｍ行ｍ列の非零行列である。そ
の他の成分はすべて零行列である。また、Ｎとｚとの関係は、最初に記載した定義に従う
。すなわち、Ｎが３以上の奇数の場合は、ｚ＝（Ｎ−１）／２であり、Ｎが４以上の偶数
の場合は、ｚ＝Ｎ／２である。
【０２２５】
そして、
2006048637.tif 000088
【０２２６】
は、
【数６６】
2006048637.tif 000089
【０２２７】
として表されるｎ行１列のブロック未知数ベクトルである。ここで、式（６６）の単位成
分
2006048637.tif 000090
【０２２８】
は、
【数６７】
2006048637.tif 000091
【０２２９】
として表されるｍ行１列の未知数ベクトルである。
【０２３０】
また、
2006048637.tif 000092
【０２３１】
は、
【数６８】
2006048637.tif 000093
【０２３２】
で表されるｎ行１列のブロック未知数ベクトルである。ここで、式（６８）の単位成分
2006048637.tif 000094
【０２３３】
は、
【数６９】
2006048637.tif 000095
【０２３４】
として表されるｍ行１列の既知数ベクトルである。既知数ベクトル（６９）には入力装置
１００から入力された初期条件や境界条件などの各種解析条件が導入されている。
【０２３５】
そして、中央演算処理装置３００は、ブロックＮ重対角行列（６５）のブロックＮ重対
角成分と、ブロック既知数ベクトル（６６）を、サブメモリ５００のブロックＮ重対角行
列表記式記憶領域５６０に記憶させる。
【０２３６】
次に、中央演算処理装置３００は、サブメモリ５００のブロックＮ重対角行列表記式記
憶領域５６０から、ブロックＮ重対角行列（６５）のＮ重対角成分を読み出し、読み出し
たＮ重対角成分から生成したブロックＮ重対角行列（６５）を４行４列のブロック正方行
列である３重化ブロック行列
【数７０】
2006048637.tif 000096
【０２３７】
を単位としてブロック化する（ステップ３２０）。ここで、ｐは、ｐ＝ｎ／ｚを満たす正
の偶数である。
【０２３８】
これによって、中央演算処理装置３００は、初期行列表記式としてのブロックＮ重対角
行列表記式からｐ行ｐ列のブロック３重対角行列
【数７１】
2006048637.tif 000097
【０２３９】
を係数行列とするブロック３重対角行列表記式
【数７２】
2006048637.tif 000098
【０２４０】
を生成する（ステップ３３０）。これは、第１の実施形態におけるブロック３重対角行列
（２）と実質的に同じものである。
【０２４１】
ここで、
2006048637.tif 000099
【０２４２】
は、
【数７３】
2006048637.tif 000100
【０２４３】
として表されるｐ行１列のブロック未知数ベクトルである。これは、第１の実施形態にお
けるブロック未知数ベクトル（３）と実質的に同じものである。ここで、式（７３）の単
位成分
2006048637.tif 000101
【０２４４】
は、
【数７４】
2006048637.tif 000102
【０２４５】
として表されるｚ行１列の未知数ベクトルである。これは、第１の実施形態における未知
数ベクトル（４）と実質的に同じである。
【０２４６】
また、
2006048637.tif 000103
【０２４７】
は、
【数７５】
2006048637.tif 000104
【０２４８】
として表されるｐ行１列のブロック既知数ベクトルである。これは、第１の実施形態にお
けるブロック既知数ベクトル（５）と実質的に同じものである。ここで、式（７５）の単
位成分
2006048637.tif 000105
【０２４９】
は、
【数７６】
2006048637.tif 000106
【０２５０】
として表されるｚ行１列のブロック既知数ベクトルである。これは、第１の実施形態にお
けるブロック既知数ベクトル（６）と実質的に同じである。
【０２５１】
そして、中央演算処理装置３００は、ブロック３重対角行列（７１）の３重対角成分と
、ブロック既知数ベクトル（７５）を、サブメモリ５００のブロック３重対角行列表記式
記憶領域５２０に記憶させる。
【０２５２】
このようにして、第２の実施形態における初期行列表記式であるブロックＮ重対角行列
表記式は第１の実施形態におけるブロック３重対角行列表記式に変換されるので、以降に
おいて、第１の実施形態におけるステップ１１０〜２４０の解法プロセスを適用すること
が可能となる。
【０２５３】
しかし、第１の実施形態においては、ブロック３重対角行列のサイズの値ｐが２のべき
乗の値であったのに対し、第２の実施形態においては、このサイズの値ｐ（＝ｎ／ｚ）は
、正の偶数ではあるが、必ずしも２のべき乗の値になるとは限らない。
【０２５４】
そこで、以降において、この点について説明する。
【０２５５】
中央演算処理装置３００は、サブメモリ５００のブロック３重対角行列表記式記憶領域
５２０から、ブロック３重対角行列（７２）のサイズの値ｐを読み出し、読み出した値ｐ
から、２のべき乗級数展開に基づく分割回数決定（多項）式
【数７７】
2006048637.tif 000107
【０２５６】
を用いて自然数ｆiを算出する（ステップ３４０）。なお、式（７７）において、ｆi≦０
を満たすｆiの値はすべて０に設定する。
【０２５７】
なお、２のべき乗級数展開とは、
【数７８】
2006048637.tif 000108
【０２５８】
で表される級数展開のことであり、任意の自然数ｐは必ず式（７８）ように級数展開する
ことが可能である。ここで、ａi(ｉ＝０，１，２，・・・，Ｆ)＝１又は０である。また
、Ｆは自然数であり、ｉは各項の指標となる添え字であるが、ブロック３重対角行列（７
２）のサイズの値ｐが偶数のため、ここではｉ＝０は除いて考える。
【０２５９】
次に、中央演算処理装置３００は、式（７７）の各項ｐiと自然数ｆiとを関連付けて項
別パラメータセット（ｐi，ｆi）（ｉ＝１，・・・，Ｆ）としてサブメモリ５００の項別
分離パラメータセット記憶領域５７０に記憶させる。
【０２６０】
次に、中央演算処理装置３００は、サブメモリ５００のブロック３重対角行列表示式記
憶領域５２０から、ブロック３重対角行列のブロック３重対角成分を読み出し、読み出し
たブロック３重対角成分からブロック３重対角行列表記式（７２）を生成する。
【０２６１】
次に、中央演算処理装置３００は、サブメモリ５００の項別分離パラメータセット記憶
領域５７０から項別分離パラメータセット（ｐi，ｆi）（ｉ＝１，２，・・・，Ｆ）を読
み出し、読み出したパラメータｐi（ｉ＝１，２，・・・，Ｆ）を分離のサイズとして、
ブロック３重対角行列表記式（７２）を
【数７９】
2006048637.tif 000109
【０２６２】
のようにＦ個に分離する（ステップ３５０）。
【０２６３】
このようにして分離されたブロック３重対角行列表示式のことを分離ブロック３重対角
行列表記式と称することにする。また、分離ブロック３重対角行列表記式の係数行列のこ
とを分離ブロック３重対角行列、分離ブロック３重対角行列表記式のブロック未知数ベク
トルのことを分離ブロック未知数ベクトル、分離ブロック３重対角行列表記式のブロック
既知数ベクトルのことを分離ブロック既知数ベクトルと称することにする。
【０２６４】
例えば、読み出したブロック３重対角行列（７２）のサイズの値ｐが分割回数決定多項
式（７７）を用いて、
【数８０】
2006048637.tif 000110
【０２６５】
のように展開されたとする。この場合、ブロック３重対角行列表記式（７２）は、
【数８１】
2006048637.tif 000111
【０２６６】
すなわち、
【数８２】
2006048637.tif 000112
【０２６７】
と、
【数８３】
2006048637.tif 000113
【０２６８】
すなわち、
【数８４】
2006048637.tif 000114
【０２６９】
と、
【数８５】
2006048637.tif 000115
【０２７０】
すなわち、
【数８６】
2006048637.tif 000116
【０２７１】
の３つの分離ブロック３重対角行列表記式に分離されることになる。また、この場合、
項別分離パラメータセットは、（ｐ1，ｆ1）、（ｐ2，ｆ2），（ｐ3，ｆ3）となる。
【０２７２】
そして、中央演算処理装置３００は、Ｆ個の分離ブロック３重対角行列のブロック３重
対角成分と、Ｆ個の分離ブロック３重既知数ベクトルをサブメモリ５００の分離ブロック
３重対角行列表記式記憶領域５８０に記憶させる。
【０２７３】
次に、中央演算処理装置３００は、分割の対象となる項である分割対象項の添字ｉの初
期値をｉ＝１に設定する（ステップ３６０）。
【０２７４】
次に、中央演算処理装置３００は、サブメモリ５００の項別分離パラメータセット記憶
領域５７０からｉ＝１で添字付けられたパラメータｆ１を読み出し、これを分割の回数と
して設定する（ステップ３７０）。
【０２７５】
次に、中央演算処理装置３００は、サブメモリ５００の分離ブロック３重対角行列表記
式記憶領域５８０からｉ＝１で添字付けされた分離ブロック３重対角行列のブロック３重
対角成分と、同じくｉ＝１で添え字付けされた分離ブロック既知数ベクトルを読み出し、
第１の実施形態におけるステップ１４０〜１８０までのプロセスを行う。
【０２７６】
そして、中央演算処理装置３００は、分割対象項の添字の値ｉをｉ＝２からＦまでイン
クリメントすることによって、項別に分離されたＦ個の分離圧縮ブロック行列表記式を生
成する（ステップ３８０，３９０）。
【０２７７】
次に、中央演算処理装置３００は、生成されたＦ個の分離圧縮ブロック行列表記式から
境界部分のベクトル成分のみを取り出すことによって結合ブロックベクトル方程式を生成
し、これを結合ブロック行列表記式（結合ブロック行列×結合ブロック未知数ベクトル＝
結合ブロック既知数ベクトル）として行列表記する（ステップ４００）。
【０２７８】
そして、中央演算処理装置３００は、結合ブロック行列の非零行列成分と、結合ブロッ
ク既知数ベクトルをサブメモリ５００の結合ブロック行列表記式記憶領域５９０に記憶さ
せる。
【０２７９】
次に、中央演算処理装置３００は、サブメモリ５００の結合ブロック行列表記式記憶領
域５９０から結合ブロック行列の非零行列成分を読み出し、読み出した非零行列成分から
生成した結合ブロック行列の逆行列を求めることによって、上記の境界部分のベクトル成
分の値を算出する（ステップ４１０）。上記の例の場合であれば、
2006048637.tif 000117
【０２８０】
が算出されることになる。なお、このステップ４１０で行われることは、第１の実施形
態におけるステップ２１０〜２４０と同じであるので詳細は省略する。
【０２８１】
次に、中央演算処理装置３００は、算出された境界部分のベクトル（上記の例であれば
、
2006048637.tif 000118
【０２８２】
）の値を元のＦ個の分離圧縮ブロック行列表記式（上記の例であれば、式（８２）、式
（８４）、式（８６））に代入することによって、Ｆ個の分離ブロック行列表記式を線形
分離する（ステップ４２０）。このようにして線形分離された分離ブロック行列表記式の
ことを完全分離ブロック行列表記式と称することにする。
【０２８３】
次に、中央演算処理装置３００は、Ｆ個の完全分離ブロック行列表記式中のｉ＝１で添
字付けされた圧縮ブロック行列表記式に対して、第１の形態におけるステップ２１０から
２４０の逆算求解プロセスを施す。
【０２８４】
そして、中央演算処理装置３００は、分割対象項の添字の値ｉをｉ＝２からＦまでイン
クリメントして、上記のプロセスを再帰的にＦ−１回繰り返す（ステップ３９０，３９５
）ことによって、最終的にブロック未知数ベクトル（７３）を求める。
【０２８５】
なお、ブロック３重対角行列のサイズの値ｐが分割回数決定（単項）式（７）によって
表される場合も第２の実施形態に包含されることは言うまでもない。
【０２８６】
また、ステップ３４０において、ブロック３重対角行列（７２）のサイズの値ｐが分割
回数決定（多項）式（７７）によって、
【数８７】
2006048637.tif 000119
【０２８７】
のように級数展開される場合には、式（８７）の右辺第１項に関してはステップ３６０〜
４００までの操作は行わずに、直接逆行列を計算させ、境界部分のベクトル成分を取り出
す。そして、ステップ４１０において残りの項から取り出した境界部分のベクトル成分と
合わせて、その値を算出すればよい。
【０２８８】
例えば、ｐ＝３８６の場合、サブメモリ５００のブロック３重対角行列表記式記憶領域
５２０に記憶されているブロック３重対角行列表記式は
【数８８】
2006048637.tif 000120
【０２８９】
である。
【０２９０】
まず、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０からブ
ロック３重対角行列のサイズの値ｐ＝３８６を読み出し、読み出した値ｐを、分割回数決
定（多項式）式（７７）を用いて、
【数８９】
2006048637.tif 000121
【０２９１】
と級数展開することによって、自然数ｆi（ｉ＝１，２，３）をそれぞれｆ1＝６、ｆ2＝
５、ｆ3＝０と決定する（ステップ３４０）。
【０２９２】
次に、中央演算処理装置３００は、式（８９）の右辺の各項のサイズｐi（ｉ＝１，２
，３）と自然数ｆi（ｉ＝１，２，３）とを関連付けて項別分離パラメータセット（ｐi，
ｆi）＝（２５６，６），（１２８，５），（２，０）としてサブメモリ５００の項別分
離パラメータセット記憶領域５７０に記憶させる。
【０２９３】
次に、中央演算処理装置３００は、サブメモリ５００のブロック３重対角行列表記式記
憶領域５２０から、ブロック３重対角行列の３重対角成分を読み出し、読み出した３重対
角成分からブロック３重対角行列表記式（８８）を生成する。
【０２９４】
次に、中央演算処理装置３００は、サブメモリ５００の項別分離パラメータセット記憶
領域５７０から項別分離パラメータセット（ｐi，ｆi）＝（２５６，６），（１２８，５
），（２，０）を読み出し、読み出したｐ1＝２５６，ｐ2＝１２８，ｐ3＝２を分離のサ
イズとして、ブロック３重対角行列表記式（８８）を３つの分離ブロック３重対角行列表
記式
【数９０】
2006048637.tif 000122
【数９１】
2006048637.tif 000123
【数９２】
2006048637.tif 000124
【０２９５】
に分離する（ステップ３５０）。
【０２９６】
そして、中央演算処理装置３００は、分離ブロック３重対角行列表記式（９０），（９
１）に対しては、ステップ３６０以降の処理を施し、分離ブロック３重対角行列表記式（
９２）に対しては、上述したようにその係数行列の逆行列を直接
【数９３】
2006048637.tif 000125
【０２９７】
と計算させることによって、境界部分のベクトル成分
【数９４】
2006048637.tif 000126
【０２９８】
を取り出した後に、ステップ４１０以降の処理を施せばよい。この処理には既存の数値算
プログラムを用いればよい。ここで、
【数９５】
2006048637.tif 000127
【０２９９】
である。
【０３００】
なお、式（９５）の
2006048637.tif 000128
【０３０１】
については式（１１）と同様の代数関係式から算出すればよい。
【０３０２】
（第３の実施形態）
図６は、本発明の第３の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。なお、第２の実施形態と同一の構成には同一の符号を付し、繰り返しの説
明を省略する。
【０３０３】
第３の実施形態は、解析対象となる連立一次方程式の係数行列がスカラーｑ（ｑは３以
上の整数）重対角行列の場合を想定したものである。
【０３０４】
なお、以降においても、ｑは３以上の整数を表すものとする。
【０３０５】
図６に示すように、第３の実施形態に係る計算装置は、第２の実施形態と同じく、入力
装置１００と、出力装置２００と、中央演算処理装置（ＣＰＵ）３００と、メインメモリ
４００と、サブメモリ５００とを外部バス６００を介して連結して構成されている。
【０３０６】
本実施形態に係るサブメモリ５００には、第２の実施形態の記憶領域の他にスカラーｑ
重対角行列表記式５９５が設けられている。それに対応して、メインメモリ４００には、
本実施形態に係る連立一次方程式の計算プログラムが記憶されている。そして、中央演算
処理装置３００は、メインメモリ４００に記憶されている上記の計算プログラムに従って
、入力装置１００から入力された各種解析条件を用いて解析対象となる連立一次方程式の
解を求める。中央演算処理装置３００は、メインメモリ４００に記憶されている上記の計
算プログラムを実効することによって、本実施形態に係る連立一次方程式の計算装置の各
機能を実現する。
【０３０７】
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
【０３０８】
図７は、図６に示した第３の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。図８は、図７に示した数値計算の処理手順の続きを示す
フローチャートである。
【０３０９】
まず、中央演算処理装置３００は、入力装置１００を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル＝既知数ベクトル」として行列表記した際の係数行
列として、ｌ行ｌ列のスカラーｑ重対角行列の入力を解析者に促す（ステップ５００）。
【０３１０】
詳細には、入力装置１００は、上記のスカラー多重対角行列のｌ行ｌ列のスカラー成分の
うちスカラーｑ重対角成分のみの入力を解析者に促す。
【０３１１】
また、ステップ５００において、中央演算処理装置３００は、スカラーｑ重対角行列の
サイズｌとして正の偶数の入力を解析者に促す。
【０３１２】
なお、本実施形態においては、上述したように、スカラーｑ重対角行列のサイズの値と
して正の偶数の値を入力させるようにしているが、それ以外の一般の自然数を入力させて
もよい。これについては後述する。
【０３１３】
また、ステップ５００において、中央演算処理装置３００は、上述した係数行列として
のスカラー多重対角行列の入力に対応して、ｌ行１列の未知数ベクトルの入力、及び、ｌ
行１列の既知数ベクトルの入力を解析者に促す。
【０３１４】
さらに、ステップ５００において、中央演算処理装置３００は、解析対象である連立一
次方程式を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析
者に促す。その際、中央演算処理装置３００は、ブロックＮ重対角化のサイズの値ｍとし
てｌより小さい正の偶数の入力を解析者に促す。
【０３１５】
なお、本実施形態においては、上述したように、ブロックＮ重対角化のサイズの値ｍと
してｌより小さい正の偶数の値を入力させるようにしているが、それ以外の一般の自然数
を入力させてもよい。これについても後述する。
【０３１６】
そして、中央演算処理装置３００は、このようにして入力されたスカラーｑ重対角行列
のサイズｌ、ブロックＮ重対角化のサイズｍ、初期条件、及び境界条件などの各種解析条
件を、サブメモリ５００の解析条件記憶領域５１０に記憶させる。
【０３１７】
次に、中央演算処理装置３００は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてスカラーｑ重対角行列表記式
【数９６】
2006048637.tif 000129
【０３１８】
を生成する（ステップ５１０）。
【０３１９】
ここで、
2006048637.tif 000130
【０３２０】
は、
【数９７】
2006048637.tif 000131
【０３２１】
として表されるｌ行ｌ列のスカラーｑ重対角行列である。スカラーｑ重対角行列（９７）
のｑ重対角成分は、入力装置１００から入力された非零のスカラー値である。その他の成
分は、すべて零である。また、ｑとｚとの関係は、最初に記載した定義に従う。すなわち
、ｑが３以上の奇数の場合は、ｚ＝（ｑ−１）／２であり、ｑが４以上の偶数の場合は、
ｚ＝ｑ／２である。
【０３２２】
そして、
2006048637.tif 000132
【０３２３】
は、
【数９８】
2006048637.tif 000133
【０３２４】
として表されるｌ行１列の未知数ベクトルである。
【０３２５】
また、
2006048637.tif 000134
【０３２６】
は、
【数９９】
2006048637.tif 000135
【０３２７】
として表されるｌ行１列の既知数ベクトルである。なお、既知数ベクトル（９９）には入
力装置１００から入力された初期条件や境界条件などの各種解析条件が導入されている。
【０３２８】
そして、中央演算処理装置３００は、スカラーｑ重対角行列（９７）のスカラーｑ重対
角成分と、既知数ベクトル（９９）を、サブメモリ５００のスカラーｑ重対角行列表記式
記憶領域５９５に記憶させる。
【０３２９】
次に、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０からブ
ロックＮ重対角化のサイズの値ｍを読み出し、スカラーｑ重対角行列（９７）をｍ行ｍ列
の正方行列を単位としたｎ行ｎ列のブロックＮ重対角行列にブロック化する（ステップ５
２０）。ここで、ｎは、ｎ＝ｌ／ｍを満たす正の偶数である。
【０３３０】
このようにして、中央演算処理装置３００は、スカラーｑ重対角行列表記式（９６）か
らブロックＮ重対角行列表示式
【数１００】
2006048637.tif 000136
【０３３１】
を生成する。
【０３３２】
ここで、
2006048637.tif 000137
【０３３３】
は、
【数１０１】
2006048637.tif 000138
【０３３４】
として表されるｎ行ｎ列のブロックＮ重対角行列である。これは、第２の実施形態におけ
るブロックＮ重対角行列（６５）と実質的に同じものである。ここで、ブロックＮ重対角
行列（１０１）のＮ重対角成分はｍ行ｍ列の非零行列である。その他の成分はすべて零行
列である。
【０３３５】
そして、
2006048637.tif 000139
【０３３６】
は、
【数１０２】
2006048637.tif 000140
【０３３７】
として表されるｎ行１列のブロック未知数ベクトルである。これは、第２の実施形態のブ
ロックＮ重未知数ベクトル（６６）と実質的に同じものである。ここで、式（１０２）の
成分
2006048637.tif 000141
【０３３８】
は、
【数１０３】
2006048637.tif 000142
【０３３９】
として表されるｍ行１列の未知数ベクトルである。
【０３４０】
また、
2006048637.tif 000143
【０３４１】
は、
【数１０４】
2006048637.tif 000144
【０３４２】
で表されるｎ行１列のブロック未知数ベクトルである。これは、第２の実施形態における
ブロックＮ重既知数ベクトル（６８）と実質的に同じものである。ここで、式（１０４）
の成分
2006048637.tif 000145
【０３４３】
は、
【数１０５】
2006048637.tif 000146
【０３４４】
として表されるｍ行１列の既知数ベクトルである。
【０３４５】
このようにして、第３の実施形態における初期行列表示式であるスカラーｑ重対角行列
表記式は第２の実施形態におけるブロックＮ重対角行列表記式に変換されるので、基本的
には以降において、第２の実施形態におけるステップ３２０〜３９５の解法プロセスを適
用することが可能となる。
【０３４６】
ただし、第３の実施形態においては、Ｎ＝３の場合もあり得る。
【０３４７】
そこで、中央演算処理装置３００は、ブロックＮ重対角行列（１０１）のＮが４以上の
整数であるか否かを判断する（ステップ５３０）。ここで、Ｎが４以上であると判断され
た場合には、ステップ３２０に移って、ブロックＮ重対角行列（１０１）をブロック３重
対角行列に変換し、次のステップへと移行する。また、ステップ５３０において、Ｎが３
であると判断された場合には、ステップ５３０へと移行する。
【０３４８】
これ以降、中央演算処理装置３００は、図７及び８に示したステップ３４０〜４５０の
ステップの処理を行うことによって、最終的に未知数ベクトル（９８）を求めることがで
きる。
【０３４９】
なお、ステップ５３０における判断処理には、既存の数値計算プログラムを用いればよ
い。
【０３５０】
なお、本実施形態（第１〜第３の実施形態）においては、各種サイズの値として、ブロ
ック３重対角行列のサイズの値ｐとして２のべき乗の値（第１の実施形態）、ブロックＮ
重対角行列のサイズの値ｎとして正の偶数の値（第２の実施形態）、スカラーｑ重対角行
列のサイズｌとして正の偶数と、ブロックＮ重対角化のサイズの値ｍとしてｌより小さい
正の偶数（第３の実施形態）、の入力を促すことを想定したが、これらの値に一般の自然
数を入力させるように設定してもよい。
【０３５１】
例えば、第１の実施形態において、ブロック３重対角行列のサイズの値ｐとして単に自
然数を入力させるように設定した場合には、分割回数決定のプロセスにおける分割回数決
定式（７）の代わりに第２の実施形態における分割回数決定式（７７）（厳密には式（７
８））を用いればよい。ｐの値が偶数の場合に関しては、第２の実施形態の箇所ですでに
説明したので、ここではｐの値が奇数の場合に関して簡単に述べておく。
【０３５２】
例えば、ｐ＝３８７の場合、サブメモリ５００のブロック３重対角行列表記式記憶領域
５２０に記憶されているブロック３重対角行列表記式は
【数１０６】
2006048637.tif 000147
【０３５３】
である。
【０３５４】
まず、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０からブ
ロック３重対角行列のサイズの値ｐ＝３８７を読み出し、読み出した値ｐを、分割回数決
定（多項式）式（７７）を用いて、
【数１０７】
2006048637.tif 000148
【０３５５】
と級数展開することによって、自然数ｆi（ｉ＝１，２，３）をそれぞれｆ1＝６，ｆ2＝
５，ｆ3＝０と決定する（ステップ３４０）。
【０３５６】
次に、中央演算処理装置３００は、式（１０７）の右辺の各項のサイズｐi（ｉ＝１，
２，３）と自然数ｆi（ｉ＝１，２，３）とを関連付けて項別分離パラメータセット（ｐi
，ｆi）＝（２５６，６），（１２８，５），（３，０）としてサブメモリ５００の項別
分離パラメータセット記憶領域５７０に記憶させる。
【０３５７】
次に、中央演算処理装置３００は、サブメモリ５００のブロック３重対角行列表記式記
憶領域５２０から、ブロック３重対角行列の３重対角成分を読み出し、読み出した３重対
角成分からブロック３重対角行列表記式（１０６）を生成する。
【０３５８】
次に、中央演算処理装置３００は、サブメモリ５００の項別分離パラメータセット記憶
領域５７０から項別分離パラメータセット（ｐi，ｆi）＝（２５６，６），（１２８，５
），（３，０）を読み出し、読み出したｐ1＝２５６，ｐ2＝１２８，ｐ3＝３を分離のサ
イズとして、ブロック３重対角行列表記式（１０６）を３つの分離ブロック３重対角行列
表記式
【数１０８】
2006048637.tif 000149
【数１０９】
2006048637.tif 000150
【数１１０】
2006048637.tif 000151
【０３５９】
に分離する（ステップ３５０）。
【０３６０】
そして、中央演算処理装置３００は、分離ブロック３重対角行列表記式（１０８），（
１０９）に対しては、ステップ３６０以降の処理を施し、分離ブロック３重対角行列表記
式（１０９）に対しては、上述したようにその係数行列の逆行列を直接
【数１１１】
2006048637.tif 000152
【０３６１】
と計算させることによって、境界部分のベクトル成分
【数１１２】
2006048637.tif 000153
【０３６２】
を取り出した後に、ステップ４１０以降の処理を施せばよい。この処理には既存の数値計
算プログラムを用いればよい。ここで、
【数１１３】
2006048637.tif 000154
【０３６３】
である。
【０３６４】
なお、式（１１３）の
2006048637.tif 000155
【０３６５】
については式（１１）と同様の代数関係式から算出すればよい。
【０３６６】
また、例えば、ｐ＝３８５の場合には、サブメモリ５００のブロック３重対角行列表記
式記憶領域５２０に記憶されているブロック３重対角行列表記式は
【数１１４】
2006048637.tif 000156
【０３６７】
である。
【０３６８】
まず、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０からブ
ロック３重対角行列のサイズの値ｐ＝３８５を読み出し、読み出した値ｐを、分割回数決
定（多項式）式（７７）を用いて、
【数１１５】
2006048637.tif 000157
【０３６９】
と級数展開することによって、自然数ｆi（ｉ＝１，２，３）をそれぞれｆ1＝６，ｆ2＝
５，ｆ3＝０と決定する（ステップ３４０）。
【０３７０】
次に、中央演算処理装置３００は、式（１１５）の右辺の各項のサイズｐi（ｉ＝１，
２，３）と自然数ｆi（ｉ＝１，２，３）とを関連付けて項別分離パラメータセット（ｐi
，ｆi）＝（２５６，６），（１２８，５），（１，０）としてサブメモリ５００の項別
分離パラメータセット記憶領域５７０に記憶させる。
【０３７１】
次に、中央演算処理装置３００は、サブメモリ５００のブロック３重対角行列表記式記
憶領域５２０から、ブロック３重対角行列の３重対角成分を読み出し、読み出した３重対
角成分からブロック３重対角行列表記式（１１４）を生成する。
【０３７２】
次に、中央演算処理装置３００は、サブメモリ５００の項別分離パラメータセット記憶
領域５７０から項別分離パラメータセット（ｐi，ｆi）＝（２５６，６），（１２８，５
），（１，０）を読み出し、読み出したｐ1＝２５６，ｐ2＝１２８，ｐ3＝１を分離のサ
イズとして、ブロック３重対角行列表記式（１１４）を３つの分離ブロック３重対角行列
表記式
【数１１６】
2006048637.tif 000158
【数１１７】
2006048637.tif 000159
【数１１８】
2006048637.tif 000160
【０３７３】
に分離する（ステップ３５０）。
【０３７４】
そして、中央演算処理装置３００は、分離ブロック３重対角行列表記式（１１６），（
１１７）に対しては、ステップ３６０以降の処理を施し、分離ブロック３重対角行列表記
式（１１８）に対しては、その係数行列が４行４列のスカラー正方行列なので、既存の方
法で直接逆行列を計算させることによって、境界部分のベクトル成分
【数１１９】
2006048637.tif 000161
【０３７５】
を取り出した後に、ステップ４１０以降の処理を施せばよい。この処理には既存の数値計
算プログラムを用いればよい。
【０３７６】
以上の説明から明らかなように、本発明において最も重要なことは、ブロック３重対角
行列を４行４列のブロック正方行列を分割の単位として分割し、その逆行列を求める際に
、ブロック零行列の存在に注目することによって得られた特定の代数関係式を用いた点に
ある。これによって、従来の計算装置における逆行列の通常の計算方法よりも大幅な処理
時間の短縮を実現可能となった。
【０３７７】
つまり、特許文献１記載の計算装置においては、分割プロセスに伴う逆行列の計算を従
来の計算方法を用いて計算させているのに対して、本発明の計算装置においては、分割の
単位を４行４列のブロック正方行列に限定したことによって、逆行列を計算させる際に上
記のような代数関係式を用いることが可能となる。これによって、特許文献１記載の計算
方法と比較した場合に、逆行列の計算に際し、その計算量がより少なくなることは明らか
である。
【０３７８】
更に、本実施形態（第１〜第３の実施形態）においては、ブロック３重対角行列のすべ
てのブロック３重対角成分異なる場合を想定したわけだが、実際の計算においては、対角
線上のブロック行列成分はすべて同じ行列、対角線上より上（右）側のブロック行列成分
はすべて同じ行列、対角線上より下（左）側のブロック行列成分はすべて同じ行列である
ことが多い。その場合には、ブロック３重対角行列は，実質的に３種類のブロック行列成
分から構成されることになり、本発明の効果は一層顕著となる。なぜならば、分割ブロッ
ク３重行列がすべて分割ブロック３重行列表記式において同じとなるため、実質的には一
つの分割ブロック３重行列表記式を計算させればよいからである。また、その場合、特定
の代数関係式が大幅に簡単になるので、計算時間を一層短縮することができることになる
。
【０３７９】
以上の効果を明らかにするために、本発明の第１の実施形態に係る計算方法を用いた具体的な計算結果を示すことにする。
【０３８０】
例題として、２次元平面上の平行四辺形領域において、スカラー変数の物理量
2006048637.tif 000162
【０３８１】
に対するラプラス方程式
【数１２０】
2006048637.tif 000163
【０３８２】
を有限要素法を用いて解くことを考える。ラプラス方程式とは、熱伝導現象の熱平衡状態のような静的な平衡状態や定常的現象を記述する楕円型偏微分方程式である。本例題では、長辺及び短辺の長さがそれぞれａ，ｂ，∠ＡＢＣ＝１２０°，∠ＢＣＤ＝６０°の平行四辺形ＡＢＣＤを、図９に示すように、２（ｐ＋１）（ｚ＋１）個の単体（正三角形）に分割し、各節点を（ｉ，ｊ）（ここで、ｉ＝０，１，・・・，ｐ＋１，ｊ＝０，１，・・・，ｚ＋１，ｐ≧ｚ）と番号付けした領域上で考える。このとき、上記物理量
2006048637.tif 000164
【０３８３】
は各節点上で
2006048637.tif 000165
【０３８４】
（ここで、ｉ＝０，１，・・・，ｐ＋１，ｊ＝０，１，・・・，ｚ＋１，ｐ≧ｚ）と離散化される。本例題では、解析条件として、ｐ＝２５６，ｚ＝１００を設定する。この前提の下で、２次元ラプラス方程式（１２０）を有限要素法により離散化すると、式（１）に対応するブロック３重対角行列表記式として
【数１２１】
2006048637.tif 000166
【０３８５】
を得る。
【０３８６】
ここで，式（２）に対応する
2006048637.tif 000167
【０３８７】
は、
【数１２２】
2006048637.tif 000168
【０３８８】
で表される２５６行２５６列のブロック３重対角行列であり、各ブロック３重対角成分
2006048637.tif 000169
【０３８９】
はそれぞれ、
【数１２３】
2006048637.tif 000170
【０３９０】
として表される１００行１００列の正方行列となる。
【０３９１】
また、式（３）に対応する
2006048637.tif 000171
【０３９２】
は、
【数１２４】
2006048637.tif 000172
【０３９３】
として表される２５６行１列のブロック未知数ベクトルであり、式（４）に対応する式（１２４）の単位成分
2006048637.tif 000173
【０３９４】
は、
【数１２５】
2006048637.tif 000174
【０３９５】
として表される１００行１列の未知数ベクトルである。
【０３９６】
また、式（５）に対応する
2006048637.tif 000175
【０３９７】
は、
【数１２６】
2006048637.tif 000176
【０３９８】
として表される２５６行１列のブロック既知数ベクトルである。ここで、式（１２６）の右辺の単位成分
2006048637.tif 000177
【０３９９】
は、
【数１２７】
2006048637.tif 000178
【０４００】
として表される１００行１列の既知数ベクトルである。本例題では、境界条件を表す式（１２６）のブロック既知数ベクトルとして、
【数１２８】
2006048637.tif 000179
【０４０１】
を設定する（ディレクレ型境界条件）。
【０４０２】
そして、中央演算処理装置３００は、ブロック３重対角行列（１２２）のブロック３重対角行列成分（１２３）と、ブロック既知数ベクトル（１２６）をサブメモリ５００のブロック３重対角行列表記式記憶領域５２０に記憶させる。
【０４０３】
次に、中央演算処理装置３００は、サブメモリ５００の解析条件記憶領域５１０からブロック３重対角行列（１２２）のサイズの値ｐ＝２５６を読み出し、この値と分割回数決定式（７）から
【数１２９】
2006048637.tif 000180
【０４０４】
を満たす自然数ｆ＝６を求め（ステップ１２０）、この値を分割の回数ｒの上限として設定する（ステップ１３０）。
【０４０５】
次に、中央演算処理装置３００は、分割の回数ｒの初期値をｒ＝１に設定し、第１回目の分割プロセスを開始する（ステップ１４０）。本例題の場合、中央演算処理装置３００は、ブロック３重対角行列表記式（１２１）を４行４列のブロック正方行列である第１分割ブロック行列
【数１３０】
2006048637.tif 000181
【０４０６】
を単位として
2006048637.tif 000182
【０４０７】
等分にブロック化する（ステップ１５０）。そして、中央演算処理装置３００は、ステップ１６０において、第１分割ブロック行列（１３０）のブロック３重対角成分を第１代数関係式（１１）に直接代入することによって、式（１０）に対応する第１分割ブロック逆行列を算出する。以降、図２のステップ１７０〜２００の処理をｒ＝６まで繰り返し、次いで、ステップ２１０以降の処理を施すことによって、ブロック未知数ベクトル（１２４）を算出する。
【０４０８】
この処理を、数式計算処理ソフトMathematicaを用いて汎用パーソナルコンピュータで計算させた結果を図１０に示す。この計算結果を得るのに要する実時間
2006048637.tif 000183
【０４０９】
を特許文献１に記載の計算方法で本例題を最適に計算させた場合の実時間
2006048637.tif 000184
【０４１０】
と比較すると、共に、ｐの一次関数として
【数１３１】
2006048637.tif 000185
【０４１１】
と評価できる。更に、ｚ＝１００の場合、
【数１３２】
2006048637.tif 000186
【０４１２】
と評価できるので、式（１３１）と（１３２）から、
【数１３３】
2006048637.tif 000187
【０４１３】
となることがわかる。本例題ではｐ＝２５６であるが、ｐがより大きい場合、式（１３３）から特許文献１の計算方法と比較しておよそ７倍の計算時間の短縮が見込めることがわかる。
【０４１４】
特許文献１と比較した場合、本発明においてこのような計算時間の短縮が見込める理由は、ステップ１６０，２１０で逆行列を求める際に、所定の代数関係式を用いて逆行列を直接計算させたことに起因する。また、本例題の場合のように、ブロック３重対角行列の主対角成分がすべて行列
2006048637.tif 000188
【０４１５】
であり、その上下の対角成分のすべてがそれぞれ、行列
2006048637.tif 000189
【０４１６】
、行列
2006048637.tif 000190
【０４１７】
であるような質の良い行列（１２２）の場合には、各分割段階における分割ブロック行列がすべて同じ行列になるので、１回だけ分割ブロック逆行列を求めればよいことになる。ステップ２１０においても同様にして、圧縮ブロック逆行列を１回だけ求めればよいことになる。一方、特許文献１の計算方法では、逆行列の計算はすべて従来の方法を採用しているため、本例題のような場合であってもかなり計算時間を費やすことになる。この差はｐの値が大きい場合には一層顕著になることは明らかである。
【０４１８】
また、本実施形態の各種分割及び圧縮化のプロセスは複数の中央演算処理装置を用いて並列計算処理させることが望ましい。これに関して、図１に示す本実施形態の計算装置において、バス６００として外部バスを想定しているが、バス６００に拡張バスを使用することによって複数のコンピュータの中央演算処理装置を使用して本発明に係る連立一次方程式の計算プログラムを実施させることも可能である。もちろん、単一の中央演算処理装置を用いて各種分割及び圧縮プロセスをタイムシェアリング法を用いて処理することも可能であるし、複数の中央演算処理装置にタイムシェアリング法を適用するといった並列処理＋タイムシェアリング法を使用してもよいことは明らかである。
【０４１９】
また、本発明に係る連立一次方程式の計算プログラムは、ＭＯ、ＭＤ、ＤＡＴＡ、ＩＤフォーマットなどの光磁気ディスク、ＣＤ−Ｒ、ＣＲ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷなどの光ディスク、フレキシブルディスク、ｚｉｐ、Ｓｕｐｅｒ  Ｄｉｓｋなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、ＰＣカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録することができる。コンピュータは、これらの記憶媒体に記録されている計算プログラムを読み取ることによって、一般の多重対角行列を係数行列として有する連立一次方程式を短時間で解くことができる。
【０４２０】
本実施形態で示した解析手順は、上記の各種の記録媒体や、インターネット、イントラネットなどの回線を介してコンピュータに提供される。これによって、コンピュータは、上記の連立一次方程式の計算プログラムを実行することによって、一般の多重対角行列を係数行列として有する連立一次方程式を短時間で解くことができる。
【図面の簡単な説明】
【０４２１】
【図１】本発明の第１の実施形態に係る連立一次方程式の計算装置の概略構成を示した概念図である。
【図２】図１に示した計算装置で行われる数値計算の処理手順を示すフローチャートである。
【図３】本発明の第２の実施形態に係る連立一次方程式の計算装置の概略構成を示した概念図である。
【図４】図３に示した計算装置で行われる数値計算の処理手順を示すフローチャートである。
【図５】図４に示した数値計算の処理手順の続きを示すフローチャートである。
【図６】本発明の第３の実施形態に係る連立一次方程式の計算装置の概略構成を示した概念図である。
【図７】図６に示す計算装置で行われる数値計算の処理手順を示すフローチャートである。
【図８】図７に示す数値計算の処理手順の続きを示すフローチャートである。
【図９】平行四辺形領域を単体（正三角形）分割した様子を示す図である。
【図１０】本発明の第１の実施形態に係る連立一次方程式の求解方法を用いて、図９に示す領域上でラプラス方程式を数値計算させた結果を示すグラフである。
【符号の説明】
【０４２２】
入力装置  １００
出力装置  ２００
中央演算処理装置  ３００
メインメモリ  ４００
サブメモリ  ５００
解析条件記憶領域  ５１０
ブロック３重対角行列表記式記憶領域  ５２０
第１分割ブロック逆行列記憶領域  ５４０１
第１圧縮ブロック行列表記式記憶領域５５０１
第r分割ブロック逆行列記憶領域  ５４０ｒ
第r圧縮ブロック行列表記式記憶領域  ５５０ｒ
第f（最終）分割ブロック逆行列記憶領域  ５４０ｆ
第f（最終）圧縮ブロック行列表記式記憶領域  ５５０ｆ
ブロックＮ重対角行列表記式記憶領域  ５６０
項別分離パラメータ記憶領域  ５７０
分離ブロック３重対角行列表記式記憶領域  ５８０
結合ブロック行列表記式記憶領域  ５９０
スカラーｑ重対角行列表記式記憶領域  ５９５
外部バス  ６００
【図１】
2006048637.tif 000191
【図２】
2006048637.tif 000192
【図３】
2006048637.tif 000193
【図４】
2006048637.tif 000194
【図５】
2006048637.tif 000195
【図６】
2006048637.tif 000196
【図７】
2006048637.tif 000197
【図８】
2006048637.tif 000198
【図９】
2006048637.tif 000199
【図１０】
2006048637.tif 000200