(57)【要約】【課題】線形連立方程式を数値解析する際の計算時間を低減するアルゴリズムを有する理工学シミュレータを提供する。【解決手段】個々の解析対象を離散化して数値解析する際に出現する連立１次方程式の係数行列Ｍｋの次元を計算し、その次元数Ｌｋと個々の解析対象を離散化して得られるセグメント集合の和集合Ｓを解析対象と見なしたときに出現する連立１次方程式の係数行列Ｍの次元数Ｌとを比較し、個々の解析対象に対応する係数行列Ｍｋの次元数Ｌｋが前記和集合Ｓに関する係数行列Ｍの次元数Ｌの概略半分より小さい場合は個々の解析対象に対応する係数行列Ｍｋを用いた連立１次方程式の数値計算を行い、そうでない場合は前記和集合Ｓに関する係数行列Ｍの逆行列Ａを部分行列展開し、その部分行列Ａｋを用いた連立１次方程式の数値計算を行う。【選択図】        図１
2004171135.tif 000002
【特許請求の範囲】
【請求項１】
個々の解析対象である複数の物理的実態をそれぞれ離散化して得られた複数のセグメント集合に関する情報をセグメント集合毎に格納する第一の記憶手段と、該複数のセグメント集合全体の和集合に関する情報を格納する第二の記憶手段と、該和集合に対応する連立１次方程式の係数行列であって正方行列である第一の係数行列の要素を格納する第三の記憶手段と、該第一の係数行列の逆行列である第一の逆行列の要素を格納する第四の記憶手段と、個々のセグメント集合に関する情報により第一の係数行列から要素を抽出して得られる正方行列である第二の係数行列の要素を格納する第五の記憶手段と、個々のセグメント集合に関する情報により第一の逆行列から要素を抽出して得られる第二の逆行列の要素を格納する第六の記憶手段と、第一の係数行列の次元数を格納する第七の記憶手段と、第二の係数行列の次元数を格納する第八の記憶手段と、第一乃至第八の記憶手段を用いて線形連立１次方程式の数値解析を行う演算手段とを備えることを特徴とする線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項２】
前記演算手段が、第七の記憶手段に格納されている第一の係数行列の次元数と第八の記憶手段に格納されている第二の係数行列の次元数とを比較し、後者が前者の半分未満である場合に第五の記憶手段に格納されている第二の係数行列の要素を用いて線形連立１次方程式を計算し、後者が前者の半分以上である場合に第四の記憶手段に格納されている第一の逆行列の要素及び第六の記憶手段に格納されている第二の逆行列の要素を用いて線形連立１次方程式を計算することを特徴とする請求項１記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項３】
前記複数の解析対象に関連付けられた複数の境界条件に関する情報を格納する第十の記憶手段と、個々の解析対象に関連付けられた個々の境界条件に対応する定数ベクトルの要素を格納する第九の記憶手段とを備え、前記演算手段が線形連立１次方程式を計算する際に、第九の記憶手段に格納されている定数ベクトルの要素を用いることを特徴とする請求項１又は２記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項４】
第四の記憶手段に格納されている第一の逆行列の要素及び第六の記憶手段に格納されている第二の逆行列の要素を用い、第一の逆行列を基本変形することによって行列の四隅のいずれかに第二の逆行列を配置させ、その基本変形された第一の逆行列を第二の逆行列に沿って四分割し、該分割された第一の逆行列の部分行列のうち第二の逆行列以外の正方行列の要素を格納する第十一の記憶手段と、該部分行列の残りの二つの部分行列の要素を夫々格納する第十二、第十三の記憶手段とを備え、前記演算手段が、第八の記憶手段に格納されている第二の係数行列の次元数が第七の記憶手段に格納されている第一の係数行列の次元数の半分以上である場合に第六の記憶手段に格納されている第二の逆行列の要素及び第十一の記憶手段に格納されている正方行列の要素及び第十二の記憶手段に格納されている部分行列の要素及び第十三の記憶手段に格納されている部分行列の要素を用いて線形連立１次方程式を計算することを特徴とする請求項１〜３いずれか記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項５】
解析対象である物理的実態が構造力学的性質であることを特徴とする請求項１〜４いずれか記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項６】
解析対象である物理的実態が電気及び電子回路的性質であることを特徴とする請求項１〜４いずれか記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項７】
解析対象である物理的実態が電磁気学的性質であることを特徴とする請求項１〜４いずれか記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【請求項８】
解析対象である物理的実態が流体力学的性質であることを特徴とする請求項１〜４いずれか記載の線形連立１次方程式の数値解析方法を用いた理工学シミュレータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、理工学の諸現象を計算機シミュレーションするツールである理工学シミュレータに係り、特に、線形連立方程式を数値解析する際の計算時間を低減するアルゴリズムを有する理工学シミュレータに関するものである。
【０００２】
【従来の技術】
理工学の諸現象を実験的に検証できない場合、あるいは検証が時間的制約や費用的制約のために困難である場合、明らかになっている物理的支配方程式を用いて、検証するべき諸現象を引き起こす物理的実態を離散化し、最終的に多元連立１次方程式の形に定式化し、計算機を用いて適当なアルゴリズムでその多元連立１次方程式を数値的に解き、その解を用いて検証するべき諸現象の推定を行うことが広く行われている。また、以上の諸現象の計算機による推定を行うツールを理工学シミュレータと呼称し、その理工学シミュレータの実態は、汎用或いは専用のコンピュータハードウェア或いは前記アルゴリズムを適当な計算機言語で記述したソフトウェアプログラムである。
【０００３】
前述の理工学シミュレータの計算時間を決める主要因の一つは連立１次方程式の計算時間である。特に、検証するべき諸現象を引き起こす物理的実態を離散化した後の離散化された要素（セグメント）の個数が大きい場合、換言すれば、用いている物理的支配方程式の挙動が１次関数的と容認できる寸法と前記物理的実態の寸法との比が大きい場合は、連立１次方程式の計算時間が理工学シミュレータの計算速度を制限する主要因となる。このような場合、つまり連立１次方程式の次元が大きい場合は、連立１次方程式を如何に高速に数値解析するかの手法が重要な技術課題となる。この出願に関連する先行技術文献情報として、以下のものがある。
【０００４】
【特許文献１】
特開平５−２０３４８号公報
【特許文献２】
特開平５−２０３４９号公報
【特許文献３】
特開平７−２７１７６０号公報
【特許文献４】
特開平９−２１２４８３号公報
【特許文献５】
特開平６−１４９８５８号公報
【０００５】
【発明が解決しようとする課題】
連立１次方程式の数値解析の高速化については、ハードウェアの側面から或いはソフトウェアの側面から種々の技術が提案されている。しかしながら、ハードウェア的な高速化手法は専用の計算機ハードウェアの開発が必要となり、ソフトウェア的な高速化手法に比べてコストが高いという問題がある。
【０００６】
ソフトウェア的な高速化手法には、ＯＳ（オペレーションシステム）レベルの高速化手法とプログラムアルゴリズムレベルの高速化手法とがあるが、これも開発コストがより安いプログラムアルゴリズムレベルの高速化手法が理工学シミュレータを販売して利潤を追求する場合は好ましい。連立１次方程式のプログラムアルゴリズムレベルの高速化手法は、膨大な開発コストが既に償却されている汎用のコンピュータハードウェア及び汎用のＯＳを利用することができるので、理工学シミュレータを低コストでユーザに提供することができると共に、コンピュータハードウェアによる高速化手法及びＯＳレベルの高速化手法と共存可能であり、高価で高性能なコンピュータハードウェア及びＯＳを用いることでユーザに対して更なるシミュレーションの高速化を提供することができる。
【０００７】
ハードウェア的な高速化手法では、連立１次方程式の係数行列を分割してその分割したものを複数のプロセッサに割り付け、並列処理を利用して消去法の高速化を図る方法（特許文献１、２）、連立１次方程式の係数行列を分割してその分割したものを複数のプロセッサに割り付け、並列処理を利用してＬＵ分解を高速化する方法（特許文献３）、連立１次方程式の係数行列を分割してその分割したものを複数のプロセッサに割り付け、並列処理を利用して反復法を高速化する方法（特許文献４）が知られている。
【０００８】
また、ソフトウェア的な高速化手法では、プログラムアルゴリズムレベルの高速化手法として、連立１次方程式の係数行列の対称性を検出して対称正定置な行列の場合のみ不完全コレスキー分解を適用して連立１次方程式の高速解法を行う方法（特許文献５）が提案されているが、解くべき連立１次方程式の係数行列の形によらず全ての連立１次方程式に有効なプログラムアルゴリズムレベルの連立１次方程式の高速化解法は得られていない。
【０００９】
以上のことから、安価で高速な理工学シミュレータを実現するために、ソフトウェア的な手法を用いて、解くべき連立１次方程式の係数行列の形によらず全ての連立１次方程式に有効な高速数値解析アルゴリズムが望まれている。
【００１０】
そこで、本発明の目的は、上記課題を解決し、線形連立方程式を数値解析する際の計算時間を低減するアルゴリズムを有する理工学シミュレータを提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するために本発明は、個々の解析対象である複数の物理的実態をそれぞれ離散化して得られた複数のセグメント集合に関する情報をセグメント集合毎に格納する第一の記憶手段と、該複数のセグメント集合全体の和集合に関する情報を格納する第二の記憶手段と、該和集合に対応する連立１次方程式の係数行列であって正方行列である第一の係数行列の要素を格納する第三の記憶手段と、該第一の係数行列の逆行列である第一の逆行列の要素を格納する第四の記憶手段と、個々のセグメント集合に関する情報により第一の係数行列から要素を抽出して得られる正方行列である第二の係数行列の要素を格納する第五の記憶手段と、個々のセグメント集合に関する情報により第一の逆行列から要素を抽出して得られる第二の逆行列の要素を格納する第六の記憶手段と、第一の係数行列の次元数を格納する第七の記憶手段と、第二の係数行列の次元数を格納する第八の記憶手段と、第一乃至第八の記憶手段を用いて線形連立１次方程式の数値解析を行う演算手段とを備えたものである。
【００１２】
前記演算手段が、第七の記憶手段に格納されている第一の係数行列の次元数と第八の記憶手段に格納されている第二の係数行列の次元数とを比較し、後者が前者の半分未満である場合に第五の記憶手段に格納されている第二の係数行列の要素を用いて線形連立１次方程式を計算し、後者が前者の半分以上である場合に第四の記憶手段に格納されている第一の逆行列の要素及び第六の記憶手段に格納されている第二の逆行列の要素を用いて線形連立１次方程式を計算してもよい。
【００１３】
前記複数の解析対象に関連付けられた複数の境界条件に関する情報を格納する第十の記憶手段と、個々の解析対象に関連付けられた個々の境界条件に対応する定数ベクトルの要素を格納する第九の記憶手段とを備え、前記演算手段が線形連立１次方程式を計算する際に、第九の記憶手段に格納されている定数ベクトルの要素を用いてもよい。
【００１４】
第四の記憶手段に格納されている第一の逆行列の要素及び第六の記憶手段に格納されている第二の逆行列の要素を用い、第一の逆行列を基本変形することによって行列の四隅のいずれかに第二の逆行列を配置させ、その基本変形された第一の逆行列を第二の逆行列に沿って四分割し、該分割された第一の逆行列の部分行列のうち第二の逆行列以外の正方行列の要素を格納する第十一の記憶手段と、該部分行列の残りの二つの部分行列の要素を夫々格納する第十二、第十三の記憶手段とを備え、前記演算手段が、第八の記憶手段に格納されている第二の係数行列の次元数が第七の記憶手段に格納されている第一の係数行列の次元数の半分以上である場合に第六の記憶手段に格納されている第二の逆行列の要素及び第十一の記憶手段に格納されている正方行列の要素及び第十二の記憶手段に格納されている部分行列の要素及び第十三の記憶手段に格納されている部分行列の要素を用いて線形連立１次方程式を計算してもよい。
【００１５】
解析対象である物理的実態が構造力学的性質であってもよい。
【００１６】
解析対象である物理的実態が電気及び電子回路的性質であってもよい。
【００１７】
解析対象である物理的実態が電磁気学的性質であってもよい。
【００１８】
解析対象である物理的実態が流体力学的性質であってもよい。
【００１９】
【発明の実施の形態】
以下、本発明の一実施形態を添付図面に基づいて詳述する。
【００２０】
まず、理工学シミュレータの効用について説明する。
【００２１】
理工学シミュレータを用いる理由の一つは、検証するべき現象が一つであっても、その担い手である物理的実態が複数あるためである。検証するべき現象が一つで且つその担い手である物理的実態が一つであれば、理工学シミュレータは一度きりしか使用されないことになり、理工学シミュレータの使用は実験的検証に対してはなはだ高コストとなり、そのような場合は理工学シミュレータの導入は意味をなさない。即ち、理工学シミュレータは、検証するべき現象が一つであっても、その担い手である物理的実態が複数ある場合に効果が発揮される。
【００２２】
次に、本発明に係るアルゴリズム（数値解析方法）を説明する。なお、以下でｉ，ｊ，ｋ，ｍ，ｎは、任意の自然数である。
【００２３】
物理的実態に物理的支配方程式を適用するために、複数の物理的実態を各々離散化した後に得られるセグメントの集合Ｓｉを数１のように表す。
【００２４】
【数１】
2004171135.tif 000003
【００２５】
但し、集合Ｓｉ（ｉ＝１，２，，ｎ）の要素の総数をｍｉとする。
これらの集合Ｓｉの全体の和集合をＳとすれば、数２が成り立つ。
【００２６】
【数２】
2004171135.tif 000004
【００２７】
このときの和集合Ｓの要素を数３とする。
【００２８】
【数３】
2004171135.tif 000005
【００２９】
極めて特殊な例を除けば数４となることはない。
【００３０】
【数４】
2004171135.tif 000006
【００３１】
なぜなら、理工学シミュレータが検証するべき一つの現象について複数の物理的実態を検証（解析）する場合、それら複数の物理的実態相互間には何らかの関係がある場合がほとんど全てであるからである。例えば、理工学シミュレータを何らかの最適設計に用いる場合、或いは何らかの危険因子発見に使う場合、対象となる複数の物理的実態間には何らかの共通性（例えば、構造の類似性、包含性）があるからである。集合Ｓｋに関する連立１次方程式を数５とする。
【００３２】
【数５】
2004171135.tif 000007
【００３３】
ここで、Ｍｋは既知係数によって構成される正方行列、ｘｋは未知数ベクトル、ｃｋは既知ベクトルである。
【００３４】
このような場合、従来技術では、各々の集合Ｓ１，Ｓ２，…，Ｓｎに付いての数６の連立１次方程式を解くことになる。
【００３５】
【数６】
2004171135.tif 000008
【００３６】
連立１次方程式の構成要素である正方行列Ｍｋの意味の有る（連立１次方程式が自明な解を持つ）全ての形について数値解析するために基本アルゴリズムとして消去法を用いる。消去法のアルゴリズムによる連立１次方程式の数値解法の計算時間は、解析対象を離散化して得られるセグメント数（セグメントの個数）の３乗に比例するから、従来技術による連立１次方程式の数値解析時間のオーダーは基本時間をτとして、数７となる。
【００３７】
【数７】
2004171135.tif 000009
【００３８】
集合Ｓｉの全体の和集合Ｓに関係する連立方程式を数８とする。
【００３９】
【数８】
2004171135.tif 000010
【００４０】
正方行列Ｍ，Ｍ１，Ｍ２，…，Ｍｎの逆行列をそれぞれＡ，Ａ１，Ａ２，…，Ａｎとすれば、数９が成り立つ。
【００４１】
【数９】
2004171135.tif 000011
【００４２】
このとき正方行列Ａ，Ａ１，Ａ２，…，Ａｎをそれぞれの要素の集合と考えれば、数１０が成り立つ。
【００４３】
【数１０】
2004171135.tif 000012
【００４４】
正方行列Ａは、基本変形（行と列との入れ替え）を施すことによって、行列の左上に正方行列Ａｋを掃き出せば（左上隅に配置させれば）、正方行列Ａｋに沿って四分割し、数１１のような部分行列Ａｋａ，Ａｋｂ，Ａｋｃに展開できる。なお、ｍｋはｍより小さい自然数。
【００４５】
【数１１】
2004171135.tif 000013
【００４６】
但し、正方行列Ａの要素をａｉｊとし、要素ａｉｊの集合からなる行列をＡ（ａｉｊ）と記述した。
【００４７】
基本変形により、物理的性質は保存されるので、数６の方程式で求められる物理量は、数１２の連立行列方程式でも同じく求められる。
【００４８】
【数１２】
2004171135.tif 000014
【００４９】
但し、ｙｋ（ｋ＝１，２，…，ｎ）は要素数ｍ−ｍｋの未知ベクトルである。
【００５０】
数１２の連立方程式を数値解析する場合、計算時間を決定する消去法が適用されるのは、Ａｋｂ・ｃｋ＋Ａｋｃ・ｙｋ＝０：ｋ＝１，２，…，ｎの部分であるから、本発明による連立行列方程式の数値解析時間のオーダーは基本時間をτとして、数１３となる。
【００５１】
【数１３】
2004171135.tif 000015
【００５２】
従って、解析するべき諸現象を生起させる物理的実態を数値解析する際に、想定し得る複数の物理的実態を夫々離散化したセグメントの複数の集合Ｓｉを形成し、それら複数の集合の和集合Ｓを形成し、その和集合Ｓに対応する物理的実態を数値解析する際に出現する連立１次方程式の係数行列Ｍｋの階数（次元数）を計算し、係数行列Ｍｋの階数が正方行列Ｍの階数の概略半分より小さい場合は、係数行列Ｍｋを用いた連立１次方程式の数値計算を行い、係数行列Ｍｋの階数が正方行列Ｍの階数の概略半分より大きい場合は、正方行列Ｍの逆行列Ａを係数行列Ｍｋの逆行列Ａｋを用いて部分行列Ａｋａ，Ａｋｂ，Ａｋｃに展開し、これら部分行列Ａｋａ，Ａｋｂ，Ａｋｃを用いた連立１次方程式の数値計算を行うことで、解析するべき諸現象の物理的実態に対する数値解析において多くの時間を消費する多元連立１次方程式を少ない時間で効率的に解くことが可能となる。
【００５３】
次に、理工学シミュレータの構造を説明する。
【００５４】
図１に示されるように、本発明に係る理工学シミュレータは、計算するべき諸現象の具体的な複数（ｎ個）の解析対象（物理的実態）をそれぞれ離散化して得られるセグメントの集合に関する情報（Ｓ１，Ｓ２，…，Ｓｎ）を格納する第一の記憶手段としての記憶装置１４と、該複数の解析対象を計算する際に設定される夫々の複数の解析対象に対応する外力条件或いは励振条件を含む境界条件に関する情報（ｅ１，ｅ２，…，ｅｎ）を格納する第十の記憶手段としての記憶装置１５と、前記記憶装置１４に格納されたセグメントの集合の和集合Ｓに関する情報を格納する第二の記憶手段としての記憶装置１と、記憶装置１に格納された和集合Ｓに関する情報に対応する連立１次方程式の係数行列（第一の係数行列；正方行列）Ｍの要素を格納する第三の記憶手段としての記憶装置２と、前記記憶装置２に格納された係数行列Ｍの逆行列（第一の逆行列）Ａの要素を格納する第四の記憶手段としての記憶装置３と、前記記憶装置２に格納された係数行列Ｍの次元数（Ｌ×Ｌ行列であればＬ）を格納する第七の記憶手段としての記憶装置４と、前記記憶装置２に格納された係数行列Ｍの要素を前記記憶装置１４に格納されたセグメントの集合の情報によって抽出して得られる小行列（第二の係数行列）Ｍｋの要素を格納する第五の記憶手段としての記憶装置６と、前記記憶装置６に格納された小行列Ｍｋの次元数（Ｌｋ×Ｌｋ行列であればＬｋ）を格納する第八の記憶手段としての記憶装置５と、前記記憶装置３に格納された第一の逆行列Ａの要素を前記記憶装置１４に格納されたセグメントの集合の情報によって抽出して得られる小行列（第二の逆行列）Ａｋの要素を格納する第六の記憶手段としての記憶装置７と、前記記憶装置３に格納された和集合Ｓに対応する係数行列Ｍの逆行列Ａを前記記憶装置７に格納された小行列Ａｋが左上になるように基本変形して得られる行列を小行列Ａｋと残りの部分との境界に沿って四分割する分解において右上に位置する部分行列Ａｋａの要素を格納する第十二の記憶手段としての記憶装置８と、前記行列の分解において左下に位置する部分行列Ａｋｂの要素を格納する第十三の記憶手段としての記憶装置９と、前記行列の分解において右下に位置する部分行列Ａｋｃの要素を格納する第十一の記憶手段としての記憶装置１０と、前記記憶装置１５に格納された個々の解析対象に対応する外力条件或いは励振条件を含む境界条件に関する情報によって得られる個々の解析対象に対応した連立１次方程式の定数ベクトルｃｋの要素を格納する第九の記憶手段としての記憶装置１１と、前記記憶装置１０及び前記記憶装置９に格納された部分行列Ａｋｂ，Ａｋｃと前記記憶装置１１に格納された定数ベクトルｃｋとで構成される行列方程式（数１２）の未知ベクトルｙｋの解を格納する記憶装置１３と、前記記憶装置６に格納された小行列Ｍｋと前記記憶装置１１に格納された定数ベクトルｃｋとで構成される行列方程式（数６）から直接数値計算される、或いは前記記憶装置７に格納された小行列Ａｋと前記記憶装置８に格納された部分行列Ａｋａと前記記憶装置１１に格納された定数ベクトルｃｋと前記記憶装置１３に格納された未知ベクトルｙｋの解とから計算される解ベクトルｘｋを格納す��記憶装置１２と、適当な計算機言語で記述された本発明に係るアルゴリズムを実行して数値解析を行う演算手段としての演算装置１６とがいずれもデータバス１７に結合し、これら記憶装置１〜１５を用いて演算装置１６が必要に応じて計算を行い、その計算結果を書き込む構成になっている。
【００５５】
図１の理工学シミュレータの動作を図２の流れ図に従って説明する。
【００５６】
理工学シミュレータの演算装置１６は、まず、ステップ１０１で反復回数のカウント数ｑを１に初期化し、ステップ１０２で、計算するべき諸現象の具体的な複数の解析対象を離散化して得られるセグメントの集合に関する情報（Ｓ１，Ｓ２，…，Ｓｎ）を第一の記憶手段としての記憶装置１４に書き込む。
【００５７】
続いて、演算装置１６は、ステップ１０３で、複数の解析対象を計算する際に設定される夫々の複数の解析対象に対応する外力条件或いは励振条件を含む境界条件に関する情報（ｅ１，ｅ２，…，ｅｎ）を第十の記憶手段としての記憶装置１５に書き込み、続いて、ステップ１０４で、記憶装置１４に格納された複数の離散化されたセグメントの集合に関する情報を用いてこれらセグメントの集合全体の和集合Ｓに関する情報を計算し、その結果を第二の記憶手段としての記憶装置１に格納する。
【００５８】
続いて、演算装置１６は、ステップ１０５では、記憶装置１に格納された和集合Ｓに関する情報を用いてその和集合Ｓに対応する連立１次方程式の係数行列（第一の係数行列）Ｍを計算し、その係数行列Ｍの要素を第三の記憶手段としての記憶装置２に書き込む。続いて、ステップ１０６では、記憶装置２に格納された係数行列Ｍを用いてその係数行列Ｍの次元数Ｌ＝ｒａｎｋ（Ｍ）を計算する。次元数Ｌは、係数行列ＭがＬ×Ｌ行列であればＬである。この計算結果である次元数Ｌを第七の記憶手段としての記憶装置４に書き込む。ステップ１０７では、記憶装置２に格納された係数行列Ｍを用いてその係数行列Ｍの逆行列Ａ＝Ｍ−１を計算し、その計算結果である逆行列Ａの要素を第四の記憶手段としての記憶装置３に書き込む。
【００５９】
続いて、演算装置１６は、ステップ２０１では、記憶装置２に格納された係数行列Ｍの要素を記憶装置１４に格納された複数の離散化されたセグメントの集合に関する情報（Ｓ１，Ｓ２，…，Ｓｎ）によって抽出して小行列Ｍｋ（第二の係数行列）を作成し、その結果である小行列Ｍｋの要素を第五の記憶手段としての記憶装置６に書き込む。続いて、ステップ２０２では、記憶装置６に格納された小行列Ｍｋを用いてその小行列Ｍｋの次元数Ｌｋ＝ｒａｎｋ（Ｍｋ）を計算する。次元数Ｌｋは、小行列ＭｋがＬｋ×Ｌｋ行列であればＬｋである。この計算結果である次元数Ｌｋを第八の記憶手段としての記憶装置５に書き込む。
【００６０】
続いて、演算装置１６は、ステップ２０３では、記憶装置１５に格納された境界条件に関する情報（ｅ１，ｅ２，…，ｅｎ）によって現在計算対象としている個々の解析対象に対応した連立１次方程式の定数ベクトルｃｋを作成し、その結果である定数ベクトルｃｋの要素を第九の記憶手段としての記憶装置１１に書き込む。続いて、ステップ２０４では、記憶装置４に格納されている和集合Ｓに対応する係数行列Ｍの次元数Ｌと記憶装置５に格納されている現在計算対象としている個々のセグメント集合に対応する小行列Ｍｋの次元数Ｌｋとを比較する。
【００６１】
演算装置１６は、小行列Ｍｋの次元数Ｌｋが係数行列Ｍの次元数Ｌの半分より小さい（未満）場合（ｙｅｓ）、ステップ３０１へ進み、小行列Ｍｋの次元数Ｌｋが係数行列Ｍの次元数Ｌの半分より大きい（以上）場合（ｎｏ）、ステップ４０１へ進む。
【００６２】
演算装置１６は、ステップ３０１では、記憶装置６に格納された小行列Ｍｋと記憶装置１１に格納された定数ベクトルｃｋとで構成される行列方程式から消去法等による数値計算により解ベクトルｘｋを求め、その結果を記憶装置１２に書き込む。そして、演算装置１６は、ステップ５０１へ進む。
【００６３】
演算装置１６は、ステップ４０１では、記憶装置３に格納されている係数行列Ｍの逆行列Ａの要素を記憶装置１４に格納されている個々の解析対象に対応する離散化されたセグメントに関する情報（Ｓ１，Ｓ２，…，Ｓｎ）によって抽出して小行列（第二の逆行列）Ａｋを作成し、その小行列Ａｋの要素を第六の記憶手段としての記憶装置７に書き込む。
【００６４】
演算装置１６は、ステップ４０２では、記憶装置３に格納された和集合Ｓに対応する係数行列Ｍの逆行列Ａを記憶装置７に格納された小行列Ａｋが左上になるように基本変形し、基本変形された行列を記憶装置７に格納された小行列Ａｋを左上部分行列とした行列分解（四分割）を行い、得られる行列の分解において右上に位置する部分行列Ａｋａの要素を第十二の記憶手段としての記憶装置８に書き込み、左下に位置する部分行列Ａｋｂの要素を第十三の記憶手段としての記憶装置９に書き込み、右下に位置する部分行列Ａｋｃの要素を第十一の記憶手段としての記憶装置１０に書き込む。
【００６５】
演算装置１６は、ステップ４０３では、記憶装置１０及び記憶装置９に格納された部分行列Ａｋｂ，Ａｋｃと記憶装置１１に格納された定数ベクトルｃｋと記憶装置１３に格納された解ベクトルｙｋとを用いて計算を行い、その結果を記憶装置１２に書き込む。そして、演算装置１６は、ステップ５０１へ進む。
【００６６】
演算装置１６は、ステップ５０１では、小行列Ｍｋを抽出する工程（ステップ２０１）以下の一連の工程（ステップ３０１まで、またはステップ４０４まで）を、解析するべき対象の個数だけ（記憶装置１４に格納されているセグメントの集合の個数ｎだけ）反復するためにカウント数ｑを１つ増やし、ステップ５０２でカウント数ｑをｎ＋１と比較する。カウント数ｑがｎ＋１より大きくなければ、ｎｏとなりステップ２０１に戻る。カウント数ｑがｎ＋１より大きければ、ｙｅｓとなり本処理を終了する。
【００６７】
以上の動作を行う理工学シミュレータにあっては、個々の解析対象を離散化して数値解析する際に出現する連立１次方程式の係数行列Ｍｋの次元を計算し、その次元数Ｌｋと個々の解析対象を離散化して得られるセグメント集合の和集合Ｓを解析対象と見なしたときに出現する連立１次方程式の係数行列Ｍの次元数Ｌとを比較し、個々の解析対象に対応する係数行列Ｍｋの次元数Ｌｋが前記和集合Ｓに関する係数行列Ｍの次元数Ｌの概略半分より小さい場合は個々の解析対象に対応する係数行列Ｍｋを用いた連立１次方程式の数値計算を行い、そうでない場合は前記和集合Ｓに関する係数行列Ｍの逆行列Ａを部分行列展開し、その部分行列Ａｋを用いた連立１次方程式の数値計算を行うことで、諸現象の物理的実態に対する数値解析において多くの時間を消費する多元連立１次方程式を、個々の解析対象に対応する係数行列を全ての場合に用いる従来技術の計算法に比べて常に少ない時間で解く効果を有する。特に、個々の解析対象を離散化して得られるセグメント集合間に共通要素が多い場合は効果はきわめて大きく、この共通要素の和集合に対応する要素である全体集合の要素との比の三乗で効果が増幅される。例えば、全体集合の要素の中に共通要素が９０％を占める場合は、前述の従来技術の計算法と比べて７００倍程度の高速化が実現される。
【００６８】
【発明の効果】
本発明は次の如き優れた効果を発揮する。
【００６９】
（１）理工学シミュレータを用いる諸現象の物理的実態に対する数値解析において、数値解析に多くの時間を消費する多元連立１次方程式を、個々の解析対象に対応する係数行列を全ての場合に用いる従来技術の計算法に比べて常に少ない時間で解くことができ、数値解析の高速化・高効率化に効果を発揮する。
【図面の簡単な説明】
【図１】本発明の一実施形態を示す理工学シミュレータの構成図である。
【図２】図１の理工学シミュレータの動作流れ図である。
【符号の説明】
１  記憶装置（第二の記憶手段）
２  記憶装置（第三の記憶手段）
３  記憶装置（第四の記憶手段）
４  記憶装置（第七の記憶手段）
５  記憶装置（第八の記憶手段）
６  記憶装置（第五の記憶手段）
７  記憶装置（第六の記憶手段）
８  記憶装置（第十二の記憶手段）
９  記憶装置（第十三の記憶手段）
１０  記憶装置（第十一の記憶手段）
１１  記憶装置（第九の記憶手段）
１２  記憶装置
１３  記憶装置
１４  記憶装置（第一の記憶手段）
１５  記憶装置（第十の記憶手段）
１６  演算装置（演算手段）
１７  データバス
【図１】
2004171135.tif 000016
【図２】
2004171135.tif 000017