JP3864059B2 - 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置 - Google Patents

微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置 Download PDF

Info

Publication number
JP3864059B2
JP3864059B2 JP2001114267A JP2001114267A JP3864059B2 JP 3864059 B2 JP3864059 B2 JP 3864059B2 JP 2001114267 A JP2001114267 A JP 2001114267A JP 2001114267 A JP2001114267 A JP 2001114267A JP 3864059 B2 JP3864059 B2 JP 3864059B2
Authority
JP
Japan
Prior art keywords
matrix
expression
vector
matrix display
unknown
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001114267A
Other languages
English (en)
Other versions
JP2002312341A (ja
Inventor
憲三 郡安
経幸 平本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Solutions Corp filed Critical Toshiba Solutions Corp
Priority to JP2001114267A priority Critical patent/JP3864059B2/ja
Priority to US10/103,634 priority patent/US20030014227A1/en
Priority to KR1020020018121A priority patent/KR20020087002A/ko
Priority to CN02106098A priority patent/CN1409244A/zh
Publication of JP2002312341A publication Critical patent/JP2002312341A/ja
Application granted granted Critical
Publication of JP3864059B2 publication Critical patent/JP3864059B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Description

【0001】
【発明の属する技術分野】
本発明は、たとえば、有限差分法または有限要素法を使って種々の物理現象を模擬解析するにあたり、微分方程式の離散化によって得られた多元連立一次方程式を高速に計算するための、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置に関する。
【0002】
【従来の技術】
たとえば、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析するためには、一般的に多元連立一次方程式を解かなければならない。多元連立一次方程式を解くためには逆行列の計算が必須となる。ところが、逆行列を計算しようとした場合、一般的に、解析ソフトで扱うことができる行列の大きさには制限があること、また、扱うことができる行列の大きさに制限がないとしても大きな行列の計算には膨大な時間(日、週、月単位)がかかるなどの問題がある。
【0003】
このため、解析者(オペレータ)は、解析ソフトで模擬解析をするに当たり、なるべく未知数の少ない連立一次方程式になるように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりしている。一般的には、このようにして、逆行列を計算するための分散計算や並列計算の計算時間が短縮されるようにし、模擬解析の高速化を図っているのが現状である。
【0004】
ところが、近年、従来のこのような不具合を解消するための計算手法が次々と発表されている。最近話題となっている計算手法には、たとえば、米国特許第5442569号公報「Method and apparatus for system characterization and analysis using finite element methods」に開示されている、分散計算や並列計算を行う方法または装置がある。
【0005】
この公報には、概略、図15のフローチャートに示すような手順で多元連立一次方程式を解くための計算方法が開示されている。この計算方法においては、まず、多元連立一次方程式をグループ化する(S1501)。たとえば、多元連立一次方程式として図16に示したような多元連立一次方程式が与えられたときには、この多元連立一次方程式を図17に示すような5つのグループに分ける。
【0006】
つぎに、グループ化した多元連立一次方程式の未知数を、グループ内だけで閉じている未知数(I)、グループ内の未知数であるが他グループにもある未知数(E)、他グループにある未知数であるがグループ内にもある未知数(U)の3つの未知数に分類する(S1502)。たとえば、図17のようにグループ化された多元連立一次方程式では、未知数(I)、未知数(E)、未知数(U)の3つの未知数を図18のように分類する。
【0007】
つぎに、複数のグループを融合化して、未知数(I)、未知数(E)、未知数(U)の3つの未知数に分類する(S1503)。たとえば、図19に示すように、グループ1からグループ3の未知数(I)、未知数(E)、未知数(U)を融合させて1つの融合済みの未知数(I)、未知数(E)、未知数(U)を生成し、残りのグループ4、グループ5の未知数(I)、未知数(E)、未知数(U)を融合させてもう1つの融合済みの未知数(I)、未知数(E)、未知数(U)を生成する。
【0008】
さらに、複数のグループの融合化を行い、最終的に1つのグループに融合化する。すなわち、融合済みの未知数(I)、未知数(E)、未知数(U)をすべて融合させ、最終的に1つのグループに融合化する。そして、さらにすべての未知数(I)、未知数(E)、未知数(U)の3つの未知数を融合させる(S1504)。たとえば、図19に示してある1つの融合済み(グループ1からグループ3)の未知数(I)、未知数(E)、未知数(U)ともう1つの融合済み(グループ4、グループ5)の未知数(I)、未知数(E)、未知数(U)を融合させて、最終的に1つの融合済みの3つの未知数(I)、未知数(E)、未知数(U)を生成する。
【0009】
そして、生成された1つの融合済みの未知数(I)、未知数(E)、未知数(U)に基づいて、最終的に未知数(E)と未知数(U)のみからなる未知数の少ない連立一次方程式を作成し、この連立一次方程式を解いて未知数を求める(S1505)。
【0010】
さらに、S1505のステップで求めた未知数を、未知数(E)と未知数(U)のみからなる連立一次方程式に代入することによって未知数(E)と未知数(U)の値を求める。そして、求められた未知数(E)と未知数(U)の値から逆に残された連立一次方程式の未知数(I)の値を求め、与えられた、多元連立一次方程式のすべての未知数が求まる(S1506)。
【0011】
つぎに、上記の計算方法を、図を用いてさらに具体的に説明する。例として、図16に示した多元連立一次方程式を解く場合を考える。
【0012】
最初に、この多元連立一次方程式を図17のように5つのグループに分ける。例では、20式ある多元連立一次方程式を5つのグループに分けている。そして、図18のように5つのグループの未知数を、グループごとに、未知数(I)、未知数(E)、未知数(U)に分類する。つぎに、図19のようにグループ1,2,3を融合し、未知数を未知数(I)、未知数(E)、未知数(U)に分ける。同様に、グループ4,5を融合し、未知数を未知数(I)、未知数(E)、未知数(U)に分ける。
【0013】
つぎに、グループ1,2,3,4,5の多元連立一次方程式を行列表示式で表示する。行列表示式で表示すると図20に示すようになる。この行列表示式の各グループの左辺の係数行列の逆行列をとると図21に示すようになる。ここで、5グループあるのに4つの逆行列しか求めていないのは、図20の行列表示式を良く見ればわかるが、グループ1とグループ4の行列表示式の左辺の係数行列が同一となっているからである。図18および図22を見ればわかるように、グループ1の未知数(E)は、未知数(U)の関数となる。同様に、グループ2,3,4,5の未知数(E)は、未知数(U)の関数となる。
【0014】
ここで、グループ1,2,3を融合し、各グループの未知数(E)を取り出すと、図23のAに示す連立一次方程式が得られる。この連立一次方程式を行列表示式で表示するとBに示すような行列表示式となり、この行列表示式を演算するとCに示すような行列表示式が得られる。この結果、グループ1,2,3を融合したグループの未知数(E)は、未知数(U)の関数となる。
【0015】
同様に、グループ4,5を融合し、各グループの未知数(E)を取り出すと、図24のDに示す連立一次方程式が得られる。この連立一次方程式を行列表示式で表示するとEに示すような行列表示式となり、この行列表示式を計算するとFに示すような行列表示式が得られる。この結果、グループ4,5を融合したグループの未知数(E)は、未知数(U)の関数となる。
【0016】
C、Fにおいて、未知数(E)の部分の式を取り出すと、図25のGに示す連立一次方程式が得られる。この連立一次方程式は、未知数が6個であるが、方程式の数も6個あるので解くことができる。この式を解くことにより、Hに示すように未知数(E)を簡単に求めることができる。
【0017】
Hで示されている各未知数の値を図23、図24のCとFの行列表示式に戻し、この行列表示式から得られた結果をさらに図22の行列表示式に戻すと、図25のIのように図16に示した多元連立一次方程式のすべての未知数が求められる。
【0018】
例示した以上のような処理をしながら多元連立一次方程式を求めると、未知数の数が非常に多いときでも、理論的には短時間で未知数のすべての値を求めることが可能になる。
【0019】
【発明が解決しようとする課題】
しかしながら、米国特許第5442569号公報に開示されている方法または装置では、多元連立一次方程式を解くために、その多元連立一次方程式を複数のグループにグループ化した後に、未知数を未知数(I)、未知数(E)、未知数(U)の3つに分割し、それらの未知数をさらにグループ間で融合させ、融合させたものからさらに未知数を未知数(I)、未知数(E)、未知数(U)の3つに分ける作業が必要である。
【0020】
この未知数を分割させたり、融合させたりする作業は、上記の手法を詳しく検討してみるとわかるが、事務的な作業で済まされるものではない。つまり、未知数をどのように分割するか、どのように融合するかは、最終的に多元連立一次方程式が解けるように考えながら行わなければならないので、その分割や融合には非常に高度な専門知識と経験が要求され、だれでもが簡単にできるような作業ではない。
【0021】
また、振動解析、構造解析、伝熱解析、流体解析などの物理解析の解析シミュレーションにおいて、詳細な3次元非定常解析を行うためには、初期条件・境界条件などの各種の条件を設定し、それらの条件の下で次の時刻の応答を計算し、さらに求めた応答を条件として次の時刻の応答を計算するということを繰り返し行わなければならない。このため、時間座標系Tの任意の時刻の条件を設定しただけでは、詳細な3次元非定常解析を行うことができない。したがって、詳細な3次元非定常解析を行うためには、時間座標系をも考慮した未知数の非常に多い(たとえば10万〜100万)連立一次方程式を解くことが必要になる。
【0022】
このように、未知数の非常に多い連立一次方程式の場合には、連立一次方程式の分割や融合が難しくなり、米国特許第5442569号公報に開示されている方法または装置を用いたとしても、この連立一次方程式を短時間で解くことは困難になる。
【0023】
本発明は、以上のような従来の問題点を解消するために成されたものであり、高度な専門知識や経験がなくても、一定の手順を踏むことによって、多元連立一次方程式を高速に解くことができる、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置を提供することを目的とする。
【0024】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、請求項1に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第1行列表示式を生成する第1行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する補助ベクトル生成手段、前記第1行列表示式における係数行列の逆行列をグループごとに演算する第1逆行列演算手段、前記第1行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段、各グループの前記第2行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段、前記第3行列表示式における係数行列の逆行列を演算する第2逆行列演算手段、演算された逆行列を用いて前記第3行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段、演算された各未知数の値を、各グループの前記第2行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させる。
【0025】
請求項2に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第1階層目の第1行列表示式を生成する第1行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第1補助ベクトル生成手段、前記第1行列表示式における係数行列の逆行列をグループごとに演算する第1逆行列演算手段、前記第1行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段、各グループの前記第2行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段、前記第3行列表示式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第2階層目の第4行列表示式を生成する第4行列表示式生成手段、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第4行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第2補助ベクトル生成手段、前記第4行列表示式における係数行列の逆行列をグループごとに演算する第2逆行列演算手段、
前記第4行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式をグループごとに生成する第5行列表示式生成手段、各グループの前記第5行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第6行列表示式を生成する第6行列表示式生成手段、前記第6行列表示式における係数行列の逆行列を演算する第3逆行列演算手段、演算された逆行列を用いて前記第6行列表示式における未知数ベクトルの各未知数の値を演算する第1未知数値演算手段、演算された前記第6行列表示式における各未知数の値を、各グループの前記第5行列表示式の補助ベクトルに代入して前記第5行列表示式のすべての未知数の値を演算する第2未知数値演算手段、演算された前記第5行列表示式における各未知数の値を、各グループの前記第2行列表示式の未知数ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させる。
【0026】
請求項3に記載の発明にかかる連立一次方程式の計算プログラムは、連立一次方程式を解くためにコンピュータを、前記連立一次方程式から行列表示式を生成する行列表示式生成手段、前記行列表示式の階層化次数Nと各階層の分割数を第N階層分割数として入力する入力手段、生成された行列表示式を入力された第1階層分割数に応じて複数のグループの行列表示式に分割する分割手段、分割された各グループの行列表示式からグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、さらに第N階層(N=2、…、n)分割数に応じて複数のグループの行列表示式に分割する圧縮後行列表示式分割手段、前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをN−1段階繰り返させる圧縮・分割制御手段、前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段、圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を、圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段、として機能させる。
【0027】
請求項4に記載の発明は、請求項1に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0028】
請求項5に記載の発明は、請求項2に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0029】
請求項6に記載の発明は、請求項3に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0030】
請求項7に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第1行列表示式を生成する第1行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する補助ベクトル生成手段と、前記第1行列表示式における係数行列の逆行列をグループごとに演算する第1逆行列演算手段と、前記第1行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段と、各グループの前記第2行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段と、前記第3行列表示式における係数行列の逆行列を演算する第2逆行列演算手段と、演算された逆行列から前記第3行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段と、演算された各未知数の値を、各グループの前記第2行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する。
【0031】
請求項8に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第1階層目の第1行列表示式を生成する第1行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第1補助ベクトル生成手段と、前記第1行列表示式における係数行列の逆行列をグループごとに演算する第1逆行列演算手段と、前記第1行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段と、各グループの前記第2行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段と、前記第3行列表示式に基づいて、複数のグループに分割された、係数行列×未知数ベクトル=定数ベクトルとして表される第2階層目の第4行列表示式を生成する第4行列表示式生成手段と、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの前記第4行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する第2補助ベクトル生成手段と、前記第4行列表示式における係数行列の逆行列をグループごとに演算する第2逆行列演算手段と、前記第4行列表示式における未知数ベクトル、生成された前記補助ベクトル、演算された前記逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式をグループごとに生成する第5行列表示式生成手段と、各グループの前記第5行列表示式よりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第6行列表示式を生成する第6行列表示式生成手段と、前記第6行列表示式における係数行列の逆行列を演算する第3逆行列演算手段と、演算された逆行列から前記第6行列表示式における未知数ベクトルの各未知数の値を演算する第1未知数値演算手段と、演算された前記第6行列表示式における各未知数の値を、各グループの前記第5行列表示式の補助ベクトルに代入して前記第5行列表示式のすべての未知数の値を演算する第2未知数値演算手段と、演算された前記第5行列表示式における各未知数の値を、各グループの前記第2行列表示式の補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する。
【0032】
請求項9に記載の発明にかかる連立一次方程式の計算装置は、連立一次方程式を解くための装置であって、前記連立一次方程式から行列表示式を生成する行列表示式生成手段と、前記行列表示式の階層化次数Nと各階層の分割数を第N階層分割数として入力する入力手段と、生成された行列表示式を入力された第1階層分割数に応じて複数のグループの行列表示式に分割する分割手段と、分割された各グループの行列表示式からグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、さらに第N階層(N=2、…、n)分割数に応じて複数のグループの行列表示式に分割する圧縮後行列表示式分割手段と、前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをN−1段階繰り返させる圧縮・分割制御手段と、前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数ベクトルにかかる係数行列の逆行列を演算する逆行列演算手段と、圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を、圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段と、を有する。
【0033】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる、連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置の好適な実施の形態を詳細に説明する。
【0034】
(第1の実施の形態)
本実施の形態は、請求項1の計算プログラム、請求項4の記録媒体、請求項7の計算装置に対応するものである。
【0035】
図1は、本発明にかかる、連立一次方程式の計算装置の概略構成図である。また、図2は、この計算装置の処理手順を示すフローチャートである。このフローチャートに示される処理手順は、本発明にかかる、連立一次方程式の計算プログラムに相当する。
【0036】
本発明の計算プログラムは、たとえば3次元非定常解析において、初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値などの条件および必要な分割数を設定するだけで、連立一次方程式の解を一定の手順でコンピュータに非常に高速に求めさせることができるというものである。
【0037】
まず、図1に基づいて、本発明にかかる、連立一次方程式の計算装置の概略の構成を説明する。本発明にかかる連立一次方程式の計算装置は、入力装置100、出力装置110、メインメモリ120、中央処理装置130、サブメモリ140から構成される。
【0038】
入力装置100は、解析者(オペレータ)が解析に必要となる、たとえば初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値(以上をまとめて条件という)および分割数を入力するために用いる装置であって、たとえばキーボード、タッチパネルなどである。
【0039】
出力装置110は、上記の条件および分割数の入力を促す画面を表示したり、解析結果を表示したりするために用いられる装置であって、たとえば液晶ディスプレイ、プラズマディスプレイなどの各種のディスプレイ、または、インクジェットプリンタ、レーザープリンタなどの各種のプリンタである。
【0040】
メインメモリ120は、本発明にかかる、連立一次方程式の計算プログラムを記憶するRAMやROMなどの記憶装置である。
【0041】
中央処理装置130は、メインメモリ120に記憶されている連立一次方程式の計算プログラムにしたがって、入力装置100から入力された条件および分割数をもとにして、連立一次方程式の解を求め、求めた解(解析結果)を出力装置110に出力する装置である。一般的には、CPUと称されているものである。中央処理装置130は、メインメモリ120に記憶されている連立一次方程式の計算プログラムを実行することによって、本発明にかかる連立一次方程式の計算装置の各機能(請求項7に記載されている各手段)としての役割を果たす。
【0042】
サブメモリ140は、中央処理装置130が解析の計算途中で求めた逆行列などの値を一時的に記憶させておくための装置であり、RAMやハードディスクなどの記憶装置である。サブメモリ140は、微分方程式記憶領域141、多元連立一次方程式記憶領域142、解析条件記憶領域143、第1行列表示式記憶領域144、逆行列記憶領域145、補助ベクトル記憶領域146、第2行列表示式記憶領域147、第3行列表示式記憶領域149、第2逆行列記憶領域150という複数の領域に区分されている。
【0043】
以上のように構成された本発明にかかる計算装置は、対象システムを概略次のような手順で解析する。本実施の形態では、対象システムが一質点系であるときの振動解析を例に説明する。この振動解析の手順は、図2のフローチャートに基づき、図3から図7を必要に応じて参照しながら詳細に説明する。なお図3から図6は、本発明の計算装置で行われる処理手順を具体的に示すための図であり、図7は、この処理手順を視覚化し、処理内容をわかりやすくするための図である。
【0044】
まず、対象システムの物理現象を模擬する微分方程式を作成する。この微分方程式の作成は、対象システムの解析者が行う。そして、解析者は、作成した微分方程式を入力装置100から入力する。たとえば、外力を受ける物体の1次元の微分方程式を考えた場合、図3の処理ステップ300(または図7の処理ステップ700)のような微分方程式が入力装置100から入力されることになる。入力された微分方程式は、サブメモリ140の微分方程式記憶領域141に記憶される(S201)。
【0045】
中央処理装置130は、入力された微分方程式を、サブメモリ140の微分方程式記憶領域141から取り出し、この微分方程式を、一般的に用いられている有限要素法や有限差分法等を用いて離散化する。たとえば、入力装置100から図3の処理ステップ300(または図7の処理ステップ700)のような微分方程式が入力されたときには、時刻を図3の処理ステップ301(または図7の処理ステップ701)に示されているようにおき、中心差分を用いて図3の処理ステップ300(または図7の処理ステップ700)の微分方程式を離散化する(S202)。
【0046】
つぎに、中央処理装置130は、離散化された微分方程式に基づいて、対象システムの解析に必要となる多元連立一次方程式を生成する。たとえば、入力装置100から図3の処理ステップ300(または図7の処理ステップ700)のような微分方程式が入力されたときには、まず、その微分方程式の離散化によって、図3の処理ステップ302(または図7の処理ステップ702)に示すような式を得て、つぎに、この処理ステップ302(または処理ステップ702)の式を書き直して処理ステップ303(または処理ステップ703)に示す多元連立一次方程式を生成する。なお、微分方程式の離散化と多元連立一次方程式の生成は、従来から一般的に用いられている計算プログラムによって行われる。ここで生成される多元連立一次方程式は、未知数の多い連立一次方程式となる。生成された多元連立一次方程式は、サブメモリ140の多元連立一次方程式記憶領域142に記憶される(S203)。
【0047】
つぎに、解析者は、解析に必要となる初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数などの条件および分割数を入力装置100から入力する。入力されたこれらの条件および分割数は、サブメモリ140の解析条件記憶領域143に記憶される(S204)。
【0048】
中央処理装置130は、生成された多元連立一次方程式を、サブメモリ140の多元連立一次方程式記憶領域142から取り出し、取り出した多元連立一次方程式から行列表示式を生成する。たとえば、図3の処理ステップ303(または図7の処理ステップ703)に示す多元連立一次方程式の場合、図3の処理ステップ304に示されるような形態の行列表示式を生成する。生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルで表される。この行列表示式は、図7の処理ステップ704に示したようなイメージのものである。ここで、係数行列とは、多元連立一次方程式の未知数にかかっている係数のみからなる行列(図3の処理ステップ304に示される行列表示式で言えば、α、β、γで表されている行列)である。未知数ベクトルとは、多元連立一次方程式の未知数のみからなるベクトル(図3の処理ステップ304に示される行列表示式で言えば、x(0)、…、x(m × n)で表されているベクトル)である。定数ベクトルとは、多元連立一次方程式の定数のみからなるベクトル(図3の処理ステップ304に示される行列表示式で言えば、等号の右側にあるベクトル)である。
【0049】
中央処理装置130は、解析者が入力装置100から解析条件として入力した境界条件などの条件や分割数をサブメモリ140の解析条件記憶領域143から取り出し、生成した行列表示式にこの条件を当てはめて分割数で分割する。たとえば、境界条件として初期時刻におけるx(0)とある時刻でのx(m × n+1)が既知のとき、図3の処理ステップ304の行列表示式にこの境界条件を当てはめて、図4の処理ステップ305のような(m×n)行、(m×n)列の係数行列を持つ行列表示式を生成する。この行列表示式は、図7の処理ステップ705に示したようなイメージのものである。そして、処理ステップ305の行列表示式をm分割して、n行n列に等分割された図5の処理ステップ306のような行列表示式を生成する。分割された後の行列表示式は、図7の処理ステップ706に示したようなイメージのものである。したがって、mグループに分割された行列表示式が生成される。なお、上記の例の場合では、処理の効率を考えて行列表示式を等分割したが、等分割でなくとも良いのはもちろんである。この複数のグループに分けられた行列表示式(第1行列表示式)は、サブメモリ140の第1行列表示式記憶領域144に記憶される(S205)。
また、対象システムの解析者は、物理現象を模擬する微分方程式を作成し、入力装置100を介して入力したが、微分方程式を作成するに必要なデータ、例えば、振動解析、熱伝導解析、静的応力解析等の解析の種類、物性値、形状等を解析者が入力装置を介して入力し、解析ソフトウェアにて微分方程式を作成してもよいことは勿論である。
そして、中央処理装置130は、サブメモリ140の第1行列表示式記憶領域144から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。図5の処理ステップ306で示されている分割後の行列表示式では、行列Mの逆行列をグループごとに算出することになる。求めた逆行列は、サブメモリ140の第1逆行列記憶領域145に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについての逆行列が求まるまで継続される。したがって、逆行列は、分割数と同じ数だけグループごとに求められることになる。なお、この逆行列は、行列表示式の係数行列の大きさが分割によって小さくなっているので、短時間で容易に求めることができる。行列を等分割した場合は1つの係数行列の逆行列を求めれば良いので、さらに短時間で求めることができる。
【0050】
再び中央処理装置130は、サブメモリ140の第1行列表示式記憶領域144から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。この補助ベクトルは、図5の処理ステップ306の行列表示式の場合、右辺に位置する二つのベクトルの和である。生成された補助ベクトルは、サブメモリ140の補助ベクトル記憶領域146に記憶される(S206)。
【0051】
中央処理装置130は、サブメモリ140の、第1行列表示式記憶領域144から分割後の行列表示式に含まれる未知数ベクトルを、第1逆行列記憶領域145から逆行列を、さらに補助ベクトル記憶領域146から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する。生成した第2行列表示式は、サブメモリ140の第2行列表示式記憶領域147に記憶される。
【0052】
中央処理装置130は、サブメモリ140の第2行列表示式記憶領域147からすべてのグループの第2行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して連立方程式を作成する。この圧縮によって、それぞれのグループの第2行列表示式の一番上の式と一番下の式のみが集められることになる。たとえば、図5の処理ステップ306の行列表示式の場合、グループ間の境界部に位置する式だけを取り出すと、図6の処理ステップ307に示すような(2m−2)個の式からなる連立方程式が得られる。この圧縮の過程をイメージで表示すれば、図7の処理ステップ706から処理ステップ707の過程のようになる。この連立方程式から第3行列表示式を生成する。生成される行列表示式は、図6の処理ステップ307に示すような行列表示式であり、係数行列×未知数ベクトル=定数ベクトルで表される。生成された第3行列表示式は、サブメモリ140の第3行列表示式記憶領域149に記憶される(S207)。
【0053】
つぎに、中央処理装置130は、サブメモリ140の第3行列表示式記憶領域149から第3行列表示式を取り出し、取り出した行列表示式の係数行列の逆行列を演算する。求めた逆行列は、サブメモリ140の第2逆行列記憶領域150に記憶される。中央処理装置130は、サブメモリ140の、第3行列表示式記憶領域149から第3行列表示式を、第2逆行列記憶領域150から求めた逆行列を取り出し、第3行列表示式における未知数ベクトルの各未知数の値を演算する。ここでの未知数の演算によって、第3行列表示式の未知数のすべて、すなわち、第2行列表示式の境界部に位置する未知数のすべてが求まる。図6の処理ステップ307の行列表示式の場合、(2m−2)元連立一次方程式であるが、未知数も(2m−2)個であるので、処理ステップ308(または図7の処理ステップ708)のように、未知数x(n)、x(n+1)、x(2n)、x(2n+1)、…、x(n × m-n+1)が求まることになる(S208)。なお、x(1)、x(m × n)を加えて未知数の数を2m個とし、方程式数を2m個とした方が第2階層以降の分割が容易になる。
【0054】
以上のようにして、すべてのグループの第2行列表示式の境界部の未知数が求まると、さらに、中央処理装置130は、サブメモリ140の、第2行列表示式記憶領域147から第2行列表示式を取り出し、演算された各未知数の値を、各グループの第2行列表示式の補助ベクトルに代入し、連立一次方程式のすべての未知数の値が求まる。図6の処理ステップ309の場合、処理ステップ308(または図7の処理ステップ708)で求めた解を図5の処理ステップ306Aに代入し(イメージとしては図7の処理ステップ709)、分割前の連立一次方程式のすべての未知数x(i)を求める。これによって、図6の処理ステップ310(または図7の処理ステップ710)に示すように、多元連立一次方程式のすべての未知数が求まる(S209)。
【0055】
つぎに、本発明の理解をさらに深めるために、例示した連立一次方程式に基づいて未知数の値を求める手順を説明する。
【0056】
まず、微分方程式を離散化した結果、下記のような9個の未知数を持つ連立一次方程式が与えられたものとする。
なお、境界条件は、x0=1、x10=0である。また、分割数は2である。
【0057】
【数1】
Figure 0003864059
【0058】
この連立一次方程式から行列表示式を生成すると、次のように、係数行列×未知数ベクトル=定数ベクトルとして表される。なお、係数行列は下記の行列表示式の左辺の行列、未知数ベクトルは左辺のベクトル、定数ベクトルは右辺のベクトルである。
【0059】
【数2】
Figure 0003864059
【0060】
この行列表示式を2分割するため、単純に上から4番目の行で区切り、2つのグループに分割すると、係数行列×未知数ベクトル=定数ベクトルとして表される2つの第1行列表示式ができる。これらの第1行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル(下記の行列表示式の一番右側のベクトル)を各グループの第1行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「=」の右辺の2つのベクトルの和である。
【0061】
【数3】
Figure 0003864059
【0062】
そして、第1行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式を生成する。生成される第2行列表示式は下記のような行列表示式になる。
【0063】
【数4】
Figure 0003864059
【0064】
つぎに、この第2行列表示式よりグループ間の境界部に位置することとなった式をだけを取り出す。すなわち、上記(3)式の一番下に位置する式と、(4)式の一番上に位置する式を取り出し、それらの式から下記のような連立方程式を生成する。
【0065】
【数5】
Figure 0003864059
【0066】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルとして表される、下記のような第3行列表示式となる。
【0067】
【数6】
Figure 0003864059
【0068】
そして、第3行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数x4、x5の値が次のような行列表示式から求まる。
【0069】
【数7】
Figure 0003864059
【0070】
以上のようにして求められた未知数x5の値を第2行列表示式の(3)式に代入し、また未知数x4の値を第2行列表示式の(4)式に代入すると、下記のような行列表示式が得られ、この行列表示式から与えられた連立一次方程式の9つの未知数のすべてが求められる。
【0071】
【数8】
Figure 0003864059
【0072】
以上が9つの未知数を持つ連立一次方程式を2分割した場合の計算手順である。
【0073】
つぎに、同じ連立一次方程式を3分割して解く場合、すなわち、入力された分割数が3の場合を説明する。
【0074】
まず、上記の連立一次方程式を3等分し、得られた3つの第1行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトルを各グループの第1行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「=」の右辺の2つのベクトルの和である。
【0075】
【数9】
Figure 0003864059
【0076】
そして、第1行列表示式における各グループの係数行列の逆行列を、下記の式のようにグループごとに演算する。今の場合、同じ係数行列なので、一つのグループの係数行列の逆行列を求めれば良い。
【0077】
【数10】
Figure 0003864059
【0078】
演算された逆行列から、未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式を生成する。生成される第2行列表示式は下記のような行列表示式になる。
【0079】
【数11】
Figure 0003864059
【0080】
つぎに、この第2行列表示式よりグループ間の境界部に位置することとなった式だけを取り出し、下記のような連立方程式を生成する。
【0081】
【数12】
Figure 0003864059
【0082】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルとして表される、下記のような第3行列表示式となる。
【0083】
【数13】
Figure 0003864059
【0084】
そして、第3行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数x3、x4、x6、x7の値を求める次のような行列表示式が得られる。
【0085】
【数14】
Figure 0003864059
【0086】
この行列表示式から未知数x3、x4、x6、x7の値が下記のように求まる。
【0087】
【数15】
Figure 0003864059
【0088】
未知数x3、x4、x6、x7の値を第2行列表示式(数11の行列表示式)に代入して、下記のような行列表示式を得て、この行列表示式から与えられた連立一次方程式の9つの未知数のすべてを求める。
【0089】
【数16】
Figure 0003864059
【0090】
本実施の形態のように、連立一次方程式から得られた行列表示式を分割し、分割した行列表示式の境界部の式のみを取り出して圧縮した行列表示式を生成し、この行列表示式を解くことによって最終的にもとの行列表示式のすべての未知数を求めるようにすると、非常に単純な手順で、しかも事務的に、複雑な連立一次方程式を求めることが可能になる。
【0091】
本発明の連立一次方程式の計算プログラムまたは連立一次方程式の計算装置を用いて実際に解析計算を行わせたところ、図8に示すように、行列表示式の演算時間を著しく減少させることができた。
【0092】
図8は、1質点系の振動応答解析を行った場合に得られた、100,000行×100,000列の係数行列を持つ行列表示式を解く(すなわち100,000元連立一次方程式を解く)のにかかった時間の測定結果を示すものである。
【0093】
図8(A)に示すように、100,000行×100,000列の係数行列をもつ行列表示式を、本願発明のような分割・圧縮の手法を使用せずに従来の手法で解いた場合には、時間がかかりすぎて、結果的には解くまでにかかる時間を測定することができなかった。ところが本発明の計算プログラムを用いて、20分割(分割数として20を入力)すると、その行列表示式が2,500秒で、50分割すると100秒で、250分割するとわずか20秒でその行列表示式を解くことができた。
【0094】
また、分割数と計算時間との関係をグラフで表すと、図8(B)のような結果となった。すなわち、100,000行×100,000列の係数行列をもつ行列表示式を解く場合は、分割数が50までは急激に計算時間が減少し、それ以上の分割数では緩やかに計算時間が減少していく。したがって、この行列表示式の場合には、100分割程度に分割すれば実用的には十分であるといえる。
【0095】
このように、本実施の形態にかかる連立一次方程式の計算プログラムを用いると、未知数の数が非常に多い連立一次方程式であっても短時間で求めることが可能になるため、建築物における振動の伝達状況や部屋の温度の分布状況などの物理現象の模擬解析を精度良く解析することができるようになる。
【0096】
本発明にかかる連立一次方程式の計算プログラムは、MO、MD DATA、iDフォーマットなどの光磁気ディスク、CD−R、CD−RW、DVD−RAM、DVD−RWなどの光ディスク、フレキシブルディスク、zip、Super Diskなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、PCカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録しておくことができる。コンピュータは、これらの記録媒体に記録されている本発明の連立一次方程式の計算プログラムを読み込むことによって、連立一次方程式を短時間で解くことができる。
【0097】
上記の実施の形態で示した解析手順は、連立一次方程式の計算プログラムとして、上記の各種の記録媒体を介して、またはインターネットやイントラネットの回線を介してコンピュータに提供される。コンピュータは、この連立一次方程式の計算プログラムを実行することによって行列表示式の分割や圧縮を行い、連立一次方程式の解を非常に短時間で解くことができる。
【0098】
(第2の実施の形態)
本実施の形態は、請求項2、3の計算プログラム、請求項5、6の記録媒体、請求項8、9の計算装置に対応するものである。
【0099】
図9は、本発明にかかる、連立一次方程式の計算装置の概略構成図である。また、図10は、この計算装置の処理手順を示すフローチャートである。このフローチャートに示される処理手順は、本発明にかかる、連立一次方程式の計算プログラムに相当する。
【0100】
まず、図9に基づいて、本発明にかかる、連立一次方程式の計算装置の概略の構成を説明する。本発明にかかる連立一次方程式の計算装置は、入力装置900、出力装置910、メインメモリ920、中央処理装置930、サブメモリ940から構成される。
【0101】
入力装置900、出力装置910、メインメモリ920、中央処理装置930は、第1の実施の形態で説明した、入力装置100、出力装置110、メインメモリ120、中央処理装置130とまったく同一の機能を有しているので、それらの機能の説明は省略する。
【0102】
サブメモリ940は、中央処理装置930が解析の計算途中で求めた逆行列などの値を一時的に記憶させておくための装置であり、RAMやハードディスクなどの記憶装置である。サブメモリ940は、微分方程式記憶領域941、多元連立一次方程式記憶領域942、解析条件記憶領域943、第1行列表示式記憶領域944、第1逆行列記憶領域945、第1補助ベクトル記憶領域946、第2行列表示式記憶領域947、第3行列表示式記憶領域949、第4行列表示式記憶領域950、第5行列表示式記憶領域951、第6行列表示式記憶領域952、第2逆行列記憶領域953、第2補助ベクトル記憶領域954、第3逆行列記憶領域955という複数の領域に区分されている。
【0103】
以上のように構成された本発明にかかる計算装置は、対象システムを概略次のような手順で解析する。本実施の形態では、対象システムが一質点系であるときの振動解析を例に説明する。この振動解析の手順は、図10のフローチャートに基づき、図11を必要に応じて参照しながら詳細に説明する。なお図11は、この処理手順を視覚化し、処理内容をわかりやすくするための図である。
【0104】
まず、対象システムの物理現象を模擬する微分方程式を作成する。この微分方程式の作成は、対象システムの解析者が行う。そして、解析者は、作成した微分方程式を入力装置900から入力する。入力された微分方程式は、サブメモリ940の微分方程式記憶領域941に記憶される(S1001)。
【0105】
中央処理装置930は、入力された微分方程式を、サブメモリ940の微分方程式記憶領域941から取り出し、この微分方程式を、一般的に用いられている有限要素法や有限差分法等を用いて離散化する(S1002)。
【0106】
つぎに、中央処理装置930は、離散化された微分方程式に基づいて、対象システムの解析に必要となる多元連立一次方程式を生成する。なお、微分方程式の離散化と多元連立一次方程式の生成は、従来から一般的に用いられている計算プログラムによって行われる。ここで生成される多元連立一次方程式は、未知数の多い連立一次方程式となる。生成された多元連立一次方程式は、サブメモリ940の多元連立一次方程式記憶領域942に記憶される(S1003)。
【0107】
つぎに、解析者は、解析に必要となる初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数などの条件および各階層の分割数ならびに階層化次数Nを入力装置900から入力する。なお、階層化次数とは、行列表示式の分割・圧縮工程を繰り返す回数である。本実施の形態では、階層化次数を2としているので、行列表示式の分割・圧縮が2回行われることになる。入力されたこれらの条件および各階層の分割数ならびに階層化次数Nは、サブメモリ940の解析条件記憶領域943に記憶される(S1004)。
【0108】
中央処理装置930は、生成された多元連立一次方程式を、サブメモリ940の多元連立一次方程式記憶領域942から取り出し、取り出した多元連立一次方程式から行列表示式を生成する。生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルで表される。この行列表示式は、図11の処理ステップ1104に示したようなイメージのものである。ここで、係数行列とは、多元連立一次方程式の未知数にかかっている係数のみからなる行列である。未知数ベクトルとは、多元連立一次方程式の未知数のみからなるベクトルである。定数ベクトルとは、多元連立一次方程式の定数のみからなるベクトルである。
【0109】
中央処理装置930は、解析者が入力装置900から解析条件として入力した境界条件などの条件や各階層の分割数をサブメモリ940の解析条件記憶領域943から取り出し、生成した行列表示式にこの条件を当てはめて第1階層目の分割数で等分割する。生成された行列表示式は、第1階層目の第1行列表示式となる。たとえば、境界条件として初期時刻におけるx(0)とある時刻でのx(m × n+1)が既知のとき、生成した行列表示式にこの境界条件を当てはめて、(m×n)行、(m×n)列の係数行列を持つ行列表示式を生成する。この行列表示式は、図11の処理ステップ1105に示したようなイメージのものである。
【0110】
そして、この行列表示式をm分割して、n行n列に等分割された、図11の処理ステップ1106に示したようなイメージの行列表示式を生成する。したがって、この等分割によって、mグループに分割された行列表示式が生成されることになる。なお、上記の例の場合では、処理の効率を考えて行列表示式を等分割したが、等分割でなくとも良いのはもちろんである。この複数のグループに分けられた行列表示式(第1行列表示式)は、サブメモリ940の第1行列表示式記憶領域944に記憶される(S1005)。
【0111】
つぎに、中央処理装置930は、サブメモリ940の解析条件記憶領域943から階層化次数Nを取り出し、その値を設定し、階層化の初期値としてカウンタnの値を1とする。本実施の形態では、階層化次数を2としているので、中央処理装置930には2が設定される(S1006,S1007)。
【0112】
そして、中央処理装置930は、サブメモリ940の第1行列表示式記憶領域944から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。求めた逆行列は、サブメモリ940の第1逆行列記憶領域945に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについての係数行列の逆行列が求まるまで継続される。したがって、逆行列は、第1階層目の分割数と同じ数だけグループごとに求められることになる。なお、この逆行列は、行列表示式の係数行列の大きさが分割によって小さくなっているので、短時間で容易に求めることができる。行列を等分割した場合は1つの行列の逆行列を求めれば良いので、さらに短時間で求めることができる。
【0113】
再び中央処理装置930は、サブメモリ940の第1行列表示式記憶領域944から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第1行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。生成された補助ベクトルは、サブメモリ940の第1補助ベクトル記憶領域946に記憶される(S1008)。
【0114】
中央処理装置930は、サブメモリ940の、第1行列表示式記憶領域944から分割後の行列表示式に含まれる未知数ベクトルを、第1逆行列記憶領域945から逆行列を、さらに第1補助ベクトル記憶領域946から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する。生成した第2行列表示式は、サブメモリ940の第2行列表示式記憶領域947に記憶される。
【0115】
中央処理装置930は、サブメモリ940の第2行列表示式記憶領域947からすべてのグループの第2行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して第3行列表示式を生成する。この圧縮の過程をイメージで表示すれば、図11の処理ステップ1106から処理ステップ1107の過程のようになる。生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルで表される。生成された第3行列表示式は、サブメモリ940の第3行列表示式記憶領域949に記憶される(S1009)。
【0116】
中央処理装置930は、サブメモリ940の解析条件記憶領域943から階層化次数Nの値を取り出し、取り出した階層化次数Nの値と、階層化の段階をカウントするカウンタnの値とからn−Nを演算する。n−N≧0でなければ(この時点ではn=1である)、分割・圧縮工程を繰り返す回数がまだ設定した回数まで達していないので(S1010:NO)、中央処理装置930は、サブメモリ940の解析条件記憶領域943から第2階層目の分割数を、サブメモリ940の第3行列表示式記憶領域949から第3行列表示式を、それぞれ取り出し、第3行列表示式にこの条件を当てはめてその分割数で分割する。生成された行列表示式は、第2階層目の第4行列表示式となる。この第4行列表示式は、サブメモリ940の第4行列表示式記憶領域950に記憶される。そして、中央処理装置930は、階層化の段階をカウントするカウンタnの値を1だけインクリメントして2とする(S1011)。
【0117】
そして、中央処理装置930は、サブメモリ940の第4行列表示式記憶領域950から、グループに分けられた分割後の行列表示式をグループごとに取り出し、取り出した行列表示式の係数行列の逆行列を算出する。求めた逆行列は、サブメモリ940の第2逆行列記憶領域953に記憶される。以上の逆行列を求める処理は、分割したすべての行列表示式の係数行列の逆行列が求まるまで、換言すれば、すべてのグループについて係数行列の逆行列が求まるまで継続される。したがって、逆行列は、第2階層目の分割数と同じ数だけグループごとに求められることになる。行列を等分割した場合は一つの行列の逆行列を求めれば良い。
【0118】
さらに、中央処理装置930は、サブメモリ940の第4行列表示式記憶領域950から分割後の行列表示式を取り出し、隣接するグループの未知数ベクトルにおける境界部のベクトルを、各グループの第4行列表示式の定数ベクトルに加算して、各グループの補助ベクトルを生成する。生成された補助ベクトルは、サブメモリ940の第2補助ベクトル記憶領域954に記憶される(S1008)。
【0119】
中央処理装置930は、サブメモリ940の、第4行列表示式記憶領域950から分割後の行列表示式に含まれる未知数ベクトルを、第2逆行列記憶領域953から逆行列を、さらに第2補助ベクトル記憶領域954から補助ベクトルをグループごとに取り出し、取り出した未知数ベクトル、逆行列、補助ベクトルから、未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式をグループごとに生成する。生成した第5行列表示式は、サブメモリ940の第5行列表示式記憶領域951に記憶される。
【0120】
中央処理装置930は、サブメモリ940の第5行列表示式記憶領域951からすべてのグループの第5行列表示式を取り出し、グループ間の境界部に位置することとなった式だけを取り出して第6行列表示式を生成する。この圧縮の過程をイメージで表示すれば、図11の処理ステップ1108から処理ステップ1109の過程のようになる。生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルで表される。生成された第6行列表示式は、サブメモリ940の第6行列表示式記憶領域952に記憶される(S1009)。
【0121】
中央処理装置930は、サブメモリ940の解析条件記憶領域943から階層化次数Nの値を取り出し、取り出した階層化次数Nの値と、階層化の段階をカウントするカウンタnの値とからn−Nを演算する。n−N≧0であれば(この時点ではn=2である)、分割・圧縮工程を繰り返す回数が設定した回数の2回に達したので(S1010:YES)、中央処理装置930は、圧縮された行列表示式の解を求めるために、サブメモリ940の第6行列表示式記憶領域952から第6行列表示式を取り出し、取り出した行列表示式の係数行列の逆行列を演算する。求めた逆行列は、サブメモリ940の第3逆行列記憶領域955に記憶される。
【0122】
中央処理装置930は、サブメモリ940の、第6行列表示式記憶領域952から第6行列表示式を、第3逆行列記憶領域955から求めた逆行列を取り出し、第6行列表示式における未知数ベクトルの各未知数の値が求まる。ここで未知数が求まったことによって、第6行列式の未知数のすべて、すなわち、図11の処理ステップ1109のようなイメージで表される第5行列表示式の境界部に位置する未知数のすべてが求まる。たとえば、図11の処理ステップ1110のように、未知数x(m × n)、x(m × n+1)、x(2m × n)、…が求まることになる(S1012)。
【0123】
以上のようにして、すべてのグループの第5行列表示式の境界部の未知数が求まると、さらに、中央処理装置930は、サブメモリ940の、第5行列表示式記憶領域951から第5行列表示式を取り出し、演算された各未知数の値を、各グループの第5行列表示式の補助ベクトルに代入し、S1008のステップで演算された逆行列を利用して、第5行列表示式のすべての未知数を演算する。すなわち、図11の処理ステップ1111のようなイメージで表される第4行列表示式の境界部に位置する未知数のすべてが求まる。たとえば、図11の処理ステップ1112のように、未知数x(1)、x(m × n)、x(m × n+1)、…が求まることになる(S1013)。
【0124】
中央処理装置930は、階層化の段階をカウントするカウンタnの値が1以下であるか否かを判断する。n≦1でなければ(この時点ではn=2である)、(S1014:NO)、中央処理装置930は、階層化の段階をカウントするカウンタnの値を1だけデクリメントして1とする(S1015)。
【0125】
以上のようにして、すべてのグループの第4行列表示式の境界部の未知数が求まると、さらに、中央処理装置930は、サブメモリ940の、第2行列表示式記憶領域947から第2行列表示式を取り出し、演算された各未知数の値を、図11の処理ステップ1113のようなイメージで表される各グループの第2行列表示式の補助ベクトルに代入し、連立一次方程式のすべての未知数の値を演算する。たとえば、図11の処理ステップ1114のように、未知数x(1)からx(m × n)が求まることになる。
【0126】
中央処理装置930は、階層化の段階をカウントするカウンタnの値が1以下であるか否かを判断する。n≦1であれば(この時点ではn=1である)、(S1014:YES)、中央処理装置930は処理を終了する。
【0127】
つぎに、本発明の理解をさらに深めるために、例示した連立一次方程式に基づいて、2回の分割・圧縮処理(階層化次数N=2)を経て、未知数の値を求める手順を説明する。
【0128】
まず、微分方程式を離散化した結果、下記のような16個の未知数を持つ連立一次方程式が与えられたものとする。
なお、入力された境界条件は、x0=1、x17=0である。また、入力された階層化次数は2、第1階層目の分割数は4、第2階層目の分割数は2である。
【0129】
【数17】
Figure 0003864059
【0130】
この連立一次方程式から行列表示式を生成すると、次のように、係数行列×未知数ベクトル=定数ベクトルとして表される。なお、係数行列は下記の行列表示式の左辺の行列、未知数ベクトルは左辺のベクトル、定数ベクトルは右辺のベクトルである。
【0131】
【数18】
Figure 0003864059
【0132】
この行列表示式を入力された第1階層目の分割数で分割するため、単純に上から4等分して4つのグループに分割すると、係数行列×未知数ベクトル=定数ベクトルとして表される4つの第1行列表示式ができる。これらの第1行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル(下記の行列表示式の一番右側のベクトル)を各グループの第1行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「=」の右側の2つのベクトルの和である。
【0133】
【数19】
Figure 0003864059
【0134】
そして、第1行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式を生成する。生成される第2行列表示式は下記のような行列表示式になる。
【0135】
【数20】
Figure 0003864059
【0136】
つぎに、この第2行列表示式よりグループ間の境界部に位置することとなった式だけを取り出す。取り出した式から下記のような連立方程式を生成する。
【0137】
【数21】
Figure 0003864059
【0138】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルとして表される、下記のような第3行列表示式となる。
【0139】
【数22】
Figure 0003864059
【0140】
第3行列表示式のバランスをよくするために、下記のような変形をする。
【0141】
【数23】
Figure 0003864059
【0142】
この第3行列表示式を入力された第2階層目の分割数で分割するため、単純に上から2等分して2つのグループに分割すると、係数行列×未知数ベクトル=定数ベクトルとして表される第2階層目の第4行列表示式ができる。これらの第4行列表示式において、隣接するグループの未知数ベクトルにおける境界部のベクトル(下記の行列表示式の一番右側のベクトル)を各グループの第4行列表示式の定数ベクトルに加算する。この結果得られる行列表示式は、下記のようになる。なお、補助ベクトルは、下記の行列表示式の「=」の右側の2つのベクトルの和である。
【0143】
【数24】
Figure 0003864059
【0144】
そして、第4行列表示式における各グループの係数行列の逆行列をグループごとに演算し、未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式を生成する。生成される第5行列表示式は下記のような行列表示式になる。
【0145】
【数25】
Figure 0003864059
【0146】
つぎに、この第5行列表示式よりグループ間の境界部に位置することとなった式をだけを取り出す。取り出した式から下記のような連立方程式を生成する。
【0147】
【数26】
Figure 0003864059
【0148】
この連立一次方程式から行列表示式を生成すると、生成される行列表示式は、係数行列×未知数ベクトル=定数ベクトルとして表される、下記のような第6行列表示式となる。
【0149】
【数27】
Figure 0003864059
【0150】
そして、第6行列表示式における係数行列の逆行列を演算し、この逆行列と定数ベクトルから未知数x8、x9の値が次のような行列表示式から求まる。
【0151】
【数28】
Figure 0003864059
【0152】
この行列表示式から未知数x8、x9の値が求まると、未知数x8、x9の値を第5行列表示式(数25の行列表示式)に代入して、未知数x1、x4、x5、x12、x13、x16の値が次のような行列表示式から求まる。ここまでの処理で第5行列表示式のすべての未知数が求められたことになる。
【0153】
【数29】
Figure 0003864059
【0154】
以上までの処理で求められた未知数x1、x4、x5、x8、x9、x12、x13、x16の値を第2行列表示式(数20の行列表示式)に代入して、残りの未知数x2、x3、x6、x7、x10、x11、x14、x15の値が次のような行列表示式から求まる。これにより連立一次方程式の16個の未知数のすべてが求まる。
【0155】
【数30】
Figure 0003864059
【0156】
【数31】
Figure 0003864059
【0157】
本実施の形態のように、階層化次数に応じて、連立一次方程式から得られた行列表示式を分割し、分割した行列表示式の境界部のみを取り出して圧縮した行列表示式を生成するということを繰り返し、圧縮された行列表示式を分割の順番とは逆の順番で解くことによって最終的にもとの行列表示式のすべての未知数を求めるようにすると、非常に単純な手順で、しかも事務的に、複雑な連立一次方程式を求めることが可能になる。
【0158】
本発明の連立一次方程式の計算プログラムまたは連立一次方程式の計算装置を用いて実際に解析計算を行わせたところ、図12に示すように、行列表示式の演算時間を著しく減少させることができた。
【0159】
図12は、10質点系の振動応答解析を行った場合に得られた、1,000,000行×1,000,000列の係数行列を持つ行列表示式を解くのにかかった時間を測定した結果を示すものである。
【0160】
図12(A)の表に示すように、1,000,000行×1,000,000列の係数行列を持つ行列表示式を、第1階層目の分割数(第1分割数)を250とし、第2階層目の分割数(第2分割数)を2として解いた場合には、その行列表示式が2,650秒で解け、第1分割数を1,000とし第2分割数を25として解いた場合には、その行列表示式が350秒で解けた。また、第1分割数および第2分割数と計算時間との関係を立体棒グラフで表すと、図12(B)のように表すことができる。1,000,000行×1,000,000列の係数行列を持つ行列表示式を解く場合は、第1分割数および第2分割数共にある程度の範囲内において、多くなるほど計算時間が少なくなるのがわかる。
【0161】
このように、本実施の形態に係る連立一次方程式の計算プログラムを用いて解析を行うと、未知数の数が非常に多い連立一次方程式であっても短時間で求めることが可能になるため、建築物における振動の伝達状況や部屋の温度の分布状況などの物理現象の模擬解析を精度良く解析することができるようになる。
【0162】
なお、本実施の形態では、2回分割(階層化次数が2)することによって連立一次方程式を解く場合について述べたが、3回以上分割することによっても、上記の解析手順と同様の解析手順を用いることによって連立方程式を解くことが可能である。
【0163】
本発明にかかる連立一次方程式の計算プログラムは、MO、MD DATA、iDフォーマットなどの光磁気ディスク、CD−R、CD−RW、DVD−RAM、DVD−RWなどの光ディスク、フレキシブルディスク、zip、Super Diskなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、PCカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録しておくことができる。コンピュータは、これらの記録媒体に記録されている本発明の連立一次方程式の計算プログラムを読み込むことによって、連立一次方程式を短時間で解くことができる。
【0164】
上記の実施の形態で示した解析手順は、連立一次方程式の計算プログラムとして、上記の各種の記録媒体を介して、またはインターネットやイントラネットの回線を介してコンピュータに提供される。コンピュータは、この連立一次方程式の計算プログラムを実行することによって行列表示式の分割や圧縮を行い、連立一次方程式の解を非常に短時間で解くことができる。
【0165】
以上、2つの実施の形態で説明したように、本発明によれば、入力した初期条件・境界条件・時間刻み幅・時間刻み数・空間刻み幅・空間刻み数・物性値および分割数などに基づいて、係数行列の大きな行列表示式が係数行列の小さな行列表示式に自動的に分割(複数回)されるようになっているので、高度な専門知識や経験がなくても、最終的に得られる行列表示式を非常に小さな行列表示式にすることができる。
【0166】
このため、理論上は、扱うことができる行列の大きさの制限が著しく緩和されることから、たとえば、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析する場合でも、従来のように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりする必要がなくなり、高度な専門知識や経験がなくても多元連立一次方程式を解くことができるようになる。また、分割された行列表示式の係数行列の逆行列は、非常に短時間で解くことができるので、非常に高精度の解析結果を従来とは比較にならないほどの速さで得ることができるようになる。
【0167】
【実施例】
つぎに、本発明にかかる連立一次方程式の計算装置を用いて、実際に解析計算を行う場合の手順や解析結果の表示形態を説明する。
【0168】
(第1実施例)
この実施例は、10階建ての建物の応答変位時刻歴を求める振動解析を行う場合である。
【0169】
解析者は、入力装置100から次のデータを入力する。
【0170】
振動体の個数 n
時間軸上のステップ数 f
減衰行列 C(次数nの正方行列)
剛性行列 K(次数nの正方行列)
質量行列 M(次数nの正方行列)
外力 F(個数n×f)
初期条件 I(個数n)
境界条件 B(個数n)
時間軸上のステップ数を、物理的要請に基づいて分割した第1分割数として入力(f÷第1分割数=整数)。
【0171】
時間軸上のステップ数を、物理的要請に基づいて分割した第2分割数として入力(第1分割数÷第2分割数=整数)。
【0172】
以上のデータが入力装置100から入力されると、中央処理装置130は、これらのデータをサブメモリ140の所定の領域に記憶させる。つぎに、中央処理装置130は、以下のような手順で入力したデータの解析を行う。
【0173】
▲1▼多元連立一次方程式から行列表示式を生成し、生成された行列表示式を第1分割数で分割する。分割後の行列表示式をサブメモリ140の所定の領域に記憶させる。(記憶される行列表示式は分割前の行列表示式ではないので必要とする記憶領域の極端な節約となる)。
【0174】
▲2▼外力のベクトルもグループ分けし、サブメモリ140の所定の領域に記憶させる。
【0175】
▲3▼分割後の行列表示式の、求める未知数にかかる係数行列の逆行列を求め、サブメモリ140の所定の領域に記憶させる。
【0176】
▲4▼分割後の行列表示式の逆行列、初期条件、境界条件および外力等を用いて、境界(接続)部に位置する式を作成、計算し、境界(接続)部に位置する式の値を求める。境界(接続)部に位置する式の値はサブメモリ140の所定の領域に記憶させる。
【0177】
▲5▼分割後の行列表示式を求めるのに必要な境界(接続)部(値)をサブメモリ140から呼び出す。分割後の行列表示式を求めるのに必要な逆行列をサブメモリ140から呼び出す。この両者より分割後の行列表示式をすべて求めることができる。これを分割されたすべての行列表示式(多元連立一次方程式に相当)に適用しすべての求めるべき未知数を求める。
【0178】
分割される前の係数行列は必ずしも生成させたり記憶させたりする必要がないことは勿論である。要は分割された後の係数行列を生成、記憶させれば良い。
【0179】
以上の処理は第2分割を行う場合も同様に行う。
【0180】
以上のようにして解析した結果は、図13(A)、(B)に示すような建物の応答変位時刻歴のグラフとして出力装置110に表示される。なお、図13(B)は、同図(A)の時間軸を長くした図である。
【0181】
(第2実施例)
この実施例は、部屋に点熱源を置いた場合の部屋の温度分布の熱伝達解析を行う場合である。この実施例では、平面のラプラス方程式を用いている。
【0182】
解析者は、入力装置100から次のデータを入力する。
【0183】
縦の刻み数 n
横の刻み数 m
境界条件 B(個数2n+2m)
初期条件 I(個数n×m)
物理的要請に基づいた第1分割数を入力(n≧mとすると、n÷第1分割数=整数)。
【0184】
物理的要請に基づいた第2分割数を入力(第1分割数÷第2分割数=整数)。
【0185】
以上のデータが入力装置100から入力されると、中央処理装置130は、これらのデータをサブメモリ140の所定の領域に記憶させる。つぎに、中央処理装置130は、以下のような手順で入力したデータの解析を行う。
【0186】
▲1▼多元連立一次方程式から行列表示式を生成し、生成された行列表示式を第1分割数で分割する。分割後の行列表示式をサブメモリ140の所定の領域に記憶させる。(記憶される行列表示式は分割前の行列表示式ではないので必要とする記憶領域の極端な節約となる)。
【0187】
▲2▼初期条件、境界条件もグループ分けし、サブメモリ140の所定の領域に記憶させる。
【0188】
▲3▼分割後の行列表示式の、求める未知数にかかる係数行列の逆行列を求め、サブメモリ140の所定の領域に記憶させる。
【0189】
▲4▼分割後の行列表示式の係数行列の逆行列、初期条件、境界条件を用いて、境界(接続)部に位置する式を作成、計算し、境界(接続)部に位置する式の値を求める。境界(接続)部に位置する式の値はサブメモリ140の所定の領域に記憶させる。
【0190】
▲5▼分割後の行列表示式を求めるのに必要な境界(接続)部(値)をサブメモリ140から呼び出す。分割後の行列表示式を求めるのに必要な逆行列をサブメモリ140から呼び出す。この両者より分割後の行列表示式をすべて求めることができる。これを分割されたすべての行列表示式(多元連立一次方程式に相当)に適用しすべての求めるべき未知数を求める。
【0191】
以上の処理は第2分割を行う場合も同様に行う。
【0192】
以上のようにして解析した結果は、図14に示すような部屋の温度分布を示すグラフとして出力装置110に表示される。
【0193】
【発明の効果】
以上説明したように、請求項1から請求項9に記載の発明によれば、入力した条件および(各階層の)分割数に基づいて、係数行列の大きな行列表示式が係数行列の小さな行列表示式に自動的に(複数回)分割されるため、高度な専門知識や経験がなくても、最終的に得られる行列表示式を非常に小さな行列表示式にすることができる。
【0194】
また、分割された行列表示式の係数行列は、小さな行列であるから、非常に短時間で逆行列を求めることができるので、振動の伝達状況や部屋の温度分布状況などの物理現象を模擬解析する場合でも、非常に高精度の解析結果を従来とは比較にならないほどの速さで得ることができるようになる。
【0195】
さらに、理論上は、扱うことができる係数行列の大きさが著しく緩和されることから、たとえば、従来のように、解析のモデル化に工夫を凝らしたり、解析精度には目をつぶって解析の範囲を制限したりする必要がなくなり、高度な専門知識や経験がなくても非常に未知数の多い連立一次方程式を解くことができるようになる。
【図面の簡単な説明】
【図1】本発明にかかる第1の実施の形態における連立一次方程式の計算装置の概略構成図である。
【図2】図1に示した計算装置の第1の実施の形態における処理手順を示すフローチャートである。
【図3】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図4】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図5】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図6】対象システムが一質点系であるときの振動解析を例に、本発明の計算装置で行われる処理手順を具体的に示すための図である。
【図7】本発明の計算装置で行われる第1の実施の形態の処理手順を視覚化し、処理内容をわかりやすくするための図である。
【図8】本発明の第1の実施の形態の処理を、外力を受ける1質点の物体の1次元の微分方程式に適用した場合の、分割数と計算時間との関係を示す図である。
【図9】本発明にかかる第2の実施の形態における連立一次方程式の計算装置の概略構成図である。
【図10】図1に示した計算装置の第2の実施の形態における処理手順を示すフローチャートである。
【図11】本発明の計算装置で行われる第2の実施の形態の処理手順を視覚化し、処理内容をわかりやすくするための図である。
【図12】本発明の第2の実施の形態の処理を、外力を受ける10質点の物体の1次元の微分方程式に適用した場合の、分割数と計算時間との関係を示す図である。
【図13】振動解析の解析結果の出力形態の一例を示す図である。
【図14】熱伝達解析の解析結果の出力形態の一例を示す図である。
【図15】連立一次方程式を解くための従来の手法を示すフローチャートである。
【図16】図15に示した従来の手法の説明に供する図である。
【図17】図15に示した従来の手法の説明に供する図である。
【図18】図15に示した従来の手法の説明に供する図である。
【図19】図15に示した従来の手法の説明に供する図である。
【図20】図15に示した従来の手法の説明に供する図である。
【図21】図15に示した従来の手法の説明に供する図である。
【図22】図15に示した従来の手法の説明に供する図である。
【図23】図15に示した従来の手法の説明に供する図である。
【図24】図15に示した従来の手法の説明に供する図である。
【図25】図15に示した従来の手法の説明に供する図である。
【符号の説明】
100、900…入力装置、
110、910…出力装置、
120、920…メインメモリ、
130、930…中央処理装置、
140、940…サブメモリ。

Claims (9)

  1. 連立一次方程式を解くためにコンピュータを、
    (a)前記連立一次方程式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第1行列表示式を生成する第1行列表示式生成手段、
    (b)前記第1行列表示式を行方向に並ぶ複数のグループに分割する分割手段、
    (c)前記第1行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第1行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する補助ベクトル生成手段、
    (d)前記第1行列表示式の各グループにおける係数行列の逆行列を演算する第1逆行列演算手段、
    (e)前記第1行列表示式における未知数ベクトル、前記補助ベクトル、前記第1逆行列演算手段により演算された逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段、
    (f)前記第2行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段、
    (g)前記第3行列表示式における係数行列の逆行列を演算する第2逆行列演算手段、
    (h)前記第2逆行列演算手段により演算された逆行列を用いて前記第3行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段、
    (i)前記第3行列表示式における未知数ベクトルの各未知数の値を前記第2行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させるための連立一次方程式の計算プログラム。
  2. 連立一次方程式を解くためにコンピュータを、
    (a)前記連立一次方程式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第1階層目の第1行列表示式を生成する第1行列表示式生成手段、
    (b)前記第1行列表示式を行方向に並ぶ複数のグループに分割する第1分割手段、
    (c)前記第1行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第1行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第1補助ベクトル生成手段、
    (d)前記第1行列表示式の各グループにおける係数行列の逆行列を演算する第1逆行列演算手段、
    (e)前記第1行列表示式における未知数ベクトル、前記補助ベクトル、前記第1行列表示式における係数行列の逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段、
    (f)前記第2行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段、
    (g)前記第3行列表示式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第2階層目の第4行列表示式を生成する第4行列表示式生成手段、
    (h)前記第4行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第4行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第2補助ベクトル生成手段、
    (i)前記第4行列表示式における係数行列の逆行列をグループごとに演算する第2逆行列演算手段、
    (j)前記第4行列表示式における未知数ベクトル、前記第2補助ベクトル生成手段により生成された補助ベクトル、前記第2逆行列演算手段により演算された逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式をグループごとに生成する第5行列表示式生成手段、
    (k)前記第5行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第6行列表示式を生成する第6行列表示式生成手段、
    (l)前記第6行列表示式における係数行列の逆行列を演算する第3逆行列演算手段、
    (m)前記第3逆行列演算手段により演算された逆行列を用いて前記第6行列表示式における未知数ベクトルの各未知数の値を演算する第1未知数値演算手段、
    (o)前記第1未知数値演算手段より演算された前記第6行列表示式における各未知数の値を前記第5行列表示式の各グループの補助ベクトルに代入して前記第5行列表示式のすべての未知数の値を演算する第2未知数値演算手段、
    (p)前記第2未知数値演算手段より演算された前記第5行列表示式における各未知数の値を前記第2行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段、として機能させるための連立一次方程式の計算プログラム。
  3. 連立一次方程式を解くためにコンピュータを、
    (a)前記連立一次方程式から行列表示式を生成する行列表示式生成手段、
    (b)前記行列表示式の階層化次数Nと各階層の分割数を第N階層分割数として入力する入力手段、
    (c)前記行列表示式を入力された第1階層分割数に応じて複数のグループに分割する分割手段、
    (d)前記行列表示式の各グループからグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段、
    (e)さらに第N階層(N=2、…、n)の分割数に応じて前記圧縮された行列表示式を行方向に並ぶ複数のグループに分割する圧縮後行列表示式分割手段、
    (f)前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをN−1段階繰り返させる圧縮・分割制御手段、
    (g)前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段、
    (h)圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段、として機能させるための連立一次方程式の計算プログラム。
  4. 請求項1に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
  5. 請求項2に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
  6. 請求項3に記載されている連立一次方程式の計算プログラムを記録したコンピュータ読み取り可能な記録媒体。
  7. 連立一次方程式を解くための装置であって、
    (a)前記連立一次方程式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第1行列表示式を生成する第1行列表示式生成手段と、
    (b)前記第1行列表示式を行方向に並ぶ複数のグループに分割する分割手段と、
    (c)前記第1行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第1行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する補助ベクトル生成手段と、
    (d)前記第1行列表示式の各グループにおける係数行列の逆行列を演算する第1逆行列演算手段と、
    (e)前記第1行列表示式における未知数ベクトル、前記補助ベクトル、前記第1逆行列演算手段により演算された逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段と、
    (f)前記第2行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段と、
    (g)前記第3行列表示式における係数行列の逆行列を演算する第2逆行列演算手段と、
    (h)前記第2逆行列演算手段により演算された逆行列を用いて前記第3行列表示式における未知数ベクトルの各未知数の値を演算する未知数値演算手段と、
    (i)前記第3行列表示式における未知数ベクトルの各未知数の値を前記第2行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する連立一次方程式の計算装置。
  8. 連立一次方程式を解くための装置であって、
    (a)前記連立一次方程式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第1階層目の第1行列表示式を生成する第1行列表示式生成手段と、
    (b)前記第1行列表示式を行方向に並ぶ複数のグループに分割する第1分割手段と、
    (c)前記第1行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第1行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第1補助ベクトル生成手段と、
    (d)前記第1行列表示式の各グループにおける係数行列の逆行列を演算する第1逆行列演算手段と、
    (e)前記第1行列表示式における未知数ベクトル、前記補助ベクトル、前記第1行列表示式における係数行列の逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第2行列表示式をグループごとに生成する第2行列表示式生成手段と、
    (f)前記第2行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第3行列表示式を生成する第3行列表示式生成手段と、
    (g)前記第3行列表示式に基づいて係数行列×未知数ベクトル=定数ベクトルとして表される第2階層目の第4行列表示式を生成する第4行列表示式生成手段と、
    (h)前記第4行列表示式の各グループに隣接するグループの未知数ベクトルにおける境界部のベクトルを前記第4行列表示式の各グループの定数ベクトルに加算してグループごとに補助ベクトルを生成する第2補助ベクトル生成手段と、
    (i)前記第4行列表示式における係数行列の逆行列をグループごとに演算する第2逆行列演算手段と、
    (j)前記第4行列表示式における未知数ベクトル、前記第2補助ベクトル生成手段により生成された補助ベクトル、前記第2逆行列演算手段により演算された逆行列から未知数ベクトル=逆行列×補助ベクトルとして表される第5行列表示式をグループごとに生成する第5行列表示式生成手段と、
    (k)前記第5行列表示式の各グループよりグループ間の境界部に位置する式だけを取り出して圧縮された係数行列×未知数ベクトル=定数ベクトルとして表される第6行列表示式を生成する第6行列表示式生成手段と、
    (l)前記第6行列表示式における係数行列の逆行列を演算する第3逆行列演算手段と、
    (m)前記第3逆行列演算手段により演算された逆行列を用いて前記第6行列表示式における未知数ベクトルの各未知数の値を演算する第1未知数値演算手段と、
    (o)前記第1未知数値演算手段より演算された前記第6行列表示式における各未知数の値を前記第5行列表示式の各グループの補助ベクトルに代入して前記第5行列表示式のすべての未知数の値を演算する第2未知数値演算手段と、
    (p)前記第2未知数値演算手段より演算された前記第5行列表示式における各未知数の値を前記第2行列表示式の各グループの補助ベクトルに代入して前記連立一次方程式のすべての未知数の値を演算する連立一次方程式演算手段と、を有する連立一次方程式の計算装置。
  9. 連立一次方程式を解くための装置であって、
    (a)前記連立一次方程式から行列表示式を生成する行列表示式生成手段と、
    (b)前記行列表示式の階層化次数Nと各階層の分割数を第N階層分割数として入力する入力手段と、
    (c)前記行列表示式を入力された第1階層分割数に応じて複数のグループに分割する分割手段と、
    (d)前記行列表示式の各グループからグループ間の境界部に位置する式だけを取り出して圧縮された行列表示式を生成する行列表示式圧縮手段と、
    (e)さらに第N階層(N=2、…、n)の分割数に応じて前記圧縮された行列表示式を行方向に並ぶ複数のグループに分割する圧縮後行列表示式分割手段と、
    (f)前記行列表示式圧縮手段による圧縮と、当該圧縮後行列表示式分割手段による分割とをN−1段階繰り返させる圧縮・分割制御手段と、
    (g)前記分割手段または前記圧縮後行列表示式分割手段によって分割されたことによって生じた、すべての段階における複数のグループの行列表示式の各グループの求める未知数にかかる係数行列の逆行列を演算する逆行列演算手段と、
    (h)圧縮された行列表示式の解からその圧縮された行列表示式を生成するもととなった分割後の各グループの行列表示式の解を求める演算を圧縮の順番とは逆の順番で行い、最初に分割された各グループの行列表示式の解を求めるグループ行列表示式演算手段と、を有する連立一次方程式の計算装置。
JP2001114267A 2001-04-12 2001-04-12 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置 Expired - Fee Related JP3864059B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001114267A JP3864059B2 (ja) 2001-04-12 2001-04-12 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置
US10/103,634 US20030014227A1 (en) 2001-04-12 2002-03-20 Method and apparatus for analyzing physical target system and computer program product therefor
KR1020020018121A KR20020087002A (ko) 2001-04-12 2002-04-03 물리적인 대상 시스템의 해석의 방법과 장치 및 컴퓨터프로그램 제품
CN02106098A CN1409244A (zh) 2001-04-12 2002-04-12 物理对象系统的解析方法和装置以及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001114267A JP3864059B2 (ja) 2001-04-12 2001-04-12 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置

Publications (2)

Publication Number Publication Date
JP2002312341A JP2002312341A (ja) 2002-10-25
JP3864059B2 true JP3864059B2 (ja) 2006-12-27

Family

ID=18965365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001114267A Expired - Fee Related JP3864059B2 (ja) 2001-04-12 2001-04-12 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置

Country Status (4)

Country Link
US (1) US20030014227A1 (ja)
JP (1) JP3864059B2 (ja)
KR (1) KR20020087002A (ja)
CN (1) CN1409244A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410221B2 (en) * 2008-02-07 2019-09-10 Urban Science Applications, Inc. System and method for determining a grouping of segments within a market
JP5900951B2 (ja) * 2012-01-17 2016-04-06 国立大学法人広島大学 モデル化方法、解析方法及びプログラム
CN102903176B (zh) 2012-10-09 2014-10-22 广州广电运通金融电子股份有限公司 一种金融自助设备配钞方法
CN105630741A (zh) * 2015-12-22 2016-06-01 合肥工业大学 一种改进的按位替换法求矩阵逆矩阵模块
WO2019106637A1 (en) 2017-12-03 2019-06-06 Lumus Ltd. Optical device alignment methods
WO2019197959A1 (en) 2018-04-08 2019-10-17 Lumus Ltd. Optical sample characterization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120276B2 (ja) * 1986-03-10 1995-12-20 株式会社日立製作所 シミュレーションプログラム生成方法
JPH01145723A (ja) * 1987-08-28 1989-06-07 Hitachi Ltd プログラム生成方法
US5424963A (en) * 1992-11-25 1995-06-13 Photon Research Associates, Inc. Molecular dynamics simulation method and apparatus
US5442569A (en) * 1993-06-23 1995-08-15 Oceanautes Inc. Method and apparatus for system characterization and analysis using finite element methods
US5548798A (en) * 1994-11-10 1996-08-20 Intel Corporation Method and apparatus for solving dense systems of linear equations with an iterative method that employs partial multiplications using rank compressed SVD basis matrices of the partitioned submatrices of the coefficient matrix
US5629845A (en) * 1995-08-17 1997-05-13 Liniger; Werner Parallel computation of the response of a physical system
JP3878345B2 (ja) * 1998-12-01 2007-02-07 富士通株式会社 シミュレーション装置及び方法並びにプログラム記録媒体
JP4720964B2 (ja) * 2001-05-31 2011-07-13 日本電気株式会社 Fem解析方法、プログラム、およびシステム

Also Published As

Publication number Publication date
KR20020087002A (ko) 2002-11-21
JP2002312341A (ja) 2002-10-25
CN1409244A (zh) 2003-04-09
US20030014227A1 (en) 2003-01-16

Similar Documents

Publication Publication Date Title
Liu et al. The finite element method: a practical course
JP5724814B2 (ja) 熱流体シミュレーションプログラム,熱流体シミュレーション装置および熱流体シミュレーション方法
JP3522408B2 (ja) 数値流体解析結果の誤差見積方法、数値流体解析結果の誤差見積装置、数値流体解析方法、及び数値流体解析装置
US5581489A (en) Model generator for constructing and method of generating a model of an object for finite element analysis
Küttler et al. Vector extrapolation for strong coupling fluid-structure interaction solvers
Alves et al. An object-oriented approach to the generalized finite element method
Jayanti Computational fluid dynamics for engineers and scientists
JP2004503005A (ja) 流体流れシミュレーションのための同次数法
Abbate et al. An all-speed relaxation scheme for gases and compressible materials
JP3864059B2 (ja) 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置
Bateniparvar et al. An enrichment technique for bending analysis of in-plane heterogeneous thin plates with weak singularities
Musa Finite element analysis: a primer
JP2014026440A (ja) シミュレーションプログラム、シミュレーション装置およびシミュレーション方法
Negi et al. How to train your solver: Verification of boundary conditions for smoothed particle hydrodynamics
Marquina et al. Capturing composite waves in non-convex special relativistic hydrodynamics
Fransen Eigenstrain reconstruction of residual stresses induced by selective laser melting
Shephard et al. Parallel adaptive simulations on unstructured meshes
Adibi et al. Impact of artificial compressibility on the numerical solution of incompressible nanofluid flow
Phalippou et al. Remarks on mixed-integer formulations for hyper-reduction schemes in nonlinear dynamics
Farina et al. Lectures on hyperbolic equations and their numerical approximation
JP2009020625A (ja) 解析モデル作成方法、プログラム、記録媒体および解析モデル作成装置
Kennedy Hydro-mechanical analysis of low enriched uranium fuel plates for University of Missouri Research Reactor
Patel A Study Of Approximation Error In Eulerian Hydrocodes
Mirkov et al. Development and Validation of an Open-Source Finite-Volume Method Solver for Viscoplastic Flows
Olsen et al. Resolving force indeterminacy in contact dynamics using compatibility conditions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061002

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees