(57)【特許請求の範囲】
【請求項１】
連立一次方程式を解くためにコンピュータを、
（ａ）前記連立一次方程式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第１行列表示式を生成する第１行列表示式生成手段、
（ｂ）前記第１行列表示式を行方向に並ぶ複数のグループに分割する分割手段、
（ｃ）前記第１行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第１行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する補助ベクトル生成手段、
（ｄ）前記第１行列表示式の各グループにおける係数行列の逆行列を演算する第１逆行列演算手段、
（ｅ）前記第１行列表示式における未知数ベクトル、前記補助ベクトル、前記第１逆行列演算手段により演算された逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段、
（ｆ）前記第２行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段、
（ｇ）前記第３行列表示式における係数行列の逆行列を演算する第２逆行列演算手段、
（ｈ）前記第２逆行列演算手段により演算された逆行列を用いて前記第３行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段、
（ｉ）前記第３行列表示式における未知数ベクトルの各未知数の値を前記第２行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させるための連立一次方程式の計算プログラム。
【請求項２】
連立一次方程式を解くためにコンピュータを、
（ａ）前記連立一次方程式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第１階層目の第１行列表示式を生成する第１行列表示式生成手段、
（ｂ）前記第１行列表示式を行方向に並ぶ複数のグループに分割する第１分割手段、
（ｃ）前記第１行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第１行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第１補助ベクトル生成手段、
（ｄ）前記第１行列表示式の各グループにおける係数行列の逆行列を演算する第１逆行列演算手段、
（ｅ）前記第１行列表示式における未知数ベクトル、前記補助ベクトル、前記第１行列表示式における係数行列の逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段、
（ｆ）前記第２行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段、
（ｇ）前記第３行列表示式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第２階層目の第４行列表示式を生成する第４行列表示式生成手段、
（ｈ）前記第４行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第４行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第２補助ベクトル生成手段、
（ｉ）前記第４行列表示式における係数行列の逆行列をグループごとに演算する第２逆行列演算手段、
（ｊ）前記第４行列表示式における未知数ベクトル、前記第２補助ベクトル生成手段により生成された補助ベクトル、前記第２逆行列演算手段により演算された逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式をグループごとに生成する第５行列表示式生成手段、
（ｋ）前記第５行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第６行列表示式を生成する第６行列表示式生成手段、
（ｌ）前記第６行列表示式における係数行列の逆行列を演算する第３逆行列演算手段、
（ｍ）前記第３逆行列演算手段により演算された逆行列を用いて前記第６行列表示式における未知数ベクトルの各未知数の値を演算する第１未知数値演算手段、
（ｏ）前記第１未知数値演算手段より演算された前記第６行列表示式における各未知数の値を前記第５行列表示式の各グループの補助ベクトルに代入して前記第５行列表示式のすべての未知数の値を演算する第２未知数値演算手段、
（ｐ）前記第２未知数値演算手段より演算された前記第５行列表示式における各未知数の値を前記第２行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させるための連立一次方程式の計算プログラム。
【請求項３】
連立一次方程式を解くためにコンピュータを、
（ａ）前記連立一次方程式から行列表示式を生成する行列表示式生成手段、
（ｂ）前記行列表示式の階層化次数Ｎと各階層の分割数を第Ｎ階層分割数として入力する入力手段、
（ｃ）前記行列表示式を入力された第１階層分割数に応じて複数のグループに分割する分割手段、
（ｄ）前記行列表示式の各グループからグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、
（ｅ）さらに第Ｎ階層（Ｎ＝２、…、ｎ）の分割数に応じて前記圧縮された行列表示式を行方向に並ぶ複数のグループに分割する圧縮後行列表示式分割手段、
（ｆ）前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをＮ−１段階繰り返させる圧縮・分割制御手段、
（ｇ）前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段、
（ｈ）圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段、として機能させるための連立一次方程式の計算プログラム。
【請求項４】
請求項１に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
請求項２に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
請求項３に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
連立一次方程式を解くための装置であって、
（ａ）前記連立一次方程式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第１行列表示式を生成する第１行列表示式生成手段と、
（ｂ）前記第１行列表示式を行方向に並ぶ複数のグループに分割する分割手段と、
（ｃ）前記第１行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第１行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する補助ベクトル生成手段と、
（ｄ）前記第１行列表示式の各グループにおける係数行列の逆行列を演算する第１逆行列演算手段と、
（ｅ）前記第１行列表示式における未知数ベクトル、前記補助ベクトル、前記第１逆行列演算手段により演算された逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段と、
（ｆ）前記第２行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段と、
（ｇ）前記第３行列表示式における係数行列の逆行列を演算する第２逆行列演算手段と、
（ｈ）前記第２逆行列演算手段により演算された逆行列を用いて前記第３行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段と、
（ｉ）前記第３行列表示式における未知数ベクトルの各未知数の値を前記第２行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する連立一次方程式の計算装置。
【請求項８】
連立一次方程式を解くための装置であって、
（ａ）前記連立一次方程式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第１階層目の第１行列表示式を生成する第１行列表示式生成手段と、
（ｂ）前記第１行列表示式を行方向に並ぶ複数のグループに分割する第１分割手段と、
（ｃ）前記第１行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第１行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第１補助ベクトル生成手段と、
（ｄ）前記第１行列表示式の各グループにおける係数行列の逆行列を演算する第１逆行列演算手段と、
（ｅ）前記第１行列表示式における未知数ベクトル、前記補助ベクトル、前記第１行列表示式における係数行列の逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段と、
（ｆ）前記第２行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段と、
（ｇ）前記第３行列表示式に基づいて係数行列×未知数ベクトル＝定数ベクトルとして表される第２階層目の第４行列表示式を生成する第４行列表示式生成手段と、
（ｈ）前記第４行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第４行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第２補助ベクトル生成手段と、
（ｉ）前記第４行列表示式における係数行列の逆行列をグループごとに演算する第２逆行列演算手段と、
（ｊ）前記第４行列表示式における未知数ベクトル、前記第２補助ベクトル生成手段により生成された補助ベクトル、前記第２逆行列演算手段により演算された逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式をグループごとに生成する第５行列表示式生成手段と、
（ｋ）前記第５行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第６行列表示式を生成する第６行列表示式生成手段と、
（ｌ）前記第６行列表示式における係数行列の逆行列を演算する第３逆行列演算手段と、
（ｍ）前記第３逆行列演算手段により演算された逆行列を用いて前記第６行列表示式における未知数ベクトルの各未知数の値を演算する第１未知数値演算手段と、
（ｏ）前記第１未知数値演算手段より演算された前記第６行列表示式における各未知数の値を前記第５行列表示式の各グループの補助ベクトルに代入して前記第５行列表示式のすべての未知数の値を演算する第２未知数値演算手段と、
（ｐ）前記第２未知数値演算手段より演算された前記第５行列表示式における各未知数の値を前記第２行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する連立一次方程式の計算装置。
【請求項９】
連立一次方程式を解くための装置であって、
（ａ）前記連立一次方程式から行列表示式を生成する行列表示式生成手段と、
（ｂ）前記行列表示式の階層化次数Ｎと各階層の分割数を第Ｎ階層分割数として入力する入力手段と、
（ｃ）前記行列表示式を入力された第１階層分割数に応じて複数のグループに分割する分割手段と、
（ｄ）前記行列表示式の各グループからグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段と、
（ｅ）さらに第Ｎ階層（Ｎ＝２、…、ｎ）の分割数に応じて前記圧縮された行列表示式を行方向に並ぶ複数のグループに分割する圧縮後行列表示式分割手段と、
（ｆ）前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをＮ−１段階繰り返させる圧縮・分割制御手段と、
（ｇ）前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段と、
（ｈ）圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段と、を有する連立一次方程式の計算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえば、有限差分法または有限要素法を使って種々の物理現象を模擬解析するにあたり、微分方程式の離散化によって得られた多元連立一次方程式を高速に計算するための、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置に関する。
【０００２】
【従来の技術】
たとえば、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析するためには、一般的に多元連立一次方程式を解かなければならない。多元連立一次方程式を解くためには逆行列の計算が必須となる。ところが、逆行列を計算しようとした場合、一般的に、解析ソフトで扱うことができる行列の大きさには制限があること、また、扱うことができる行列の大きさに制限がないとしても大きな行列の計算には膨大な時間（日、週、月単位）がかかるなどの問題がある。
【０００３】
このため、解析者（オペレータ）は、解析ソフトで模擬解析をするに当たり、なるべく未知数の少ない連立一次方程式になるように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりしている。一般的には、このようにして、逆行列を計算するための分散計算や並列計算の計算時間が短縮されるようにし、模擬解析の高速化を図っているのが現状である。
【０００４】
ところが、近年、従来のこのような不具合を解消するための計算手法が次々と発表されている。最近話題となっている計算手法には、たとえば、米国特許第５４４２５６９号公報「Method and apparatus for system characterization and analysis using finite element methods」に開示されている、分散計算や並列計算を行う方法または装置がある。
【０００５】
この公報には、概略、図１５のフローチャートに示すような手順で多元連立一次方程式を解くための計算方法が開示されている。この計算方法においては、まず、多元連立一次方程式をグループ化する（Ｓ１５０１）。たとえば、多元連立一次方程式として図１６に示したような多元連立一次方程式が与えられたときには、この多元連立一次方程式を図１７に示すような５つのグループに分ける。
【０００６】
つぎに、グループ化した多元連立一次方程式の未知数を、グループ内だけで閉じている未知数（Ｉ）、グループ内の未知数であるが他グループにもある未知数（Ｅ）、他グループにある未知数であるがグループ内にもある未知数（Ｕ）の３つの未知数に分類する（Ｓ１５０２）。たとえば、図１７のようにグループ化された多元連立一次方程式では、未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）の３つの未知数を図１８のように分類する。
【０００７】
つぎに、複数のグループを融合化して、未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）の３つの未知数に分類する（Ｓ１５０３）。たとえば、図１９に示すように、グループ１からグループ３の未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を融合させて１つの融合済みの未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を生成し、残りのグループ４、グループ５の未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を融合させてもう１つの融合済みの未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を生成する。
【０００８】
さらに、複数のグループの融合化を行い、最終的に１つのグループに融合化する。すなわち、融合済みの未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）をすべて融合させ、最終的に１つのグループに融合化する。そして、さらにすべての未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）の３つの未知数を融合させる（Ｓ１５０４）。たとえば、図１９に示してある１つの融合済み（グループ１からグループ３）の未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）ともう１つの融合済み（グループ４、グループ５）の未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を融合させて、最終的に１つの融合済みの３つの未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）を生成する。
【０００９】
そして、生成された１つの融合済みの未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）に基づいて、最終的に未知数（Ｅ）と未知数（Ｕ）のみからなる未知数の少ない連立一次方程式を作成し、この連立一次方程式を解いて未知数を求める（Ｓ１５０５）。
【００１０】
さらに、Ｓ１５０５のステップで求めた未知数を、未知数（Ｅ）と未知数（Ｕ）のみからなる連立一次方程式に代入することによって未知数（Ｅ）と未知数（Ｕ）の値を求める。そして、求められた未知数（Ｅ）と未知数（Ｕ）の値から逆に残された連立一次方程式の未知数（Ｉ）の値を求め、与えられた、多元連立一次方程式のすべての未知数が求まる（Ｓ１５０６）。
【００１１】
つぎに、上記の計算方法を、図を用いてさらに具体的に説明する。例として、図１６に示した多元連立一次方程式を解く場合を考える。
【００１２】
最初に、この多元連立一次方程式を図１７のように５つのグループに分ける。例では、２０式ある多元連立一次方程式を５つのグループに分けている。そして、図１８のように５つのグループの未知数を、グループごとに、未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）に分類する。つぎに、図１９のようにグループ１，２，３を融合し、未知数を未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）に分ける。同様に、グループ４，５を融合し、未知数を未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）に分ける。
【００１３】
つぎに、グループ１，２，３，４，５の多元連立一次方程式を行列表示式で表示する。行列表示式で表示すると図２０に示すようになる。この行列表示式の各グループの左辺の係数行列の逆行列をとると図２１に示すようになる。ここで、５グループあるのに４つの逆行列しか求めていないのは、図２０の行列表示式を良く見ればわかるが、グループ１とグループ４の行列表示式の左辺の係数行列が同一となっているからである。図１８および図２２を見ればわかるように、グループ１の未知数（Ｅ）は、未知数（Ｕ）の関数となる。同様に、グループ２，３，４，５の未知数（Ｅ）は、未知数（Ｕ）の関数となる。
【００１４】
ここで、グループ１，２，３を融合し、各グループの未知数（Ｅ）を取り出すと、図２３のＡに示す連立一次方程式が得られる。この連立一次方程式を行列表示式で表示するとＢに示すような行列表示式となり、この行列表示式を演算するとＣに示すような行列表示式が得られる。この結果、グループ１，２，３を融合したグループの未知数（Ｅ）は、未知数（Ｕ）の関数となる。
【００１５】
同様に、グループ４，５を融合し、各グループの未知数（Ｅ）を取り出すと、図２４のＤに示す連立一次方程式が得られる。この連立一次方程式を行列表示式で表示するとＥに示すような行列表示式となり、この行列表示式を計算するとＦに示すような行列表示式が得られる。この結果、グループ４，５を融合したグループの未知数（Ｅ）は、未知数（Ｕ）の関数となる。
【００１６】
Ｃ、Ｆにおいて、未知数（Ｅ）の部分の式を取り出すと、図２５のＧに示す連立一次方程式が得られる。この連立一次方程式は、未知数が６個であるが、方程式の数も６個あるので解くことができる。この式を解くことにより、Ｈに示すように未知数（Ｅ）を簡単に求めることができる。
【００１７】
Ｈで示されている各未知数の値を図２３、図２４のＣとＦの行列表示式に戻し、この行列表示式から得られた結果をさらに図２２の行列表示式に戻すと、図２５のＩのように図１６に示した多元連立一次方程式のすべての未知数が求められる。
【００１８】
例示した以上のような処理をしながら多元連立一次方程式を求めると、未知数の数が非常に多いときでも、理論的には短時間で未知数のすべての値を求めることが可能になる。
【００１９】
【発明が解決しようとする課題】
しかしながら、米国特許第５４４２５６９号公報に開示されている方法または装置では、多元連立一次方程式を解くために、その多元連立一次方程式を複数のグループにグループ化した後に、未知数を未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）の３つに分割し、それらの未知数をさらにグループ間で融合させ、融合させたものからさらに未知数を未知数（Ｉ）、未知数（Ｅ）、未知数（Ｕ）の３つに分ける作業が必要である。
【００２０】
この未知数を分割させたり、融合させたりする作業は、上記の手法を詳しく検討してみるとわかるが、事務的な作業で済まされるものではない。つまり、未知数をどのように分割するか、どのように融合するかは、最終的に多元連立一次方程式が解けるように考えながら行わなければならないので、その分割や融合には非常に高度な専門知識と経験が要求され、だれでもが簡単にできるような作業ではない。
【００２１】
また、振動解析、構造解析、伝熱解析、流体解析などの物理解析の解析シミュレーションにおいて、詳細な３次元非定常解析を行うためには、初期条件・境界条件などの各種の条件を設定し、それらの条件の下で次の時刻の応答を計算し、さらに求めた応答を条件として次の時刻の応答を計算するということを繰り返し行わなければならない。このため、時間座標系Ｔの任意の時刻の条件を設定しただけでは、詳細な３次元非定常解析を行うことができない。したがって、詳細な３次元非定常解析を行うためには、時間座標系をも考慮した未知数の非常に多い（たとえば１０万〜１００万）連立一次方程式を解くことが必要になる。
【００２２】
このように、未知数の非常に多い連立一次方程式の場合には、連立一次方程式の分割や融合が難しくなり、米国特許第５４４２５６９号公報に開示されている方法または装置を用いたとしても、この連立一次方程式を短時間で解くことは困難になる。
【００２３】
本発明は、以上のような従来の問題点を解消するために成されたものであり、高度な専門知識や経験がなくても、一定の手順を踏むことによって、多元連立一次方程式を高速に解くことができる、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、請求項１に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第１行列表示式を生成する第１行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する補助ベクトル生成手段、前記第１行列表示式における係数行列の逆行列をグループごとに演算する第１逆行列演算手段、前記第１行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段、各グループの前記第２行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段、前記第３行列表示式における係数行列の逆行列を演算する第２逆行列演算手段、演算された逆行列を用いて前記第３行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段、演算された各未知数の値を、各グループの前記第２行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させる。
【００２５】
請求項２に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第１階層目の第１行列表示式を生成する第１行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第１補助ベクトル生成手段、前記第１行列表示式における係数行列の逆行列をグループごとに演算する第１逆行列演算手段、前記第１行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段、各グループの前記第２行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段、前記第３行列表示式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第２階層目の第４行列表示式を生成する第４行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第４行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第２補助ベクトル生成手段、前記第４行列表示式における係数行列の逆行列をグループごとに演算する第２逆行列演算手段、
前記第４行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式をグループごとに生成する第５行列表示式生成手段、各グループの前記第５行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第６行列表示式を生成する第６行列表示式生成手段、前記第６行列表示式における係数行列の逆行列を演算する第３逆行列演算手段、演算された逆行列を用いて前記第６行列表示式における未知数ベクトルの各未知数の値を演算する第１未知数値演算手段、演算された前記第６行列表示式における各未知数の値を、各グループの前記第５行列表示式の補助ベクトルに代入して前記第５行列表示式のすべての未知数の値を演算する第２未知数値演算手段、演算された前記第５行列表示式における各未知数の値を、各グループの前記第２行列表示式の未知数ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させる。
【００２６】
請求項３に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式から行列表示式を生成する行列表示式生成手段、前記行列表示式の階層化次数Ｎと各階層の分割数を第Ｎ階層分割数として入力する入力手段、生成された行列表示式を入力された第１階層分割数に応じて複数のグループの行列表示式に分割する分割手段、分割された各グループの行列表示式からグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、さらに第Ｎ階層（Ｎ＝２、…、ｎ）分割数に応じて複数のグループの行列表示式に分割する圧縮後行列表示式分割手段、前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをＮ−１段階繰り返させる圧縮・分割制御手段、前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段、圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を、圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段、として機能させる。
【００２７】
請求項４に記載の発明は、請求項１に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００２８】
請求項５に記載の発明は、請求項２に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００２９】
請求項６に記載の発明は、請求項３に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００３０】
請求項７に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第１行列表示式を生成する第１行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する補助ベクトル生成手段と、前記第１行列表示式における係数行列の逆行列をグループごとに演算する第１逆行列演算手段と、前記第１行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段と、各グループの前記第２行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段と、前記第３行列表示式における係数行列の逆行列を演算する第２逆行列演算手段と、演算された逆行列から前記第３行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段と、演算された各未知数の値を、各グループの前記第２行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する。
【００３１】
請求項８に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第１階層目の第１行列表示式を生成する第１行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第１補助ベクトル生成手段と、前記第１行列表示式における係数行列の逆行列をグループごとに演算する第１逆行列演算手段と、前記第１行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する第２行列表示式生成手段と、各グループの前記第２行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第３行列表示式を生成する第３行列表示式生成手段と、前記第３行列表示式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル＝定数ベクトルとして表される第２階層目の第４行列表示式を生成する第４行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第４行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第２補助ベクトル生成手段と、前記第４行列表示式における係数行列の逆行列をグループごとに演算する第２逆行列演算手段と、前記第４行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式をグループごとに生成する第５行列表示式生成手段と、各グループの前記第５行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル＝定数ベクトルとして表される第６行列表示式を生成する第６行列表示式生成手段と、前記第６行列表示式における係数行列の逆行列を演算する第３逆行列演算手段と、演算された逆行列から前記第６行列表示式における未知数ベクトルの各未知数の値を演算する第１未知数値演算手段と、演算された前記第６行列表示式における各未知数の値を、各グループの前記第５行列表示式の補助ベクトルに代入して前記第５行列表示式のすべての未知数の値を演算する第２未知数値演算手段と、演算された前記第５行列表示式における各未知数の値を、各グループの前記第２行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する。
【００３２】
請求項９に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式から行列表示式を生成する行列表示式生成手段と、前記行列表示式の階層化次数Ｎと各階層の分割数を第Ｎ階層分割数として入力する入力手段と、生成された行列表示式を入力された第１階層分割数に応じて複数のグループの行列表示式に分割する分割手段と、分割された各グループの行列表示式からグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、さらに第Ｎ階層（Ｎ＝２、…、ｎ）分割数に応じて複数のグループの行列表示式に分割する圧縮後行列表示式分割手段と、前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをＮ−１段階繰り返させる圧縮・分割制御手段と、前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数ベクトルにかかる係数行列の逆行列を演算する逆行列演算手段と、圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を、圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段と、を有する。
【００３３】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置の好適な実施の形態を詳細に説明する。
【００３４】
（第１の実施の形態）
本実施の形態は、請求項１の計算プログラム、請求項４の記録媒体、請求項７の計算装置に対応するものである。
【００３５】
図１は、本発明にかかる、連立一次方程式の計算装置の概略構成図である。また、図２は、この計算装置の処理手順を示すフローチャートである。このフローチャートに示される処理手順は、本発明にかかる、連立一次方程式の計算プログラムに相当する。
【００３６】
本発明の計算プログラムは、たとえば３次元非定常解析において、初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値などの条件および必要な分割数を設定するだけで、連立一次方程式の解を一定の手順でコンピュータに非常に高速に求めさせることができるというものである。
【００３７】
まず、図１に基づいて、本発明にかかる、連立一次方程式の計算装置の概略の構成を説明する。本発明にかかる連立一次方程式の計算装置は、入力装置１００、出力装置１１０、メインメモリ１２０、中央処理装置１３０、サブメモリ１４０から構成される。
【００３８】
入力装置１００は、解析者（オペレータ）が解析に必要となる、たとえば初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値（以上をまとめて条件という）および分割数を入力するために用いる装置であって、たとえばキーボード、タッチパネルなどである。
【００３９】
出力装置１１０は、上記の条件および分割数の入力を促す画面を表示したり、解析結果を表示したりするために用いられる装置であって、たとえば液晶ディスプレイ、プラズマディスプレイなどの各種のディスプレイ、または、インクジェットプリンタ、レーザープリンタなどの各種のプリンタである。
【００４０】
メインメモリ１２０は、本発明にかかる、連立一次方程式の計算プログラムを記憶するＲＡＭやＲＯＭなどの記憶装置である。
【００４１】
中央処理装置１３０は、メインメモリ１２０に記憶されている連立一次方程式の計算プログラムにしたがって、入力装置１００から入力された条件および分割数をもとにして、連立一次方程式の解を求め、求めた解（解析結果）を出力装置１１０に出力する装置である。一般的には、ＣＰＵと称されているものである。中央処理装置１３０は、メインメモリ１２０に記憶されている連立一次方程式の計算プログラムを実行することによって、本発明にかかる連立一次方程式の計算装置の各機能（請求項７に記載されている各手段）としての役割を果たす。
【００４２】
サブメモリ１４０は、中央処理装置１３０が解析の計算途中で求めた逆行列などの値を一時的に記憶させておくための装置であり、ＲＡＭやハードディスクなどの記憶装置である。サブメモリ１４０は、微分方程式記憶領域１４１、多元連立一次方程式記憶領域１４２、解析条件記憶領域１４３、第１行列表示式記憶領域１４４、逆行列記憶領域１４５、補助ベクトル記憶領域１４６、第２行列表示式記憶領域１４７、第３行列表示式記憶領域１４９、第２逆行列記憶領域１５０という複数の領域に区分されている。
【００４３】
以上のように構成された本発明にかかる計算装置は、対象システムを概略次のような手順で解析する。本実施の形態では、対象システムが一質点系であるときの振動解析を例に説明する。この振動解析の手順は、図２のフローチャートに基づき、図３から図７を必要に応じて参照しながら詳細に説明する。なお図３から図６は、本発明の計算装置で行われる処理手順を具体的に示すための図であり、図７は、この処理手順を視覚化し、処理内容をわかりやすくするための図である。
【００４４】
まず、対象システムの物理現象を模擬する微分方程式を作成する。この微分方程式の作成は、対象システムの解析者が行う。そして、解析者は、作成した微分方程式を入力装置１００から入力する。たとえば、外力を受ける物体の1次元の微分方程式を考えた場合、図３の処理ステップ３００（または図７の処理ステップ７００）のような微分方程式が入力装置１００から入力されることになる。入力された微分方程式は、サブメモリ１４０の微分方程式記憶領域１４１に記憶される（Ｓ２０１）。
【００４５】
中央処理装置１３０は、入力された微分方程式を、サブメモリ１４０の微分方程式記憶領域１４１から取り出し、この微分方程式を、一般的に用いられている有限要素法や有限差分法等を用いて離散化する。たとえば、入力装置１００から図３の処理ステップ３００（または図７の処理ステップ７００）のような微分方程式が入力されたときには、時刻を図３の処理ステップ３０１（または図７の処理ステップ７０１）に示されているようにおき、中心差分を用いて図３の処理ステップ３００（または図７の処理ステップ７００）の微分方程式を離散化する（Ｓ２０２）。
【００４６】
つぎに、中央処理装置１３０は、離散化された微分方程式に基づいて、対象システムの解析に必要となる多元連立一次方程式を生成する。たとえば、入力装置１００から図３の処理ステップ３００（または図７の処理ステップ７００）のような微分方程式が入力されたときには、まず、その微分方程式の離散化によって、図３の処理ステップ３０２（または図７の処理ステップ７０２）に示すような式を得て、つぎに、この処理ステップ３０２（または処理ステップ７０２）の式を書き直して処理ステップ３０３（または処理ステップ７０３）に示す多元連立一次方程式を生成する。なお、微分方程式の離散化と多元連立一次方程式の生成は、従来から一般的に用いられている計算プログラムによって行われる。ここで生成される多元連立一次方程式は、未知数の多い連立一次方程式となる。生成された多元連立一次方程式は、サブメモリ１４０の多元連立一次方程式記憶領域１４２に記憶される（Ｓ２０３）。
【００４７】
つぎに、解析者は、解析に必要となる初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数などの条件および分割数を入力装置１００から入力する。入力されたこれらの条件および分割数は、サブメモリ１４０の解析条件記憶領域１４３に記憶される（Ｓ２０４）。
【００４８】
中央処理装置１３０は、生成された多元連立一次方程式を、サブメモリ１４０の多元連立一次方程式記憶領域１４２から取り出し、取り出した多元連立一次方程式から行列表示式を生成する。たとえば、図３の処理ステップ３０３（または図７の処理ステップ７０３）に示す多元連立一次方程式の場合、図３の処理ステップ３０４に示されるような形態の行列表示式を生成する。生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルで表される。この行列表示式は、図７の処理ステップ７０４に示したようなイメージのものである。ここで、係数行列とは、多元連立一次方程式の未知数にかかっている係数のみからなる行列（図３の処理ステップ３０４に示される行列表示式で言えば、α、β、γで表されている行列）である。未知数ベクトルとは、多元連立一次方程式の未知数のみからなるベクトル（図３の処理ステップ３０４に示される行列表示式で言えば、ｘ(0)、…、ｘ(m×n)で表されているベクトル）である。定数ベクトルとは、多元連立一次方程式の定数のみからなるベクトル（図３の処理ステップ３０４に示される行列表示式で言えば、等号の右側にあるベクトル）である。
【００４９】
中央処理装置１３０は、解析者が入力装置１００から解析条件として入力した境界条件などの条件や分割数をサブメモリ１４０の解析条件記憶領域１４３から取り出し、生成した行列表示式にこの条件を当てはめて分割数で分割する。たとえば、境界条件として初期時刻におけるｘ(0)とある時刻でのｘ(m×n+1)が既知のとき、図３の処理ステップ３０４の行列表示式にこの境界条件を当てはめて、図４の処理ステップ３０５のような（ｍ×ｎ）行、（ｍ×ｎ）列の係数行列を持つ行列表示式を生成する。この行列表示式は、図７の処理ステップ７０５に示したようなイメージのものである。そして、処理ステップ３０５の行列表示式をｍ分割して、ｎ行ｎ列に等分割された図５の処理ステップ３０６のような行列表示式を生成する。分割された後の行列表示式は、図７の処理ステップ７０６に示したようなイメージのものである。したがって、ｍグループに分割された行列表示式が生成される。なお、上記の例の場合では、処理の効率を考えて行列表示式を等分割したが、等分割でなくとも良いのはもちろんである。この複数のグループに分けられた行列表示式（第１行列表示式）は、サブメモリ１４０の第１行列表示式記憶領域１４４に記憶される（Ｓ２０５）。
また、対象システムの解析者は、物理現象を模擬する微分方程式を作成し、入力装置１００を介して入力したが、微分方程式を作成するに必要なデータ、例えば、振動解析、熱伝導解析、静的応力解析等の解析の種類、物性値、形状等を解析者が入力装置を介して入力し、解析ソフトウェアにて微分方程式を作成してもよいことは勿論である。
そして、中央処理装置１３０は、サブメモリ１４０の第１行列表示式記憶領域１４４から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。図５の処理ステップ３０６で示されている分割後の行列表示式では、行列Ｍの逆行列をグループごとに算出することになる。求めた逆行列は、サブメモリ１４０の第１逆行列記憶領域１４５に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについての逆行列が求まるまで継続される。したがって、逆行列は、分割数と同じ数だけグループごとに求められることになる。なお、この逆行列は、行列表示式の係数行列の大きさが分割によって小さくなっているので、短時間で容易に求めることができる。行列を等分割した場合は１つの係数行列の逆行列を求めれば良いので、さらに短時間で求めることができる。
【００５０】
再び中央処理装置１３０は、サブメモリ１４０の第１行列表示式記憶領域１４４から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。この補助ベクトルは、図５の処理ステップ３０６の行列表示式の場合、右辺に位置する二つのベクトルの和である。生成された補助ベクトルは、サブメモリ１４０の補助ベクトル記憶領域１４６に記憶される（Ｓ２０６）。
【００５１】
中央処理装置１３０は、サブメモリ１４０の、第１行列表示式記憶領域１４４から分割後の行列表示式に含まれる未知数ベクトルを、第１逆行列記憶領域１４５から逆行列を、さらに補助ベクトル記憶領域１４６から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する。生成した第２行列表示式は、サブメモリ１４０の第２行列表示式記憶領域１４７に記憶される。
【００５２】
中央処理装置１３０は、サブメモリ１４０の第２行列表示式記憶領域１４７からすべてのグループの第２行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して連立方程式を作成する。この圧縮によって、それぞれのグループの第２行列表示式の一番上の式と一番下の式のみが集められることになる。たとえば、図５の処理ステップ３０６の行列表示式の場合、グループ間の境界部に位置する式だけを取り出すと、図６の処理ステップ３０７に示すような（２ｍ−２）個の式からなる連立方程式が得られる。この圧縮の過程をイメージで表示すれば、図７の処理ステップ７０６から処理ステップ７０７の過程のようになる。この連立方程式から第３行列表示式を生成する。生成される行列表示式は、図６の処理ステップ３０７に示すような行列表示式であり、係数行列×未知数ベクトル＝定数ベクトルで表される。生成された第３行列表示式は、サブメモリ１４０の第３行列表示式記憶領域１４９に記憶される（Ｓ２０７）。
【００５３】
つぎに、中央処理装置１３０は、サブメモリ１４０の第３行列表示式記憶領域１４９から第３行列表示式を取り出し、取り出した行列表示式の係数行列の逆行列を演算する。求めた逆行列は、サブメモリ１４０の第２逆行列記憶領域１５０に記憶される。中央処理装置１３０は、サブメモリ１４０の、第３行列表示式記憶領域１４９から第３行列表示式を、第２逆行列記憶領域１５０から求めた逆行列を取り出し、第３行列表示式における未知数ベクトルの各未知数の値を演算する。ここでの未知数の演算によって、第３行列表示式の未知数のすべて、すなわち、第２行列表示式の境界部に位置する未知数のすべてが求まる。図６の処理ステップ３０７の行列表示式の場合、（２ｍ−２）元連立一次方程式であるが、未知数も（２ｍ−２）個であるので、処理ステップ３０８（または図７の処理ステップ７０８）のように、未知数ｘ(n)、ｘ(n+1)、ｘ(2n)、ｘ(2n+1)、…、ｘ(n×m-n+1)が求まることになる（Ｓ２０８）。なお、ｘ(1)、ｘ(m×n)を加えて未知数の数を２ｍ個とし、方程式数を２ｍ個とした方が第２階層以降の分割が容易になる。
【００５４】
以上のようにして、すべてのグループの第２行列表示式の境界部の未知数が求まると、さらに、中央処理装置１３０は、サブメモリ１４０の、第２行列表示式記憶領域１４７から第２行列表示式を取り出し、演算された各未知数の値を、各グループの第２行列表示式の補助ベクトルに代入し、連立一次方程式のすべての未知数の値が求まる。図６の処理ステップ３０９の場合、処理ステップ３０８（または図７の処理ステップ７０８）で求めた解を図５の処理ステップ３０６Ａに代入し（イメージとしては図７の処理ステップ７０９）、分割前の連立一次方程式のすべての未知数ｘ(i)を求める。これによって、図６の処理ステップ３１０（または図７の処理ステップ７１０）に示すように、多元連立一次方程式のすべての未知数が求まる（Ｓ２０９）。
【００５５】
つぎに、本発明の理解をさらに深めるために、例示した連立一次方程式に基づいて未知数の値を求める手順を説明する。
【００５６】
まず、微分方程式を離散化した結果、下記のような９個の未知数を持つ連立一次方程式が与えられたものとする。
なお、境界条件は、ｘ0＝１、ｘ10＝０である。また、分割数は２である。
【００５７】
【数１】
0003864059.tif 000002
【００５８】
この連立一次方程式から行列表示式を生成すると、次のように、係数行列×未知数ベクトル＝定数ベクトルとして表される。なお、係数行列は下記の行列表示式の左辺の行列、未知数ベクトルは左辺のベクトル、定数ベクトルは右辺のベクトルである。
【００５９】
【数２】
0003864059.tif 000003
【００６０】
この行列表示式を２分割するため、単純に上から４番目の行で区切り、２つのグループに分割すると、係数行列×未知数ベクトル＝定数ベクトルとして表される２つの第１行列表示式ができる。これらの第１行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル（下記の行列表示式の一番右側のベクトル）を各グループの第１行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「＝」の右辺の２つのベクトルの和である。
【００６１】
【数３】
0003864059.tif 000004
【００６２】
そして、第１行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式を生成する。生成される第２行列表示式は下記のような行列表示式になる。
【００６３】
【数４】
0003864059.tif 000005
【００６４】
つぎに、この第２行列表示式よりグループ間の境界部に位置することとなった式をだけを取り出す。すなわち、上記（３）式の一番下に位置する式と、（４）式の一番上に位置する式を取り出し、それらの式から下記のような連立方程式を生成する。
【００６５】
【数５】
0003864059.tif 000006
【００６６】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルとして表される、下記のような第３行列表示式となる。
【００６７】
【数６】
0003864059.tif 000007
【００６８】
そして、第３行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数ｘ4、ｘ5の値が次のような行列表示式から求まる。
【００６９】
【数７】
0003864059.tif 000008
【００７０】
以上のようにして求められた未知数ｘ5の値を第２行列表示式の（３）式に代入し、また未知数ｘ4の値を第２行列表示式の（４）式に代入すると、下記のような行列表示式が得られ、この行列表示式から与えられた連立一次方程式の９つの未知数のすべてが求められる。
【００７１】
【数８】
0003864059.tif 000009
【００７２】
以上が９つの未知数を持つ連立一次方程式を２分割した場合の計算手順である。
【００７３】
つぎに、同じ連立一次方程式を３分割して解く場合、すなわち、入力された分割数が３の場合を説明する。
【００７４】
まず、上記の連立一次方程式を３等分し、得られた３つの第１行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトルを各グループの第１行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「＝」の右辺の２つのベクトルの和である。
【００７５】
【数９】
0003864059.tif 000010
【００７６】
そして、第１行列表示式における各グループの係数行列の逆行列を、下記の式のようにグループごとに演算する。今の場合、同じ係数行列なので、一つのグループの係数行列の逆行列を求めれば良い。
【００７７】
【数１０】
0003864059.tif 000011
【００７８】
演算された逆行列から、未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式を生成する。生成される第２行列表示式は下記のような行列表示式になる。
【００７９】
【数１１】
0003864059.tif 000012
【００８０】
つぎに、この第２行列表示式よりグループ間の境界部に位置することとなった式だけを取り出し、下記のような連立方程式を生成する。
【００８１】
【数１２】
0003864059.tif 000013
【００８２】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルとして表される、下記のような第３行列表示式となる。
【００８３】
【数１３】
0003864059.tif 000014
【００８４】
そして、第３行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数ｘ3、ｘ4、ｘ6、ｘ7の値を求める次のような行列表示式が得られる。
【００８５】
【数１４】
0003864059.tif 000015
【００８６】
この行列表示式から未知数ｘ3、ｘ4、ｘ6、ｘ7の値が下記のように求まる。
【００８７】
【数１５】
0003864059.tif 000016
【００８８】
未知数ｘ3、ｘ4、ｘ6、ｘ7の値を第２行列表示式（数１１の行列表示式）に代入して、下記のような行列表示式を得て、この行列表示式から与えられた連立一次方程式の９つの未知数のすべてを求める。
【００８９】
【数１６】
0003864059.tif 000017
【００９０】
本実施の形態のように、連立一次方程式から得られた行列表示式を分割し、分割した行列表示式の境界部の式のみを取り出して圧縮した行列表示式を生成し、この行列表示式を解くことによって最終的にもとの行列表示式のすべての未知数を求めるようにすると、非常に単純な手順で、しかも事務的に、複雑な連立一次方程式を求めることが可能になる。
【００９１】
本発明の連立一次方程式の計算プログラムまたは連立一次方程式の計算装置を用いて実際に解析計算を行わせたところ、図８に示すように、行列表示式の演算時間を著しく減少させることができた。
【００９２】
図８は、１質点系の振動応答解析を行った場合に得られた、１００，０００行×１００，０００列の係数行列を持つ行列表示式を解く（すなわち１００，０００元連立一次方程式を解く）のにかかった時間の測定結果を示すものである。
【００９３】
図８（Ａ）に示すように、１００，０００行×１００，０００列の係数行列をもつ行列表示式を、本願発明のような分割・圧縮の手法を使用せずに従来の手法で解いた場合には、時間がかかりすぎて、結果的には解くまでにかかる時間を測定することができなかった。ところが本発明の計算プログラムを用いて、２０分割（分割数として２０を入力）すると、その行列表示式が２，５００秒で、５０分割すると１００秒で、２５０分割するとわずか２０秒でその行列表示式を解くことができた。
【００９４】
また、分割数と計算時間との関係をグラフで表すと、図８（Ｂ）のような結果となった。すなわち、１００，０００行×１００，０００列の係数行列をもつ行列表示式を解く場合は、分割数が５０までは急激に計算時間が減少し、それ以上の分割数では緩やかに計算時間が減少していく。したがって、この行列表示式の場合には、１００分割程度に分割すれば実用的には十分であるといえる。
【００９５】
このように、本実施の形態にかかる連立一次方程式の計算プログラムを用いると、未知数の数が非常に多い連立一次方程式であっても短時間で求めることが可能になるため、建築物における振動の伝達状況や部屋の温度の分布状況などの物理現象の模擬解析を精度良く解析することができるようになる。
【００９６】
本発明にかかる連立一次方程式の計算プログラムは、ＭＯ、ＭＤ  ＤＡＴＡ、ｉＤフォーマットなどの光磁気ディスク、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷなどの光ディスク、フレキシブルディスク、ｚｉｐ、Ｓｕｐｅｒ  Ｄｉｓｋなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、ＰＣカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録しておくことができる。コンピュータは、これらの記録媒体に記録されている本発明の連立一次方程式の計算プログラムを読み込むことによって、連立一次方程式を短時間で解くことができる。
【００９７】
上記の実施の形態で示した解析手順は、連立一次方程式の計算プログラムとして、上記の各種の記録媒体を介して、またはインターネットやイントラネットの回線を介してコンピュータに提供される。コンピュータは、この連立一次方程式の計算プログラムを実行することによって行列表示式の分割や圧縮を行い、連立一次方程式の解を非常に短時間で解くことができる。
【００９８】
（第２の実施の形態）
本実施の形態は、請求項２、３の計算プログラム、請求項５、６の記録媒体、請求項８、９の計算装置に対応するものである。
【００９９】
図９は、本発明にかかる、連立一次方程式の計算装置の概略構成図である。また、図１０は、この計算装置の処理手順を示すフローチャートである。このフローチャートに示される処理手順は、本発明にかかる、連立一次方程式の計算プログラムに相当する。
【０１００】
まず、図９に基づいて、本発明にかかる、連立一次方程式の計算装置の概略の構成を説明する。本発明にかかる連立一次方程式の計算装置は、入力装置９００、出力装置９１０、メインメモリ９２０、中央処理装置９３０、サブメモリ９４０から構成される。
【０１０１】
入力装置９００、出力装置９１０、メインメモリ９２０、中央処理装置９３０は、第１の実施の形態で説明した、入力装置１００、出力装置１１０、メインメモリ１２０、中央処理装置１３０とまったく同一の機能を有しているので、それらの機能の説明は省略する。
【０１０２】
サブメモリ９４０は、中央処理装置９３０が解析の計算途中で求めた逆行列などの値を一時的に記憶させておくための装置であり、ＲＡＭやハードディスクなどの記憶装置である。サブメモリ９４０は、微分方程式記憶領域９４１、多元連立一次方程式記憶領域９４２、解析条件記憶領域９４３、第１行列表示式記憶領域９４４、第１逆行列記憶領域９４５、第１補助ベクトル記憶領域９４６、第２行列表示式記憶領域９４７、第３行列表示式記憶領域９４９、第４行列表示式記憶領域９５０、第５行列表示式記憶領域９５１、第６行列表示式記憶領域９５２、第２逆行列記憶領域９５３、第２補助ベクトル記憶領域９５４、第３逆行列記憶領域９５５という複数の領域に区分されている。
【０１０３】
以上のように構成された本発明にかかる計算装置は、対象システムを概略次のような手順で解析する。本実施の形態では、対象システムが一質点系であるときの振動解析を例に説明する。この振動解析の手順は、図１０のフローチャートに基づき、図１１を必要に応じて参照しながら詳細に説明する。なお図１１は、この処理手順を視覚化し、処理内容をわかりやすくするための図である。
【０１０４】
まず、対象システムの物理現象を模擬する微分方程式を作成する。この微分方程式の作成は、対象システムの解析者が行う。そして、解析者は、作成した微分方程式を入力装置９００から入力する。入力された微分方程式は、サブメモリ９４０の微分方程式記憶領域９４１に記憶される（Ｓ１００１）。
【０１０５】
中央処理装置９３０は、入力された微分方程式を、サブメモリ９４０の微分方程式記憶領域９４１から取り出し、この微分方程式を、一般的に用いられている有限要素法や有限差分法等を用いて離散化する（Ｓ１００２）。
【０１０６】
つぎに、中央処理装置９３０は、離散化された微分方程式に基づいて、対象システムの解析に必要となる多元連立一次方程式を生成する。なお、微分方程式の離散化と多元連立一次方程式の生成は、従来から一般的に用いられている計算プログラムによって行われる。ここで生成される多元連立一次方程式は、未知数の多い連立一次方程式となる。生成された多元連立一次方程式は、サブメモリ９４０の多元連立一次方程式記憶領域９４２に記憶される（Ｓ１００３）。
【０１０７】
つぎに、解析者は、解析に必要となる初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数などの条件および各階層の分割数ならびに階層化次数Ｎを入力装置９００から入力する。なお、階層化次数とは、行列表示式の分割・圧縮工程を繰り返す回数である。本実施の形態では、階層化次数を２としているので、行列表示式の分割・圧縮が２回行われることになる。入力されたこれらの条件および各階層の分割数ならびに階層化次数Ｎは、サブメモリ９４０の解析条件記憶領域９４３に記憶される（Ｓ１００４）。
【０１０８】
中央処理装置９３０は、生成された多元連立一次方程式を、サブメモリ９４０の多元連立一次方程式記憶領域９４２から取り出し、取り出した多元連立一次方程式から行列表示式を生成する。生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルで表される。この行列表示式は、図１１の処理ステップ１１０４に示したようなイメージのものである。ここで、係数行列とは、多元連立一次方程式の未知数にかかっている係数のみからなる行列である。未知数ベクトルとは、多元連立一次方程式の未知数のみからなるベクトルである。定数ベクトルとは、多元連立一次方程式の定数のみからなるベクトルである。
【０１０９】
中央処理装置９３０は、解析者が入力装置９００から解析条件として入力した境界条件などの条件や各階層の分割数をサブメモリ９４０の解析条件記憶領域９４３から取り出し、生成した行列表示式にこの条件を当てはめて第１階層目の分割数で等分割する。生成された行列表示式は、第１階層目の第１行列表示式となる。たとえば、境界条件として初期時刻におけるｘ(0)とある時刻でのｘ(m×n+1)が既知のとき、生成した行列表示式にこの境界条件を当てはめて、（ｍ×ｎ）行、（ｍ×ｎ）列の係数行列を持つ行列表示式を生成する。この行列表示式は、図１１の処理ステップ１１０５に示したようなイメージのものである。
【０１１０】
そして、この行列表示式をｍ分割して、ｎ行ｎ列に等分割された、図１１の処理ステップ１１０６に示したようなイメージの行列表示式を生成する。したがって、この等分割によって、ｍグループに分割された行列表示式が生成されることになる。なお、上記の例の場合では、処理の効率を考えて行列表示式を等分割したが、等分割でなくとも良いのはもちろんである。この複数のグループに分けられた行列表示式（第１行列表示式）は、サブメモリ９４０の第１行列表示式記憶領域９４４に記憶される（Ｓ１００５）。
【０１１１】
つぎに、中央処理装置９３０は、サブメモリ９４０の解析条件記憶領域９４３から階層化次数Ｎを取り出し、その値を設定し、階層化の初期値としてカウンタｎの値を１とする。本実施の形態では、階層化次数を２としているので、中央処理装置９３０には２が設定される（Ｓ１００６，Ｓ１００７）。
【０１１２】
そして、中央処理装置９３０は、サブメモリ９４０の第１行列表示式記憶領域９４４から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。求めた逆行列は、サブメモリ９４０の第１逆行列記憶領域９４５に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについての係数行列の逆行列が求まるまで継続される。したがって、逆行列は、第１階層目の分割数と同じ数だけグループごとに求められることになる。なお、この逆行列は、行列表示式の係数行列の大きさが分割によって小さくなっているので、短時間で容易に求めることができる。行列を等分割した場合は１つの行列の逆行列を求めれば良いので、さらに短時間で求めることができる。
【０１１３】
再び中央処理装置９３０は、サブメモリ９４０の第１行列表示式記憶領域９４４から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第１行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。生成された補助ベクトルは、サブメモリ９４０の第１補助ベクトル記憶領域９４６に記憶される（Ｓ１００８）。
【０１１４】
中央処理装置９３０は、サブメモリ９４０の、第１行列表示式記憶領域９４４から分割後の行列表示式に含まれる未知数ベクトルを、第１逆行列記憶領域９４５から逆行列を、さらに第１補助ベクトル記憶領域９４６から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式をグループごとに生成する。生成した第２行列表示式は、サブメモリ９４０の第２行列表示式記憶領域９４７に記憶される。
【０１１５】
中央処理装置９３０は、サブメモリ９４０の第２行列表示式記憶領域９４７からすべてのグループの第２行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して第３行列表示式を生成する。この圧縮の過程をイメージで表示すれば、図１１の処理ステップ１１０６から処理ステップ１１０７の過程のようになる。生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルで表される。生成された第３行列表示式は、サブメモリ９４０の第３行列表示式記憶領域９４９に記憶される（Ｓ１００９）。
【０１１６】
中央処理装置９３０は、サブメモリ９４０の解析条件記憶領域９４３から階層化次数Ｎの値を取り出し、取り出した階層化次数Ｎの値と、階層化の段階をカウントするカウンタｎの値とからｎ−Ｎを演算する。ｎ−Ｎ≧０でなければ（この時点ではｎ＝１である）、分割・圧縮工程を繰り返す回数がまだ設定した回数まで達していないので（Ｓ１０１０：ＮＯ）、中央処理装置９３０は、サブメモリ９４０の解析条件記憶領域９４３から第２階層目の分割数を、サブメモリ９４０の第３行列表示式記憶領域９４９から第３行列表示式を、それぞれ取り出し、第３行列表示式にこの条件を当てはめてその分割数で分割する。生成された行列表示式は、第２階層目の第４行列表示式となる。この第４行列表示式は、サブメモリ９４０の第４行列表示式記憶領域９５０に記憶される。そして、中央処理装置９３０は、階層化の段階をカウントするカウンタｎの値を１だけインクリメントして２とする（Ｓ１０１１）。
【０１１７】
そして、中央処理装置９３０は、サブメモリ９４０の第４行列表示式記憶領域９５０から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。求めた逆行列は、サブメモリ９４０の第２逆行列記憶領域９５３に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについて係数行列の逆行列が求まるまで継続される。したがって、逆行列は、第２階層目の分割数と同じ数だけグループごとに求められることになる。行列を等分割した場合は一つの行列の逆行列を求めれば良い。
【０１１８】
さらに、中央処理装置９３０は、サブメモリ９４０の第４行列表示式記憶領域９５０から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第４行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。生成された補助ベクトルは、サブメモリ９４０の第２補助ベクトル記憶領域９５４に記憶される（Ｓ１００８）。
【０１１９】
中央処理装置９３０は、サブメモリ９４０の、第４行列表示式記憶領域９５０から分割後の行列表示式に含まれる未知数ベクトルを、第２逆行列記憶領域９５３から逆行列を、さらに第２補助ベクトル記憶領域９５４から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式をグループごとに生成する。生成した第５行列表示式は、サブメモリ９４０の第５行列表示式記憶領域９５１に記憶される。
【０１２０】
中央処理装置９３０は、サブメモリ９４０の第５行列表示式記憶領域９５１からすべてのグループの第５行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して第６行列表示式を生成する。この圧縮の過程をイメージで表示すれば、図１１の処理ステップ１１０８から処理ステップ１１０９の過程のようになる。生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルで表される。生成された第６行列表示式は、サブメモリ９４０の第６行列表示式記憶領域９５２に記憶される（Ｓ１００９）。
【０１２１】
中央処理装置９３０は、サブメモリ９４０の解析条件記憶領域９４３から階層化次数Ｎの値を取り出し、取り出した階層化次数Ｎの値と、階層化の段階をカウントするカウンタｎの値とからｎ−Ｎを演算する。ｎ−Ｎ≧０であれば（この時点ではｎ＝２である）、分割・圧縮工程を繰り返す回数が設定した回数の２回に達したので（Ｓ１０１０：ＹＥＳ）、中央処理装置９３０は、圧縮された行列表示式の解を求めるために、サブメモリ９４０の第６行列表示式記憶領域９５２から第６行列表示式を取り出し、取り出した行列表示式の係数行列の逆行列を演算する。求めた逆行列は、サブメモリ９４０の第３逆行列記憶領域９５５に記憶される。
【０１２２】
中央処理装置９３０は、サブメモリ９４０の、第６行列表示式記憶領域９５２から第６行列表示式を、第３逆行列記憶領域９５５から求めた逆行列を取り出し、第６行列表示式における未知数ベクトルの各未知数の値が求まる。ここで未知数が求まったことによって、第６行列式の未知数のすべて、すなわち、図１１の処理ステップ１１０９のようなイメージで表される第５行列表示式の境界部に位置する未知数のすべてが求まる。たとえば、図１１の処理ステップ１１１０のように、未知数ｘ(m×n)、ｘ(m×n+1)、ｘ(2m×n)、…が求まることになる（Ｓ１０１２）。
【０１２３】
以上のようにして、すべてのグループの第５行列表示式の境界部の未知数が求まると、さらに、中央処理装置９３０は、サブメモリ９４０の、第５行列表示式記憶領域９５１から第５行列表示式を取り出し、演算された各未知数の値を、各グループの第５行列表示式の補助ベクトルに代入し、Ｓ１００８のステップで演算された逆行列を利用して、第５行列表示式のすべての未知数を演算する。すなわち、図１１の処理ステップ１１１１のようなイメージで表される第４行列表示式の境界部に位置する未知数のすべてが求まる。たとえば、図１１の処理ステップ１１１２のように、未知数ｘ(1)、ｘ(m×n)、ｘ(m×n+1)、…が求まることになる（Ｓ１０１３）。
【０１２４】
中央処理装置９３０は、階層化の段階をカウントするカウンタｎの値が１以下であるか否かを判断する。ｎ≦１でなければ（この時点ではｎ＝２である）、（Ｓ１０１４：ＮＯ）、中央処理装置９３０は、階層化の段階をカウントするカウンタｎの値を１だけデクリメントして１とする（Ｓ１０１５）。
【０１２５】
以上のようにして、すべてのグループの第４行列表示式の境界部の未知数が求まると、さらに、中央処理装置９３０は、サブメモリ９４０の、第２行列表示式記憶領域９４７から第２行列表示式を取り出し、演算された各未知数の値を、図１１の処理ステップ１１１３のようなイメージで表される各グループの第２行列表示式の補助ベクトルに代入し、連立一次方程式のすべての未知数の値を演算する。たとえば、図１１の処理ステップ１１１４のように、未知数ｘ(1)からｘ(m×n)が求まることになる。
【０１２６】
中央処理装置９３０は、階層化の段階をカウントするカウンタｎの値が１以下であるか否かを判断する。ｎ≦１であれば（この時点ではｎ＝１である）、（Ｓ１０１４：ＹＥＳ）、中央処理装置９３０は処理を終了する。
【０１２７】
つぎに、本発明の理解をさらに深めるために、例示した連立一次方程式に基づいて、２回の分割・圧縮処理（階層化次数Ｎ＝２）を経て、未知数の値を求める手順を説明する。
【０１２８】
まず、微分方程式を離散化した結果、下記のような１６個の未知数を持つ連立一次方程式が与えられたものとする。
なお、入力された境界条件は、ｘ0＝１、ｘ17＝０である。また、入力された階層化次数は２、第１階層目の分割数は４、第２階層目の分割数は２である。
【０１２９】
【数１７】
0003864059.tif 000018
【０１３０】
この連立一次方程式から行列表示式を生成すると、次のように、係数行列×未知数ベクトル＝定数ベクトルとして表される。なお、係数行列は下記の行列表示式の左辺の行列、未知数ベクトルは左辺のベクトル、定数ベクトルは右辺のベクトルである。
【０１３１】
【数１８】
0003864059.tif 000019
【０１３２】
この行列表示式を入力された第１階層目の分割数で分割するため、単純に上から４等分して４つのグループに分割すると、係数行列×未知数ベクトル＝定数ベクトルとして表される４つの第１行列表示式ができる。これらの第１行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル（下記の行列表示式の一番右側のベクトル）を各グループの第１行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「＝」の右側の２つのベクトルの和である。
【０１３３】
【数１９】
0003864059.tif 000020
【０１３４】
そして、第１行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル＝逆行列×補助ベクトルとして表される第２行列表示式を生成する。生成される第２行列表示式は下記のような行列表示式になる。
【０１３５】
【数２０】
0003864059.tif 000021
【０１３６】
つぎに、この第２行列表示式よりグループ間の境界部に位置することとなった式だけを取り出す。取り出した式から下記のような連立方程式を生成する。
【０１３７】
【数２１】
0003864059.tif 000022
【０１３８】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルとして表される、下記のような第３行列表示式となる。
【０１３９】
【数２２】
0003864059.tif 000023
【０１４０】
第３行列表示式のバランスをよくするために、下記のような変形をする。
【０１４１】
【数２３】
0003864059.tif 000024
【０１４２】
この第３行列表示式を入力された第２階層目の分割数で分割するため、単純に上から２等分して２つのグループに分割すると、係数行列×未知数ベクトル＝定数ベクトルとして表される第２階層目の第４行列表示式ができる。これらの第４行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル（下記の行列表示式の一番右側のベクトル）を各グループの第４行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「＝」の右側の２つのベクトルの和である。
【０１４３】
【数２４】
0003864059.tif 000025
【０１４４】
そして、第４行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル＝逆行列×補助ベクトルとして表される第５行列表示式を生成する。生成される第５行列表示式は下記のような行列表示式になる。
【０１４５】
【数２５】
0003864059.tif 000026
【０１４６】
つぎに、この第５行列表示式よりグループ間の境界部に位置することとなった式をだけを取り出す。取り出した式から下記のような連立方程式を生成する。
【０１４７】
【数２６】
0003864059.tif 000027
【０１４８】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル＝定数ベクトルとして表される、下記のような第６行列表示式となる。
【０１４９】
【数２７】
0003864059.tif 000028
【０１５０】
そして、第６行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数ｘ8、ｘ9の値が次のような行列表示式から求まる。
【０１５１】
【数２８】
0003864059.tif 000029
【０１５２】
この行列表示式から未知数ｘ8、ｘ9の値が求まると、未知数ｘ8、ｘ9の値を第５行列表示式（数２５の行列表示式）に代入して、未知数ｘ1、ｘ4、ｘ5、ｘ12、ｘ13、ｘ16の値が次のような行列表示式から求まる。ここまでの処理で第５行列表示式のすべての未知数が求められたことになる。
【０１５３】
【数２９】
0003864059.tif 000030
【０１５４】
以上までの処理で求められた未知数ｘ1、ｘ4、ｘ5、ｘ8、ｘ9、ｘ12、ｘ13、ｘ16の値を第２行列表示式（数２０の行列表示式）に代入して、残りの未知数ｘ2、ｘ3、ｘ6、ｘ7、ｘ10、ｘ11、ｘ14、ｘ15の値が次のような行列表示式から求まる。これにより連立一次方程式の１６個の未知数のすべてが求まる。
【０１５５】
【数３０】
0003864059.tif 000031
【０１５６】
【数３１】
0003864059.tif 000032
【０１５７】
本実施の形態のように、階層化次数に応じて、連立一次方程式から得られた行列表示式を分割し、分割した行列表示式の境界部のみを取り出して圧縮した行列表示式を生成するということを繰り返し、圧縮された行列表示式を分割の順番とは逆の順番で解くことによって最終的にもとの行列表示式のすべての未知数を求めるようにすると、非常に単純な手順で、しかも事務的に、複雑な連立一次方程式を求めることが可能になる。
【０１５８】
本発明の連立一次方程式の計算プログラムまたは連立一次方程式の計算装置を用いて実際に解析計算を行わせたところ、図１２に示すように、行列表示式の演算時間を著しく減少させることができた。
【０１５９】
図１２は、１０質点系の振動応答解析を行った場合に得られた、１，０００，０００行×１，０００，０００列の係数行列を持つ行列表示式を解くのにかかった時間を測定した結果を示すものである。
【０１６０】
図１２（Ａ）の表に示すように、１，０００，０００行×１，０００，０００列の係数行列を持つ行列表示式を、第１階層目の分割数（第１分割数）を２５０とし、第２階層目の分割数（第２分割数）を２として解いた場合には、その行列表示式が２，６５０秒で解け、第１分割数を１，０００とし第２分割数を２５として解いた場合には、その行列表示式が３５０秒で解けた。また、第１分割数および第２分割数と計算時間との関係を立体棒グラフで表すと、図１２（Ｂ）のように表すことができる。１，０００，０００行×１，０００，０００列の係数行列を持つ行列表示式を解く場合は、第１分割数および第２分割数共にある程度の範囲内において、多くなるほど計算時間が少なくなるのがわかる。
【０１６１】
このように、本実施の形態に係る連立一次方程式の計算プログラムを用いて解析を行うと、未知数の数が非常に多い連立一次方程式であっても短時間で求めることが可能になるため、建築物における振動の伝達状況や部屋の温度の分布状況などの物理現象の模擬解析を精度良く解析することができるようになる。
【０１６２】
なお、本実施の形態では、２回分割（階層化次数が２）することによって連立一次方程式を解く場合について述べたが、３回以上分割することによっても、上記の解析手順と同様の解析手順を用いることによって連立方程式を解くことが可能である。
【０１６３】
本発明にかかる連立一次方程式の計算プログラムは、ＭＯ、ＭＤ  ＤＡＴＡ、ｉＤフォーマットなどの光磁気ディスク、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷなどの光ディスク、フレキシブルディスク、ｚｉｐ、Ｓｕｐｅｒ  Ｄｉｓｋなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、ＰＣカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録しておくことができる。コンピュータは、これらの記録媒体に記録されている本発明の連立一次方程式の計算プログラムを読み込むことによって、連立一次方程式を短時間で解くことができる。
【０１６４】
上記の実施の形態で示した解析手順は、連立一次方程式の計算プログラムとして、上記の各種の記録媒体を介して、またはインターネットやイントラネットの回線を介してコンピュータに提供される。コンピュータは、この連立一次方程式の計算プログラムを実行することによって行列表示式の分割や圧縮を行い、連立一次方程式の解を非常に短時間で解くことができる。
【０１６５】
以上、２つの実施の形態で説明したように、本発明によれば、入力した初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値および分割数などに基づいて、係数行列の大きな行列表示式が係数行列の小さな行列表示式に自動的に分割（複数回）されるようになっているので、高度な専門知識や経験がなくても、最終的に得られる行列表示式を非常に小さな行列表示式にすることができる。
【０１６６】
このため、理論上は、扱うことができる行列の大きさの制限が著しく緩和されることから、たとえば、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析する場合でも、従来のように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりする必要がなくなり、高度な専門知識や経験がなくても多元連立一次方程式を解くことができるようになる。また、分割された行列表示式の係数行列の逆行列は、非常に短時間で解くことができるので、非常に高精度の解析結果を従来とは比較にならないほどの速さで得ることができるようになる。
【０１６７】
【実施例】
つぎに、本発明にかかる連立一次方程式の計算装置を用いて、実際に解析計算を行う場合の手順や解析結果の表示形態を説明する。
【０１６８】
（第１実施例）
この実施例は、１０階建ての建物の応答変位時刻歴を求める振動解析を行う場合である。
【０１６９】
解析者は、入力装置１００から次のデータを入力する。
【０１７０】
振動体の個数   ｎ
時間軸上のステップ数   ｆ
減衰行列    Ｃ（次数ｎの正方行列）
剛性行列    Ｋ（次数ｎの正方行列）
質量行列    Ｍ（次数ｎの正方行列）
外力        Ｆ（個数ｎ×ｆ）
初期条件    Ｉ（個数ｎ）
境界条件    Ｂ（個数ｎ）
時間軸上のステップ数を、物理的要請に基づいて分割した第１分割数として入力（ｆ÷第１分割数＝整数）。
【０１７１】
時間軸上のステップ数を、物理的要請に基づいて分割した第２分割数として入力（第１分割数÷第２分割数＝整数）。
【０１７２】
以上のデータが入力装置１００から入力されると、中央処理装置１３０は、これらのデータをサブメモリ１４０の所定の領域に記憶させる。つぎに、中央処理装置１３０は、以下のような手順で入力したデータの解析を行う。
【０１７３】
▲１▼多元連立一次方程式から行列表示式を生成し、生成された行列表示式を第１分割数で分割する。分割後の行列表示式をサブメモリ１４０の所定の領域に記憶させる。（記憶される行列表示式は分割前の行列表示式ではないので必要とする記憶領域の極端な節約となる）。
【０１７４】
▲２▼外力のベクトルもグループ分けし、サブメモリ１４０の所定の領域に記憶させる。
【０１７５】
▲３▼分割後の行列表示式の、求める未知数にかかる係数行列の逆行列を求め、サブメモリ１４０の所定の領域に記憶させる。
【０１７６】
▲４▼分割後の行列表示式の逆行列、初期条件、境界条件および外力等を用いて、境界（接続）部に位置する式を作成、計算し、境界（接続）部に位置する式の値を求める。境界（接続）部に位置する式の値はサブメモリ１４０の所定の領域に記憶させる。
【０１７７】
▲５▼分割後の行列表示式を求めるのに必要な境界（接続）部（値）をサブメモリ１４０から呼び出す。分割後の行列表示式を求めるのに必要な逆行列をサブメモリ１４０から呼び出す。この両者より分割後の行列表示式をすべて求めることができる。これを分割されたすべての行列表示式（多元連立一次方程式に相当）に適用しすべての求めるべき未知数を求める。
【０１７８】
分割される前の係数行列は必ずしも生成させたり記憶させたりする必要がないことは勿論である。要は分割された後の係数行列を生成、記憶させれば良い。
【０１７９】
以上の処理は第２分割を行う場合も同様に行う。
【０１８０】
以上のようにして解析した結果は、図１３（Ａ）、（Ｂ）に示すような建物の応答変位時刻歴のグラフとして出力装置１１０に表示される。なお、図１３（Ｂ）は、同図（Ａ）の時間軸を長くした図である。
【０１８１】
（第２実施例）
この実施例は、部屋に点熱源を置いた場合の部屋の温度分布の熱伝達解析を行う場合である。この実施例では、平面のラプラス方程式を用いている。
【０１８２】
解析者は、入力装置１００から次のデータを入力する。
【０１８３】
縦の刻み数      ｎ
横の刻み数      ｍ
境界条件        Ｂ（個数２ｎ＋２ｍ）
初期条件        Ｉ（個数ｎ×ｍ）
物理的要請に基づいた第１分割数を入力（ｎ≧ｍとすると、ｎ÷第１分割数＝整数）。
【０１８４】
物理的要請に基づいた第２分割数を入力（第１分割数÷第２分割数＝整数）。
【０１８５】
以上のデータが入力装置１００から入力されると、中央処理装置１３０は、これらのデータをサブメモリ１４０の所定の領域に記憶させる。つぎに、中央処理装置１３０は、以下のような手順で入力したデータの解析を行う。
【０１８６】
▲１▼多元連立一次方程式から行列表示式を生成し、生成された行列表示式を第１分割数で分割する。分割後の行列表示式をサブメモリ１４０の所定の領域に記憶させる。（記憶される行列表示式は分割前の行列表示式ではないので必要とする記憶領域の極端な節約となる）。
【０１８７】
▲２▼初期条件、境界条件もグループ分けし、サブメモリ１４０の所定の領域に記憶させる。
【０１８８】
▲３▼分割後の行列表示式の、求める未知数にかかる係数行列の逆行列を求め、サブメモリ１４０の所定の領域に記憶させる。
【０１８９】
▲４▼分割後の行列表示式の係数行列の逆行列、初期条件、境界条件を用いて、境界（接続）部に位置する式を作成、計算し、境界（接続）部に位置する式の値を求める。境界（接続）部に位置する式の値はサブメモリ１４０の所定の領域に記憶させる。
【０１９０】
▲５▼分割後の行列表示式を求めるのに必要な境界（接続）部（値）をサブメモリ１４０から呼び出す。分割後の行列表示式を求めるのに必要な逆行列をサブメモリ１４０から呼び出す。この両者より分割後の行列表示式をすべて求めることができる。これを分割されたすべての行列表示式（多元連立一次方程式に相当）に適用しすべての求めるべき未知数を求める。
【０１９１】
以上の処理は第２分割を行う場合も同様に行う。
【０１９２】
以上のようにして解析した結果は、図１４に示すような部屋の温度分布を示すグラフとして出力装置１１０に表示される。
【０１９３】
【発明の効果】
以上説明したように、請求項1から請求項９に記載の発明によれば、入力した条件および（各階層の）分割数に基づいて、係数行列の大きな行列表示式が係数行列の小さな行列表示式に自動的に（複数回）分割されるため、高度な専門知識や経験がなくても、最終的に得られる行列表示式を非常に小さな行列表示式にすることができる。
【０１９４】
また、分割された行列表示式の係数行列は、小さな行列であるから、非常に短時間で逆行列を求めることができるので、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析する場合でも、非常に高精度の解析結果を従来とは比較にならないほどの速さで得ることができるようになる。
【０１９５】
さらに、理論上は、扱うことができる係数行列の大きさが著しく緩和されることから、たとえば、従来のように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりする必要がなくなり、高度な専門知識や経験がなくても非常に未知数の多い連立一次方程式を解くことができるようになる。
【図面の簡単な説明】
【図１】本発明にかかる第１の実施の形態における連立一次方程式の計算装置の概略構成図である。
【図２】図１に示した計算装置の第１の実施の形態における処理手順を示すフローチャートである。
【図３】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図４】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図５】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図６】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図７】本発明の計算装置で行われる第１の実施の形態の処理手順を視覚化し、処理内容をわかりやすくするための図である。
【図８】本発明の第１の実施の形態の処理を、外力を受ける１質点の物体の1次元の微分方程式に適用した場合の、分割数と計算時間との関係を示す図である。
【図９】本発明にかかる第２の実施の形態における連立一次方程式の計算装置の概略構成図である。
【図１０】図１に示した計算装置の第２の実施の形態における処理手順を示すフローチャートである。
【図１１】本発明の計算装置で行われる第２の実施の形態の処理手順を視覚化し、処理内容をわかりやすくするための図である。
【図１２】本発明の第２の実施の形態の処理を、外力を受ける１０質点の物体の1次元の微分方程式に適用した場合の、分割数と計算時間との関係を示す図である。
【図１３】振動解析の解析結果の出力形態の一例を示す図である。
【図１４】熱伝達解析の解析結果の出力形態の一例を示す図である。
【図１５】連立一次方程式を解くための従来の手法を示すフローチャートである。
【図１６】図１５に示した従来の手法の説明に供する図である。
【図１７】図１５に示した従来の手法の説明に供する図である。
【図１８】図１５に示した従来の手法の説明に供する図である。
【図１９】図１５に示した従来の手法の説明に供する図である。
【図２０】図１５に示した従来の手法の説明に供する図である。
【図２１】図１５に示した従来の手法の説明に供する図である。
【図２２】図１５に示した従来の手法の説明に供する図である。
【図２３】図１５に示した従来の手法の説明に供する図である。
【図２４】図１５に示した従来の手法の説明に供する図である。
【図２５】図１５に示した従来の手法の説明に供する図である。
【符号の説明】
１００、９００…入力装置、
１１０、９１０…出力装置、
１２０、９２０…メインメモリ、
１３０、９３０…中央処理装置、
１４０、９４０…サブメモリ。
【図１】
0003864059.tif 000033
【図２】
0003864059.tif 000034
【図３】
0003864059.tif 000035
【図４】
0003864059.tif 000036
【図５】
0003864059.tif 000037
【図６】
0003864059.tif 000038
【図７】
0003864059.tif 000039
【図８】
0003864059.tif 000040
【図９】
0003864059.tif 000041
【図１０】
0003864059.tif 000042
【図１１】
0003864059.tif 000043
【図１２】
0003864059.tif 000044
【図１３】
0003864059.tif 000045
【図１４】
0003864059.tif 000046
【図１５】
0003864059.tif 000047
【図１６】
0003864059.tif 000048
【図１７】
0003864059.tif 000049
【図１８】
0003864059.tif 000050
【図１９】
0003864059.tif 000051
【図２０】
0003864059.tif 000052
【図２１】
0003864059.tif 000053
【図２２】
0003864059.tif 000054
【図２３】
0003864059.tif 000055
【図２４】
0003864059.tif 000056
【図２５】
0003864059.tif 000057