JP2006048637A - Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method - Google Patents
Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method Download PDFInfo
- Publication number
- JP2006048637A JP2006048637A JP2005105221A JP2005105221A JP2006048637A JP 2006048637 A JP2006048637 A JP 2006048637A JP 2005105221 A JP2005105221 A JP 2005105221A JP 2005105221 A JP2005105221 A JP 2005105221A JP 2006048637 A JP2006048637 A JP 2006048637A
- Authority
- JP
- Japan
- Prior art keywords
- block
- matrix
- vector
- divided
- tridiagonal
- 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.)
- Withdrawn
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
【課題】解析者が一定の手順を踏むだけで、一般の多重対角行列を係数行列とする巨大なサイズの連立一次方程式を高速で解くことができるようにする。
【解決手段】ブロック3重対角行列を係数行列として有する連立一次方程式を入力し(S100)、このブロック3重対角行列に基づいて生成されたブロック3重対角行列表記式を、4行4列のブロック正方行列を単位として、このブロック正方行列のサイズから決定される分割の回数の上限値まで分割・圧縮のプロセスを再帰的に繰り返す(S150〜S200)。そして、これらのプロセスを逆に辿ることによって連立一次方程式の解を求める(S210〜S240)。その際、このブロック正方行列の逆行列を所定の代数関係式を用いて計算させる(S140)。
【選択図】図2The present invention makes it possible to solve a large-size simultaneous linear equation having a general multi-diagonal matrix as a coefficient matrix at a high speed only by an analyst following a certain procedure.
A simultaneous linear equation having a block tridiagonal matrix as a coefficient matrix is input (S100), and a block tridiagonal matrix expression generated based on the block tridiagonal matrix is input into four rows. Using the block square matrix of 4 columns as a unit, the division / compression process is recursively repeated up to the upper limit of the number of divisions determined from the size of this block square matrix (S150 to S200). And the solution of simultaneous linear equations is calculated | required by tracing these processes reversely (S210-S240). At this time, an inverse matrix of the block square matrix is calculated using a predetermined algebraic relational expression (S140).
[Selection] Figure 2
Description
本発明は、連立一次方程式の計算プログラム、連立一次方程式の計算装置、及び連立一
次方程式の求解方法に関し、特にコンピュータを用いて一般的な多重対角行列を係数行列
とする連立一次方程式を直接法によって高速で解くための連立一次方程式の計算プログラ
ム、連立一次方程式の計算装置、及び連立一次方程式の求解方法に関する。
The present invention relates to a calculation program for simultaneous linear equations, a calculation apparatus for simultaneous linear equations, and a method for solving simultaneous linear equations, and more particularly to a method for directly calculating simultaneous linear equations having a general multi-diagonal matrix as a coefficient matrix using a computer. The present invention relates to a simultaneous linear equation calculation program, a simultaneous linear equation calculator, and a simultaneous linear equation solving method.
数理モデルの解析を通して自然現象のダイナミクスを調べることは、制御性の高い工学
システムを構築する上で重要である。通常、自然現象のダイナミクスは微分方程式や差分
方程式等の数理モデルによって記述されるが、これらの数理モデルは、ごく典型的な場合
を除いて、一般には解析的に解くことができない。
Examining the dynamics of natural phenomena through analysis of mathematical models is important for building highly controllable engineering systems. Normally, the dynamics of natural phenomena are described by mathematical models such as differential equations and difference equations, but these mathematical models cannot generally be solved analytically except in very typical cases.
したがって、数理モデルの解析にあたっては、計算装置(コンピュータ)を用いて数値
解を求めることが必須となる。このとき、計算装置では、微分方程式を差分法、有限要素
法、境界要素法、有限体積法などを用いて離散化した離散化方程式が数値処理されること
になる。数理モデルが最初から差分方程式で与えられる場合には、その差分方程式が計算
機の直接の計算対象となる。
Therefore, in the analysis of the mathematical model, it is essential to obtain a numerical solution using a calculation device (computer). At this time, in the calculation apparatus, a discretized equation obtained by discretizing the differential equation using a difference method, a finite element method, a boundary element method, a finite volume method, or the like is numerically processed. When the mathematical model is given as a difference equation from the beginning, the difference equation becomes a direct calculation target of the computer.
離散化方程式は、通常、求めるべき未知数(すなわち離散化された変数)をベクトル表
記した未知数ベクトルと、それに対応する既知の数値から成る既知数ベクトルとを用いて
、「係数行列×未知数ベクトル=既知数ベクトル」という形式で連立一次方程式として行
列表記される。なお、簡単のため、以降において、連立一次方程式を行列表記した際の係
数行列のことを、単に、連立一次方程式の係数行列と称することにする。
The discretization equation usually uses an unknown vector in which the unknown to be obtained (that is, a discretized variable) is expressed in vector and a known vector corresponding to the known numerical value, and “coefficient matrix × unknown vector = known. It is expressed in matrix form as simultaneous linear equations in the form of “number vector”. For the sake of simplicity, hereinafter, the coefficient matrix when the simultaneous linear equations are expressed in matrix will be simply referred to as the coefficient matrix of the simultaneous linear equations.
計算装置を用いて離散化方程式の数値解を求める方法の一つに直接法がある。直接法と
は、上述したように離散化方程式を連立一次方程式と見なすことによって、この連立一次
方程式をLU分解法やガウスの消去法などの代数的なアルゴリズムを用いて計算すること
によって未知数ベクトルを直接求める方法である。この方法を用いれば、丸め誤差以外の
計算誤差は理論上排除されるため、高い精度の数値解を得ることが可能となるが、その反
面、係数行列のサイズが巨大なとき(すなわち係数行列の要素数が非常に多いとき)には
、上記の代数的なアルゴリズムを用いて計算させるにあたり大容量のメモリを必要とする
上、非常に長い計算時間を要することになる。
There is a direct method as one of methods for obtaining a numerical solution of a discretized equation using a computer. The direct method, as described above, considers the discretized equation as a simultaneous linear equation, and calculates the unknown vector by calculating this simultaneous linear equation using an algebraic algorithm such as the LU decomposition method or the Gaussian elimination method. This is a direct method. If this method is used, calculation errors other than rounding errors are theoretically eliminated, so it is possible to obtain a highly accurate numerical solution. However, when the size of the coefficient matrix is large (that is, the elements of the coefficient matrix). When the number is very large), a large amount of memory is required for calculation using the algebraic algorithm described above, and a very long calculation time is required.
このような問題を解決するために、特許文献1には、直接法を用いて巨大なサイズの3
重対角行列を係数行列とする連立一次方程式を高速で数値計算するための解法プロセスに
基づく計算プログラムが開示されている。また、非特許文献1,2には、この解法プロセ
スの数理的側面の詳細が開示されている。
In order to solve such a problem,
A calculation program based on a solution process for numerically calculating simultaneous linear equations having a multi-diagonal matrix as a coefficient matrix at high speed is disclosed.
特許文献1に記載された解法プロセスを要約すると次のようになる(図3および図7を
参照)。
The solution process described in
・ステップ1:解析者によって入力された微分方程式、初期条件、境界条件を離散化し
て得られる連立一次方程式を「係数行列×未知数ベクトル=既知数ベクトル」という形式
に行列表記する。特許文献1には、この係数行列としてスカラー3重対角行列の場合が例
示されている。スカラー3重対角行列とは、すべての成分がスカラーである3重対角行列
のことを言う。
Step 1: A simultaneous linear equation obtained by discretizing a differential equation, an initial condition, and a boundary condition input by an analyst is expressed in a matrix format of “coefficient matrix × unknown number vector = known number vector”.
・ステップ2:解析者によって入力された分割数s(sは2以上の整数)に従って、上
記の係数行列であるスカラー3重対角行列をs個の小行列に分割する。それに伴い、上記
の未知数ベクトルもs個のグループに分割する。これにより、上記の連立一次方程式は、
これらの小行列ごとにs個の連立一次方程式のグループに分割されることになる(これを
s個の連立一次方程式群と呼ぶことにする)。ここで、上記の係数行列がスカラー3重対
角行列であることから、s−1本の分割線のすぐ両端に位置する未知数は、分割線の両側
に位置する隣接した2つの連立一次方程式群の間で共有されることになる(この未知数を
共有未知数と呼ぶことにする)。
Step 2: The scalar tridiagonal matrix that is the coefficient matrix is divided into s sub-matrices according to the division number s (s is an integer equal to or greater than 2) input by the analyst. Accordingly, the unknown vector is also divided into s groups. As a result, the above simultaneous linear equations are
Each of these sub-matrices is divided into a group of s simultaneous linear equations (this will be referred to as a group of s simultaneous linear equations). Here, since the coefficient matrix is a scalar tridiagonal matrix, the unknowns located at both ends of the s−1 dividing line are two adjacent simultaneous linear equation groups located on both sides of the dividing line. (This unknown is called shared unknown).
・ステップ3:上記の未知数ベクトルの最両端に位置する未知数(これを境界未知数と
呼ぶことにする)と上記の共有未知数だけを取り出して、それらの未知数(これを圧縮未
知数と呼ぶことにする)に関する連立一次方程式を形成する(このようにして形成された
連立一次方程式を圧縮連立一次方程式と呼ぶことにする)。
Step 3: Extract the unknowns located at the extreme ends of the unknown vector (referred to as boundary unknowns) and the shared unknown and extract those unknowns (referred to as compression unknowns). (The simultaneous linear equation thus formed will be referred to as a compression simultaneous linear equation).
・ステップ4:上記の圧縮連立一次方程式の係数行列の逆行列を通常の計算方法を用いて求める。この操作によって、上記の圧縮未知数の値がすべて求められる。 Step 4: The inverse matrix of the coefficient matrix of the above-mentioned compressed simultaneous linear equations is obtained using a normal calculation method. By this operation, all the values of the compression unknown are obtained.
・ステップ5:このようにして求められた圧縮未知数の値を上記のs個の連立一次方程
式群に代入する。すると、上記のs個の連立一次方程式群は完全に線形分離する(すなわ
ち共有未知数を持たない完全に独立したs個の連立方程式群に帰着する)ことになるので
、これらの線形分離されたs個の連立一次方程式群の各係数行列の逆行列を通常の計算方法を用いて求めることによって、残りの未知数をすべて決定することができる。
この解法の利点は、解析対象である3重対角行列を係数行列として有する連立一次方程式を複数の小さな連立一次方程式に体系的に分割できる点にある。これによって、解析対象である連立一次方程式の係数行列が巨大なサイズの場合であっても、小行列を係数行列とする複数の連立一次方程式に体系的に分割することによって、個々の連立一次方程式の計算を並列して行わせることが可能となる。その結果、複数の中央演算処理装置(CPU)を用いることによって個々の連立一次方程式の計算を並列的に行わせることが可能となるので、巨大なサイズの連立一次方程式をLU分解法やガウスの消去法などの直接法における既存の代数的なアルゴリズムを用いて求める場合と比較して、全体の計算時間を大幅に短縮できるという利点がある。
Step 5: The compression unknown value thus obtained is substituted into the s simultaneous linear equations. Then, the above s simultaneous linear equations are completely linearly separated (ie, reduced to completely independent s simultaneous equations having no shared unknowns), so that these linearly separated s All the remaining unknowns can be determined by obtaining an inverse matrix of each coefficient matrix of a group of simultaneous linear equations using a normal calculation method.
The advantage of this solution is that a simultaneous linear equation having a tridiagonal matrix to be analyzed as a coefficient matrix can be systematically divided into a plurality of small simultaneous linear equations. As a result, even if the coefficient matrix of the simultaneous linear equations to be analyzed is a huge size, each simultaneous linear equation is systematically divided into multiple simultaneous linear equations with a small matrix as the coefficient matrix. Can be performed in parallel. As a result, by using a plurality of central processing units (CPUs), it is possible to perform calculation of individual simultaneous linear equations in parallel. There is an advantage that the entire calculation time can be greatly shortened as compared with the case of using an existing algebraic algorithm in the direct method such as the elimination method.
さらに、数値計算の対象となる連立一次方程式の係数行列のサイズが非常に大きな場合
には、解析者によって入力された分割の回数に従って上記のステップ2からステップ4ま
でのプロセスを再帰的に繰り返すことも開示されている。これによって、小行列のサイズ
を次第に小さくすることができるので、これらの小行列の逆行列を短時間で計算させるこ
とが可能となる。
Furthermore, when the size of the coefficient matrix of the simultaneous linear equations to be numerically calculated is very large, the
このように、特許文献1に記載された連立一次方程式の解法プロセスは、直接法を用い
ているので計算精度が高く、その解法自体も巧みなものであり、既存の直接法の計算アル
ゴリズムを用いた場合と比較して計算時間を大幅に短縮できる点において非常に優れたも
のであるが、更なる発展の可能性として以下に示す2つの課題を抱える。
As described above, the solving process of simultaneous linear equations described in
<課題1>特許文献1においては、計算装置内で連立一次方程式の係数行列を小行列に
分割する際に、係数行列の分割数(分割のサイズ)及び分割の回数の最適値を明確に規定していない。
<
これに関して、特許文献1の図8(A)には、分割数が多くなるに従って計算時間が短
くなる傾向があることが示されている。この場合、分割数を250(つまり、分割された
小行列のサイズが400×400)としたときの計算時間が最も短いことがわかる。更に
、図8(B)には、分割数が50までは急激に計算時間が減少し、それ以上の分割数では
緩やかに計算時間が減少していく傾向があることも示されている。また、図12(A),
12(B)には、分割の回数が多くなるに従って計算時間が短くなる傾向があることが示
されている。
In this regard, FIG. 8A of
12 (B) shows that the calculation time tends to be shortened as the number of divisions increases.
しかしながら、解析者が計算装置を利用する際に重要なことの一つは、入力する条件の数が少ないことと、各条件に代入する値の選択の自由度が小さいことである。解析者が特許文献1に記載された計算装置を使用した場合、解析者は連立一次方程式の係数行列の分割のサイズ及び分割の回数を入力しなければならない。また、このとき、解析者が上記のような傾向に関する情報を有していたとしても、実際には、それだけでは分割のサイズ及び分割の回数に対する選択の余地が大きすぎる。このことは、係数行列のサイズが大きくなるに従ってより顕著となる。さらに、解析者が入力する入力対象は解析者のレベル又は解析対象となる数理モデルの種類によって異なるのが通常であるが、特許文献1ではそのことが考慮されていない。
However, when an analyst uses a computing device, one of the important things is that the number of conditions to be input is small and the degree of freedom of selection of values to be substituted for each condition is small. When the analyst uses the calculation apparatus described in
このようなことから、特許文献1に記載された計算装置は、数値解析に長けた専門的な
解析者も含めた一般の解析者にとって扱いにくいといった課題が残る。
For this reason, the calculation device described in
<課題2>特許文献1においては、解析対象となる連立一次方程式の係数行列がスカラ
ー3重対角行列になる場合が例示されているが、一般には、係数行列がスカラー3重対角
行列になるとは限らない。
<
連立一次方程式の係数行列がスカラー3重対角行列となる典型的な例は、解析対象とな
るシステムが要素間の局所相互作用のみを有する場合である。
A typical example in which the coefficient matrix of the simultaneous linear equations is a scalar tridiagonal matrix is when the system to be analyzed has only local interaction between elements.
しかしながら、解析対象となるシステムの規模が大きくなるにつれて、隣接する要素間
の局所相互作用はもちろんのこと、離れた要素間の非局所(長距離)相互作用の影響も無
視できなってくる。それに伴い、要素間の情報伝達に必然的にタイムラグも生じることに
なる。このような大規模システムは、一般には、汎関数偏微分方程式によってモデル化さ
れる。汎関数偏微分方程式には、2回までの微分項以外に非局所相互作用の効果を表す積
分項(又は、3次以上の高階の微分項)が含まれている。このような汎関数偏微分方程式
を離散化して得られる離散化方程式には、上記の積分項を離散化した総和項(又は上記の
高階微分の離散化項)が出現する。このような離散化方程式を行列表記した連立一次方程
式の係数行列はスカラー3重対角行列にはならず、簡単な場合であってもスカラー4重対
角行列以上の帯行列(すなわちスカラー多重対角行列)になる。
However, as the scale of the system to be analyzed increases, not only the local interaction between adjacent elements but also the influence of non-local (long-distance) interaction between distant elements can be ignored. Along with this, a time lag will inevitably occur in information transmission between elements. Such a large-scale system is generally modeled by a functional partial differential equation. The functional partial differential equation includes an integral term representing the effect of nonlocal interaction (or a higher-order differential term of the third or higher order) in addition to the differential term up to twice. In a discretized equation obtained by discretizing such a functional partial differential equation, a summation term obtained by discretizing the integral term (or the discretized term of the higher order differential) appears. The coefficient matrix of the simultaneous linear equations expressing such discretized equations in a matrix is not a scalar tridiagonal matrix, and even in a simple case, a band matrix (that is, a scalar multiple pair or more). Square matrix).
したがって、特許文献1に記載された計算装置は、要素間に非局所相互作用が存在する
ような大規模システムのダイナミクスを数値解析する際には扱いにくいといった課題が残
る。
本発明は、上記の2つの課題を同時に解決するために為されたものであり、その目的と
するところは、解析者が一定の手順を踏むだけで、一般的な多重対角行列を係数行列とす
る巨大なサイズの連立一次方程式を高速に解くことを可能とする連立一次方程式の計算プ
ログラム、連立一次方程式の計算装置、及び連立一次方程式の求解方法を提供することに
ある。
The present invention has been made in order to solve the above two problems at the same time. The object of the present invention is to convert a general multi-diagonal matrix into a coefficient matrix just by following a certain procedure. It is intended to provide a simultaneous linear equation calculation program, a simultaneous linear equation calculation apparatus, and a simultaneous linear equation solving method capable of solving a large-size simultaneous linear equation at high speed.
上記目的を達成するために、請求項1記載の本発明は、連立一次方程式を解くためにコ
ンピュータを、前記連立一次方程式の係数行列として正方行列を成分とするブロック3重
対角行列の入力を促す係数行列入力手段と、前記ブロック3重対角行列の入力に基づき、
前記連立一次方程式からブロック3重対角行列表記式(ブロック3重対角行列×ブロック
未知数ベクトル=ブロック既知数ベクトル)を生成するブロック3重対角行列表記式生成
手段と、前記ブロック3重対角行列のサイズから分割の回数を決定する分割回数決定手段
と、前記ブロック3重対角行列表記式を、4行4列のブロック正方行列を単位として複数
の分割ブロック行列表記式(分割ブロック行列×分割ブロック未知数ベクトル=分割ブロ
ック既知数ベクトル)として分割するブロック行列表記式分割手段と、前記複数の分割ブ
ロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を用いて演算する分割
ブロック逆行列演算手段と、前記複数の分割ブロック未知数ベクトルと、前記複数の分割
ブロック既知数ベクトルと、前記複数の分割ブロック逆行列とから、複数の繰り込みブロ
ック行列表記式(分割ブロック未知数ベクトル=分割ブロック逆行列×分割ブロック繰り
込みベクトル)を生成する繰り込みブロック行列表記式生成手段と、前記複数の繰り込み
ブロック行列表記式の境界部分に位置するベクトル成分のみを取り出し圧縮することによ
って、圧縮ブロック行列表記式(圧縮ブロック行列×圧縮ブロック未知数ベクトル=圧縮
ブロック繰り込みベクトル)を生成する圧縮ブロック行列表記式生成手段と、前記決定さ
れた分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分割から圧縮ま
での操作を再帰的に繰り返す再帰操作制御手段と、前記再帰操作制御手段によって前記分
割の回数の上限まで繰り返されて得られたすべての圧縮ブロック行列表記式における圧縮
ブロック未知数ベクトルの値を、前記分割ブロック逆行列生成手段で生成された複数の分
割ブロック逆行列を前記分割から圧縮までの操作とは逆の順番に施すことによって求める
逆算求解手段として機能させることを特徴とする。
In order to achieve the above object, the present invention according to
A block tridiagonal matrix notation generating means for generating a block tridiagonal matrix notation (block tridiagonal matrix × block unknown vector = block known number vector) from the simultaneous linear equations, and the block triple pair A division number determination means for determining the number of divisions based on the size of the angle matrix, and the block tridiagonal matrix notation formula are divided into a plurality of divided block matrix notation formulas (divided block matrixes) in units of a 4 × 4 block square matrix. A block matrix notation dividing unit that divides as x divided block unknown vector = divided block known number vector) and a divided block inverse matrix that is an inverse matrix of the plurality of divided block matrices using a predetermined algebraic relational expression A block inverse matrix computing means, the plurality of divided block unknown vectors, the plurality of divided block known vectors, A plurality of renormalization block matrix notation generating means for generating a plurality of renormalization block matrix notations (divided block unknown vector = divided block inverse matrix × division block renormalization vector) from the plurality of division block inverse matrices; Compressed block matrix notation generating means for generating a compressed block matrix notation (compressed block matrix × compressed block unknown vector = compressed block renormalization vector) by extracting and compressing only vector components located at the boundary portion of the matrix notation; The recursive operation control means for recursively repeating the operations from the division to the compression with respect to the compressed block matrix expression with the determined number of divisions as an upper limit, and the number of divisions by the recursive operation control means. All compressed blocks obtained by repeating to the upper limit The inverse calculation solution for obtaining the value of the compressed block unknown vector in the matrix notation formula by applying the plurality of divided block inverse matrices generated by the divided block inverse matrix generation means in the reverse order from the operation from the division to the compression. It is made to function as a means.
請求項2記載の本発明は、請求項1記載の連立一次方程式の計算プログラムであって、
前記分割回数決定手段は、前記ブロック3重対角行列のサイズを2のべき乗級数展開した
際の各項の次数に基づき、前記分割の回数を決定することを特徴とする。
The present invention described in
The division number determining means determines the number of divisions based on the order of each term when the size of the block tridiagonal matrix is expanded to a power-of-two series.
請求項3記載の本発明は、請求項1又は2記載の連立一次方程式の計算プログラムであ
って、前記分割回数決定手段は、前記ブロック3重対角行列のサイズをpとしたとき、関
係式p=2f+2を満たすような自然数fとして前記分割の回数を決定することを特徴とす
る。
A third aspect of the present invention is the simultaneous linear equation calculation program according to the first or second aspect, wherein the division number determining means has a relational expression when the size of the block tridiagonal matrix is p. The number of divisions is determined as a natural number f that satisfies p = 2 f + 2 .
請求項4記載の本発明は、連立一次方程式を解くための計算装置であって、前記連立一
次方程式の係数行列として正方行列を成分とするブロック3重対角行列の入力を促す係数
行列入力手段と、前記ブロック3重対角行列の入力に基づき、前記連立一次方程式からブ
ロック3重対角行列表記式(ブロック3重対角行列×ブロック未知数ベクトル=ブロック
既知数ベクトル)を生成するブロック3重対角行列表記式生成手段と、前記ブロック3重
対角行列のサイズから分割の回数を決定する分割回数決定手段と、前記ブロック3重対角
行列表記式を、4行4列のブロック正方行列を単位として複数の分割ブロック行列表記式
(分割ブロック行列×分割ブロック未知数ベクトル=分割ブロック既知数ベクトル)とし
て分割するブロック行列表記式分割手段と、前記複数の分割ブロック行列の逆行列である
分割ブロック逆行列を所定の代数関係式を用いて演算する分割ブロック逆行列演算手段と
、前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式(分割ブロ
ック未知数ベクトル=分割ブロック逆行列×分割ブロック繰り込みベクトル)を生成する
繰り込みブロック行列表記式生成手段と、前記複数の繰り込みブロック行列表記式の境界
部分に位置するベクトル成分のみを取り出し圧縮することによって、圧縮ブロック行列表
記式(圧縮ブロック行列×圧縮ブロック未知数ベクトル=圧縮ブロック繰り込みベクトル
)を生成する圧縮ブロック行列表記式生成手段と、前記決定された分割の回数を上限とし
て、前記圧縮ブロック行列表記式に対して前記分割から圧縮までの操作を再帰的に繰り返
す再帰操作制御手段と、前記再帰操作制御手段によって前記分割の回数の上限まで繰り返
されて得られたすべての圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの
値を、前記分割ブロック逆行列生成手段で生成された複数の分割ブロック逆行列を前記分
割から圧縮までの操作とは逆の順番に施すことによって求める逆算求解手段とからなるこ
とを特徴とする。
The present invention according to claim 4 is a computing device for solving simultaneous linear equations, wherein coefficient matrix input means for prompting input of a block tridiagonal matrix having a square matrix as a coefficient matrix of the simultaneous linear equations Based on the input of the block tridiagonal matrix, a block triple that generates a block tridiagonal matrix expression (block tridiagonal matrix × block unknown vector = block known vector) from the simultaneous linear equations Diagonal matrix notation generation means, division number determination means for determining the number of divisions based on the size of the block tridiagonal matrix, and the block tridiagonal matrix notation are expressed as a 4 × 4 block square matrix. Is a block matrix notation that divides as a plurality of divided block matrix notation formulas (divided block matrix x divided block unknown vector = divided block known number vector) Dividing means, divided block inverse matrix calculating means for calculating a divided block inverse matrix that is an inverse matrix of the plurality of divided block matrices using a predetermined algebraic relational expression, the plurality of divided block unknown vectors, the plurality of divided block unknown vectors, Renormalization block matrix notation generating means for generating a plurality of renormalization block matrix expressions (division block unknown vector = division block inverse matrix × division block renormalization vector) from the division block known number vector and the plurality of division block inverse matrices. And compression to generate a compressed block matrix notation (compressed block matrix × compressed block unknown vector = compressed block renormalization vector) by extracting and compressing only the vector components located at the boundaries of the plurality of renormalization block matrix notations A block matrix notation generation means, and the determined Repetitive operation control means for recursively repeating the operations from the division to compression on the compressed block matrix notation, with the upper limit of the number of divisions, and the recursive operation control means being repeated up to the upper limit of the number of divisions. The compressed block unknown vector values in all the compressed block matrix notation expressions obtained in the above are used in the order reverse to the operation from the division to compression of the plurality of divided block inverse matrices generated by the divided block inverse matrix generation means. It is characterized by comprising reverse calculation solution means obtained by applying to the above.
請求項5記載の本発明は、コンピュータを用いて連立一次方程式を解くための計算方法
であって、前記連立一次方程式の係数行列として正方行列を成分とするブロック3重対角
行列の入力を促す第1ステップと、前記ブロック3重対角行列の入力に基づき、前記連立
一次方程式からブロック3重対角行列表記式(ブロック3重対角行列×ブロック未知数ベ
クトル=ブロック既知数ベクトル)を生成する第2ステップと、前記ブロック3重対角行
列のサイズから分割の回数を決定する第3ステップと、前記ブロック3重対角行列表記式
を、4行4列のブロック正方行列を単位として複数の分割ブロック行列表記式(分割ブロ
ック行列×分割ブロック未知数ベクトル=分割ブロック既知数ベクトル)として分割する
第4ステップと、前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定
の代数関係式を用いて演算する第5ステップと、前記複数の分割ブロック未知数ベクトル
と、前記複数の分割ブロック既知数ベクトルと、前記複数の分割ブロック逆行列とから、
複数の繰り込みブロック行列表記式(分割ブロック未知数ベクトル=分割ブロック逆行列
×分割ブロック繰り込みベクトル)を生成する第6ステップと、前記複数の繰り込みブロ
ック行列表記式の境界部分に位置するベクトル成分のみを取り出し圧縮することによって
、圧縮ブロック行列表記式(圧縮ブロック行列×圧縮ブロック未知数ベクトル=圧縮ブロ
ック繰り込みベクトル)を生成する第7ステップと、前記決定された分割の回数を上限と
して、前記圧縮ブロック行列表記式に対して前記第4ステップから第7ステップまでを再
帰的に繰り返す第8ステップと、前記第8ステップによって前記分割の回数の上限まで繰
り返されて得られたすべての圧縮ブロック行列表記式における圧縮ブロック未知数ベクト
ルの値を、前記第5ステップで生成された複数の分割ブロック逆行列を前記分割から圧縮
までの操作とは逆の順番に施すことによって求める第9ステップとからなることを特徴と
する。
The present invention according to claim 5 is a calculation method for solving simultaneous linear equations using a computer, and prompts input of a block tridiagonal matrix having a square matrix as a coefficient matrix of the simultaneous linear equations. Based on the first step and the input of the block tridiagonal matrix, a block tridiagonal matrix expression (block tridiagonal matrix × block unknown vector = block known vector) is generated from the simultaneous linear equations. A second step, a third step of determining the number of divisions from the size of the block tridiagonal matrix, and a block tridiagonal matrix notation formula, wherein a block square matrix of 4 rows and 4 columns has a plurality of units. A fourth step of dividing as a divided block matrix notation (divided block matrix × divided block unknown vector = divided block known vector), and the plurality of divided A fifth step of calculating a divided block inverse matrix which is an inverse matrix of the block matrix using a predetermined algebraic relational expression, the plurality of divided block unknown vectors, the plurality of divided block known number vectors, and the plurality of divided blocks From the block inverse matrix,
Sixth step of generating a plurality of renormalization block matrix notation formulas (divided block unknown vector = divided block inverse matrix × division block renormalization vector), and extracting only vector components located at the boundary of the plurality of renormalization block matrix notations A compressed block matrix notation (7th step of generating a compressed block matrix x compressed block unknown vector = compressed block renormalization vector) by compressing the compressed block matrix notation with the determined number of divisions as an upper limit; Compressed blocks in all the compressed block matrix notations obtained by repetitively repeating the fourth to seventh steps with respect to the eighth step and the eighth step up to the upper limit of the number of divisions The value of the unknown vector is calculated in the fifth step. The ninth step is characterized in that the ninth step is obtained by applying the generated plurality of divided block inverse matrices in the reverse order to the operation from the division to the compression.
請求項6記載の本発明は、請求項5記載の連立一次方程式の求解方法であって、前記第
3のステップにおいて、前記ブロック3重対角行列のサイズを2のべき乗級数展開した際
の各項の次数に基づき、前記分割の回数を決定することを特徴とすることを特徴とする。
The present invention according to claim 6 is a method for solving simultaneous linear equations according to claim 5, wherein in the third step, each size when the size of the block tridiagonal matrix is expanded to a power series of 2 is used. The number of divisions is determined based on the order of terms.
請求項7記載の本発明は、請求項5又は6記載の連立一次方程式の求解方法であって、
前記第3のステップにおいて、前記ブロック3重対角行列のサイズをpとしたとき、関係
式p=2f+2を満たすような自然数fとして前記分割の回数を決定することを特徴とする
。
The present invention according to claim 7 is a method for solving simultaneous linear equations according to claim 5 or 6,
In the third step, when the size of the block tridiagonal matrix is p, the number of divisions is determined as a natural number f that satisfies the relational expression p = 2f + 2 .
本発明によれば、連立一次方程式の係数行列としてブロック3重対角行列の入力を促し
、入力されたブロック3重対角行列の逆行列を求める際に、4行4列のブロック正方行列
を分割の単位として、このブロック正方行列の逆行列を予めメインメモリに記憶された所
定の代数関係式を用いて求めることにより、一般的な多重対角行列を係数行列として有す
る巨大なサイズの連立一次方程式の解を短時間で求めることが可能となる。
According to the present invention, when the input of a block tridiagonal matrix is prompted as a coefficient matrix of simultaneous linear equations and an inverse matrix of the input block tridiagonal matrix is obtained, a 4 × 4 block square matrix is obtained. By obtaining an inverse matrix of this block square matrix as a unit of division using a predetermined algebraic relational expression stored in the main memory in advance, a huge size simultaneous linear having a general multi-diagonal matrix as a coefficient matrix It is possible to find the solution of the equation in a short time.
また、本発明によれば、上記のように、4行4列のブロック正方行列を分割の単位とし
たことによって、分割数及び分割の回数を一意に決定することが可能となる。
Further, according to the present invention, as described above, the number of divisions and the number of divisions can be uniquely determined by using a 4 × 4 block square matrix as a unit of division.
さらに、本発明によれば、上記の係数行列として、ブロックN(Nは4以上の整数)重
対角行列やスカラーq重対角行列(qは3以上の整数)の入力を促してもよく、この場合
には、この係数行列をブロック3重対角行列に変換することによって、上記と同様の効果
を得ることが可能となるだけでなく、解析者のレベル又は解析対象となる数理モデルの種
類に応じた入力対象を多段階的に設定できるので、解析者にとってより扱いやすい計算装
置を提供することが可能となる。
Furthermore, according to the present invention, it is possible to prompt the input of a block N (N is an integer of 4 or more) multi-diagonal matrix or a scalar q multi-diagonal matrix (q is an integer of 3 or more) as the coefficient matrix. In this case, by converting this coefficient matrix into a block tridiagonal matrix, it is possible not only to obtain the same effect as described above, but also the level of the analyst or the mathematical model to be analyzed. Since the input target according to the type can be set in multiple stages, it is possible to provide a computing device that is easier to handle for the analyst.
さらに、本発明によれば、係数行列として行列を単位成分とするブロック多重対角行列
を扱うことによって、通常の局所相互作用のみを有する数理モデルから複雑な非局所相互
作用を有するような数理モデルまで、幅広い工学分野における数理モデルを数値計算の対
象とすることが可能となる。
Furthermore, according to the present invention, a mathematical model having a complex nonlocal interaction from a mathematical model having only a normal local interaction by treating a block multi-diagonal matrix having a matrix as a unit component as a coefficient matrix. Until now, mathematical models in a wide range of engineering fields can be targeted for numerical calculations.
まず、本発明の理解を容易にするために、本明細書において使用される主要な用語につ
いて説明する。
First, in order to facilitate understanding of the present invention, main terms used in this specification will be described.
「スカラー行列」とは、スカラーを単位成分とする行列のことを表すものとする。例え
ば、スカラー正方行列とは、スカラーを単位成分とする正方行列のことを意味する。
A “scalar matrix” represents a matrix having a scalar as a unit component. For example, a scalar square matrix means a square matrix having a scalar as a unit component.
次に、「ブロック行列」とは、行列を単位成分とする行列のことを表すものとする。例
えば、ブロックN(Nは3以上の整数)重対角行列とは、正方行列を単位成分とするN重
対角行列のことを意味する。また、ブロックN重対角行列のN重対角成分のことをブロッ
クN重対角成分と称することにする。なお、N重対角行列において、対角線から最も遠く
離れている非零成分までの距離zを半帯幅と呼び、N重対角行列が対称行列(すなわち、
Nが3以上の奇数)の場合、半帯幅zはz=(N−1)/2と定義される。また、本発明
においては、N重対角行列が非対称行列(すなわち、Nが4以上の偶数)の場合には、半
帯幅zをz=N/2と定義することにする。
Next, the “block matrix” represents a matrix having a matrix as a unit component. For example, the block N (N is an integer of 3 or more) multi-diagonal matrix means an N-multi diagonal matrix having a square matrix as a unit component. Further, the N double diagonal component of the block N double diagonal matrix is referred to as a block N double diagonal component. In the N-fold diagonal matrix, the distance z from the diagonal line to the non-zero component farthest away from the diagonal is called the half band width, and the N-fold diagonal matrix is a symmetric matrix (ie,
If N is an odd number greater than or equal to 3, the half band width z is defined as z = (N−1) / 2. In the present invention, when the N-fold diagonal matrix is an asymmetric matrix (that is, N is an even number of 4 or more), the half-band width z is defined as z = N / 2.
また、単位成分がスカラー又は行列のどちらでもよい場合には、「一般的な行列」と称
することにする。例えば、一般的な多重対角行列とは、スカラーを単位成分とする多重対
角行列であってもよいし、行列を単位成分とするブロック多重対角行列であってもよいも
のとする。
また、単に「行列」と言った場合には、その単位成分の種類は文脈に従うものとする。
When the unit component may be either a scalar or a matrix, it will be referred to as a “general matrix”. For example, a general multi-diagonal matrix may be a multi-diagonal matrix having a scalar as a unit component or a block multi-diagonal matrix having a matrix as a unit component.
In addition, when the term “matrix” is simply used, the type of unit component depends on the context.
また、本明細書中で用いられる行列は、特に断らない限り、単位成分の如何を問わず正方
行列のことを意味するものとする。
The matrix used in this specification means a square matrix regardless of the unit component unless otherwise specified.
次に、「ブロックベクトル」とは、ベクトルを単位成分とするベクトルのことを表すも
のとする。例えば、ブロック未知数ベクトルとは、ベクトルを単位成分とする未知数ベク
トルのことを意味する。なお、単位成分がスカラーの場合には、単に「ベクトル」と称す
ることにする。
Next, the “block vector” represents a vector having a vector as a unit component. For example, the block unknown vector means an unknown vector having a vector as a unit component. When the unit component is a scalar, it is simply referred to as “vector”.
また、「零行列」とは、すべての成分が0である行列を表すものとする。したがって、
「非零行列」とは、すべての成分のうち0でない要素を少なくとも一つ有する行列のこと
を表すものとする。
The “zero matrix” represents a matrix in which all components are zero. Therefore,
The “non-zero matrix” represents a matrix having at least one non-zero element among all the components.
なお、本実施形態においては、ブロックN重対角行列のブロックN重対角成分がすべて
非零行列であることを想定しているが、もちろん、その中に零行列が含まれていてもかま
わない。
In this embodiment, it is assumed that the block N double diagonal components of the block N double diagonal matrix are all non-zero matrices, but of course, a zero matrix may be included therein. Absent.
また、行列のサイズについてであるが、「ブロック行列のサイズ」と言った場合には、
その単位成分である正方行列を単位とした行または列の個数のことを意味するものとする
。例えば、ブロック行列のサイズの値がpであるとは、正方行列を単位とするp行p列の
ブロック行列、つまり単位成分である正方行列をp2個有するブロック行列、のことを意
味する。
Also, regarding the size of the matrix, if you say "block matrix size",
It means the number of rows or columns in the unit of the square matrix that is the unit component. For example, a block matrix size value p means a block matrix of p rows and p columns with a square matrix as a unit, that is, a block matrix having p 2 square matrices as unit components.
次に、図面を参照して本発明に係る実施形態について詳細に説明する。 Next, embodiments according to the present invention will be described in detail with reference to the drawings.
解析対象となる連立一次方程式の係数行列の種類又は解析者のレベルに応じて、特に3
つの実施形態について図面を用いて詳細に説明する。
Depending on the type of coefficient matrix of the simultaneous linear equations to be analyzed or the level of the analyst, in particular, 3
One embodiment will be described in detail with reference to the drawings.
(第1の実施形態)
図1は、本発明の第1の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。
(First embodiment)
FIG. 1 is a conceptual diagram showing a schematic configuration of a simultaneous linear equation calculation apparatus according to the first embodiment of the present invention.
第1の実施形態は、解析対象となる連立一次方程式の係数行列がブロック3重対角行列
の場合を想定したものである。
The first embodiment assumes that the coefficient matrix of the simultaneous linear equations to be analyzed is a block tridiagonal matrix.
図1に示すように、第1の実施形態に係る計算装置は、入力装置100と、出力装置2
00と、中央演算処理装置(CPU)300と、メインメモリ400と、サブメモリ50
0とを外部バス600を介して連結して構成されている。
As shown in FIG. 1, the computing device according to the first embodiment includes an
00, a central processing unit (CPU) 300, a
0 is connected via an external bus 600.
入力装置100は、解析対象となる連立一次方程式と、それを解くために必要となる初
期条件、境界条件などの各種解析条件を入力するための装置であって、例えば、キーボー
ド、タッチパネル、タブレットなどが使用可能である。
The
出力装置200は、入力装置100から入力された連立一次方程式や各種解析条件を表
示したり、解析結果を表示したりするための装置であって、例えば、CRTディスプレイ
、TFTディスプレイ、プラズマディスプレイなどの各種ディスプレイや、インクジェッ
トプリンタ、レーザープリンタなどの各種プリンタなどが使用可能である。
The
メインメモリ400は、本実施形態に係る連立一次方程式の計算プログラムを記憶する
RAM(Random Access Memory)やROM(Read Only
Memory)などの記憶装置から構成されている。
The
Memory) or the like.
中央演算処理装置300は、メインメモリ400に記憶されている上記の計算プログラ
ムに従って、入力装置100から入力された各種解析条件を用いて連立一次方程式の解を
求め、その解析結果を表、グラフ、図などにして出力装置200に出力する装置である。
The
中央演算処理装置300は、メインメモリ400に記憶されている上記の計算プログラム
を実効することによって、本実施形態に係る連立一次方程式の計算装置の各機能(請求項
に記載された各手段)を実現する。
The
サブメモリ500は、中央演算処理装置300が計算の途中で求めたブロック行列やブ
ロック逆行列などの値を一次的に記憶させておくための装置であり、RAMやハードディ
スクなどの記憶装置が使用可能である。サブメモリ500は、解析条件記憶領域510と
、ブロック3重対角行列表記式記憶領域520と、第1基本ブロック逆行列記憶領域54
01と、第1圧縮ブロック行列表記式記憶領域5501と、第r基本ブロック逆行列記憶領
域540rと、第r圧縮ブロック行列表記式記憶領域550rと、第f(最終)基本ブロッ
ク逆行列記憶領域540f、及び第f(最終)圧縮ブロック行列表記式記憶領域550f
などの領域に区分されている。ここで、rは2≦r≦f−1を満たす整数である。
The
0 1 , first compressed block matrix
It is divided into areas such as Here, r is an integer that satisfies 2 ≦ r ≦ f−1.
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
The calculation apparatus of the present embodiment configured as described above performs numerical calculation on the simultaneous linear equations to be analyzed by the following processing procedure.
図2は、図1に示した第1の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。
FIG. 2 is a flowchart showing a processing procedure of numerical calculation performed by the calculation apparatus of the first embodiment shown in FIG.
まず、中央演算処理装置300は、入力装置100を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル=既知数ベクトル」として行列表記した際の係数行
列として、z行z列の正方行列を単位成分とするp行p列のブロック3重対角行列の入力
を解析者に促す(ステップ100)。詳細には、中央演算処理装置300は、上記のブロ
ック3重対角行列中のブロック3重対角成分のみの入力を解析者に促す。
First, the
また、ステップ100において、中央演算処理装置300は、ブロック3重対角行列の
サイズの値pとして2のべき乗の値の入力を解析者に促すが、ブロック3重対角行列の単
位成分である正方行列のサイズの値zに関しては自然数であるということ以外に特に制限
は設けない。
In
なお、本実施形態においては、上述したように、ブロック3重対角行列のサイズの値p
として2のべき乗の値を入力させるようにしているが、それ以外の一般の自然数を入力さ
せてもよい。これについては後述する。
In the present embodiment, as described above, the value p of the size of the block tridiagonal matrix.
However, it is also possible to input a general natural number other than that. This will be described later.
また、ステップ100において、中央演算処理装置300は、上述した係数行列として
のブロック3重対角行列の入力に対応して、ブロック未知数ベクトルとしてz行1列の未
知数ベクトルを単位成分とするp行1列のブロック未知数ベクトルの入力、及び、ブロッ
ク既知数ベクトルとしてz行1列の未知数ベクトルを単位成分とするp行1列のブロック
既知数ベクトルの入力を解析者に促す。
Further, in
さらに、ステップ100において、中央演算処理装置300は、解析対象である連立一
次方程式を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析
者に促す。
Further, in
そして、中央演算処理装置300は、このようにして入力されたブロック3重対角行列
のサイズの値p、ブロック3重対角行列の単位成分である正方行列のサイズの値z、初期
条件、及び境界条件などの解析条件を、サブメモリ500の解析条件記憶領域510に記
憶させる。
The
次に、中央演算処理装置300は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてブロック3重対角行列表記式
Block tridiagonal matrix notation as initial matrix notation
を生成する(ステップ110)。 Is generated (step 110).
ここで、
here,
は、
として表されるp行p列のブロック3重対角行列である。ここで、ブロック3重対角行列
(2)のブロック3重対角成分は、入力装置100から入力されたz行z列の非零行列で
ある。その他の成分“O”はすべて零行列である。
Is a block tridiagonal matrix with p rows and p columns. Here, the block tridiagonal component of the block tridiagonal matrix (2) is a nonzero matrix of z rows and z columns input from the
そして、
And
は、
として表されるp行1列のブロック未知数ベクトルである。ここで、式(3)の単位成分
Is a block unknown vector of p rows and 1 column expressed as Here, the unit component of the formula (3)
は、
として表されるz行1列の未知数ベクトルである。 Is an unknown vector of z rows and 1 column expressed as
また、
Also,
は、
として表されるp行1列のブロック既知数ベクトルである。ここで、式(5)の単位成分
P × 1 block known vector represented as Here, the unit component of the formula (5)
は、
として表されるz行1列の既知数ベクトルである。なお、既知数ベクトル(6)には入力
装置100から入力された初期条件や境界条件などの解析条件が導入されている。
Is a known number vector of z rows and 1 column expressed as Note that analysis conditions such as initial conditions and boundary conditions input from the
そして、中央演算処理装置300は、ブロック3重対角行列(2)のブロック3重対角
成分と、ブロック既知数ベクトル(5)を、サブメモリ500のブロック3重対角行列表
記式記憶領域520に記憶させる。
Then, the
次に、解析対象となる連立一次方程式の解であるブロック未知数ベクトル(3)を求め
るために、特許文献1に記載の計算アルゴリズムを利用する。
Next, in order to obtain a block unknown vector (3) which is a solution of the simultaneous linear equations to be analyzed, a calculation algorithm described in
まず、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510から、
ブロック3重対角行列(2)のサイズの値pを読み出し、読み出した値pから、分割回数
決定(単項)式
Read the value p of the size of the block tridiagonal matrix (2), and determine the number of divisions (unary) from the read value p
を満たす自然数fを求め(ステップ120)、この自然数fを分割の回数rの上限として
設定する(ステップ130)。
A natural number f satisfying the above is obtained (step 120), and this natural number f is set as the upper limit of the number r of divisions (step 130).
そして、中央演算処理装置300は、分割の回数rの初期値をr=1に設定し、第1回
目の分割プロセスを開始する(ステップ140)。
The
中央演算処理装置300は、ブロック3重対角行列表記式(1)を、4行4列のブロッ
ク正方行列である第1分割ブロック行列
を単位としてk1(=p/4=2f)等分にブロック化する(ステップ150)。このプロセスのこ
とを第1分割プロセスと称することにする。
Is divided into k 1 (= p / 4 = 2 f ) equal parts (step 150). This process will be referred to as a first division process.
これによって、中央演算処理装置300は、ブロック3重対角行列表記式(1)から第
1分割ブロック行列表記式
を生成する。ここで、第1分割ブロック行列表記式(9)の左辺のブロックベクトルのこ
とを第1分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第1分割ブロッ
ク既知数ベクトルと称することにする。
Is generated. Here, the block vector on the left side of the first divided block matrix notation (9) is referred to as a first divided block unknown vector, and the block vector on the right side is referred to as a first divided block known vector.
次に、中央演算処理装置300は、第1分割ブロック行列(8)のブロック3重対角成
分を式(11)に示す第1代数関係式に直接代入することによって、第1分割ブロック行
列(8)の逆行列である第1分割ブロック逆行列
を算出する(ステップ160)。 Is calculated (step 160).
ここで、第1代数関係式(11)は、
によって定義されるものであり、予めメインメモリ400の計算プログラムに記載されて
いる。ここで、
とした。なお、式(11)においては、式(10)の下付き添字がi=1の要素のみを明示
したが、i=2,...,k1の要素についても下付き添字が変更されるだけで同じ形をしているの
で省略した。
It was. In the formula (11), but the subscript of the formula (10) is clearly only the elements of the i = 1, i = 2, ..., subscript is changed also the elements of k 1 I just omitted it because it has the same shape.
そして、中央演算処理装置300は、第1分割ブロック逆行列(10)のすべての行列
成分(一般には、すべて非零行列である)を、サブメモリ500の第1分割ブロック逆行
列記憶領域5401に記憶させる。
The
次に、中央演算処理装置300は、サブメモリ500の第1分割ブロック逆行列記憶領
域5401から第1分割ブロック逆行列(10)のすべての行列成分を読み出して、第1
分割ブロック行列表記式(9)を用いて、
Using the divided block matrix notation (9),
を生成する。ここで、
である。 It is.
式(13)の右辺の第1分割ブロック既知数ベクトルには、隣接する第1分割ブロック
未知数ベクトルの境界部分に属するベクトル成分
In the first divided block known number vector on the right side of Expression (13), the vector component belonging to the boundary portion of the adjacent first divided block unknown vector
が繰り込まれているので、これを第1分割ブロック繰り込みベクトルと称することにする
。また、式(13)のことを第1繰り込みブロック行列表記式と称することにする。
This is referred to as a first divided block renormalization vector. Further, Equation (13) will be referred to as a first renormalization block matrix notation.
次に、中央演算処理装置300は、第1繰り込みブロック行列表記式(13)から式(
15)に示す境界部分のベクトル成分のみを取り出して圧縮する(ステップ170)。こ
のプロセスを第1圧縮プロセスと称することにする。
Only the vector component at the boundary shown in 15) is extracted and compressed (step 170). This process will be referred to as a first compression process.
ここで、
及び、
とした。 It was.
次に、中央演算処理装置300は、式(15)に
を代入することにより、式(15)から
を算出する。ここで、
である。 It is.
式(19)は2k1個のベクトルから成る連立一次方程式である。これを第1圧縮ブロック
ベクトル方程式と称することにする。
このようにして、中央演算処理装置300は、第1圧縮ブロックベクトル方程式(19
)から第1圧縮ブロック行列表記式
In this way, the
) To first compressed block matrix notation
を生成する(ステップ180)。ここで、
Is generated (step 180). here,
は、
として表される2k1行2k1列のブロック正方行列である。これを第1圧縮ブロック行列と称
することにする。
Is a 2k 1 row 2k 1 column block square matrix. This will be referred to as a first compressed block matrix.
また、
Also,
は、
として表される2k1行1列のブロックベクトルである。これを第1圧縮ブロック未知数ベ
クトルと称することにする。
2k 1 × 1 block vector expressed as This will be referred to as a first compressed block unknown vector.
また、
Also,
は、
として表される2k1行1列のブロックベクトルである。これを第1圧縮ブロック繰り込み
ベクトルと称することにする。さらに、式(24)の右辺第1項のブロック既知数ベクト
ルのことを第1圧縮ブロック既知数ベクトルと称することにする。
2k 1 × 1 block vector expressed as This will be referred to as a first compressed block renormalization vector. Furthermore, the block known number vector of the first term on the right side of Expression (24) will be referred to as a first compressed block known number vector.
そして、中央演算処理装置300は、第1圧縮ブロック行列(22)の非零行列成分(
ただし、単位行列Iは除く)と第1圧縮ブロック繰り込みベクトル(24)の第1圧縮ブ
ロック既知数ベクトルを、サブメモリ500の第1圧縮ブロック行列表記式記憶領域55
01に記憶させる。
Then, the
However, the unit matrix I is excluded) and the first compressed block known number vector of the first compressed block renormalization vector (24) are stored in the first compressed block matrix notation storage area 55 of the
0 1 to be stored.
上記の第1分割プロセス及び第1圧縮プロセスをまとめて第1接続プロセスと称するこ
とにする。
The first division process and the first compression process are collectively referred to as a first connection process.
以降、中央演算処理装置300は、分割の回数rの値をr=2からfまでインクリメン
トすることによって、上記の第1接続プロセスと実質的に同じプロセスを再帰的にf−1
回繰り返す(ステップ190,200)。2回目以降の接続プロセスにおける特徴を示す
ために、第r接続プロセスについて説明する。ここで、rは2≦r≦fを満たす整数であ
る。
Thereafter, the
Repeatedly (
中央演算処理装置300は、サブメモリ500の第r−1圧縮ブロック行列表記式記憶
領域から第r−1圧縮ブロック行列
The
の非零行列成分を読み出し、読み出した非零行列成分から生成した第r−1圧縮ブロック
行列
The non-zero matrix component of the r-1th compressed block matrix generated from the read non-zero matrix component
を4行4列のブロック正方行列である第r分割ブロック行列
を単位としてkr(=kr-1/2=2f+1-r)等分にブロック化する(ステップ150)。このプロセ
スのことを第r分割プロセスと称することにする。
Is divided into k r (= k r−1 / 2 = 2 f + 1−r ) equal parts (step 150). This process will be referred to as the r-th division process.
これによって、中央演算処理装置300は、第r−1圧縮ブロック行列表記式から第r
分割ブロック行列表記式
Partitioned block matrix notation
を生成する。ここで、第r分割ブロック行列表記式(26)の左辺のブロックベクトルの
ことを第r分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第r分割ブロ
ック既知数ベクトルと称することにする。
Is generated. Here, the block vector on the left side of the r-th divided block matrix notation (26) is referred to as the r-th divided block unknown vector, and the right-side block vector is referred to as the r-th divided block known number vector.
次に、中央演算処理装置300は、第r分割ブロック行列(25)の非零行列成分を式
(28)に示す第r代数関係式に直接代入することによって、第r分割ブロック行列(2
5)の逆行列である第r分割ブロック逆行列
5) the r-th divided block inverse matrix that is the inverse matrix
を計算させる(ステップ160)。 Is calculated (step 160).
ここで、第r代数関係式(28)は、
によって定義されるものであり、予めメインメモリ400の計算プログラムに記載されて
いる。なお、式(28)においては、式(27)の下付き添字がi=1の要素のみを明示し
たが、i=2,...,krの要素についても下付き添字が変更されるだけで同じ形をしているので
省略した。
And is described in advance in the calculation program of the
そして、中央演算処理装置300は、第r分割ブロック逆行列(27)の非零行列成分
(ただし、単位行列Iは除く)を、サブメモリ500の第r分割ブロック逆行列記憶領域
540rに記憶させる。
The
次に、中央演算処理装置300は、サブメモリ500の第r分割ブロック逆行列記憶領
域540rから第r分割ブロック逆行列(27)の非零行列成分を読み出して、第r分割
ブロック行列表記式(26)を用いて、
を生成する。 Is generated.
式(29)の右辺の第r分割ブロック既知数ベクトルには、隣接する第r分割ブロック
未知数ベクトルの境界部分に属するベクトル成分
The r-th divided block known vector on the right side of Expression (29) includes a vector component belonging to the boundary portion of the adjacent r-th divided block unknown vector.
が繰り込まれているので、これを第r分割ブロック繰り込みベクトルと称することにする
。また、式(29)のことを第r繰り込みブロック行列表記式と称することにする。
Is transferred to the r-th divided block transfer vector. Equation (29) is referred to as an r-th renormalization block matrix notation.
次に、中央演算処理装置300は、第r繰り込みブロック行列表記式(29)から式(
30)に示す境界部分のベクトル成分のみを取り出して圧縮する(ステップ170)。こ
のプロセスを第r圧縮プロセスと称することにする。
Only the vector component at the boundary shown in 30) is extracted and compressed (step 170). This process will be referred to as the r-th compression process.
ここで、
及び、
とした。 It was.
次に、中央演算処理装置300は、式(30)に、
を代入することにより、式(30)から
を算出する。 Is calculated.
式(34)は2kr個のベクトルから成る連立一次方程式である。これを第r圧縮ブロック
ベクトル方程式と称することにする。
このようにして、中央演算処理装置300は、第r圧縮ブロックベクトル方程式(34
)から第r圧縮ブロック行列表記式
In this way, the
) To r-th compressed block matrix notation
を生成する(ステップ180)。 Is generated (step 180).
ここで、
here,
は、
として表される2kr行2kr列のブロック正方行列である。これを第r圧縮ブロック行列と称
することにする。
Is a block square matrix of 2k r rows and 2k r columns expressed as This will be referred to as the r-th compressed block matrix.
また、
Also,
は、
として表される2kr行1列のブロックベクトルである。これを第r圧縮ブロック未知数ベ
クトルと称することにする。
Is a 2k r row 1 column block vector. This is referred to as an r-th compressed block unknown vector.
また、
Also,
は、
として表される2kr行1列のブロックベクトルである。これを第r圧縮ブロック繰り込み
ベクトルと称することにする。さらに、式(38)の右辺第1項のブロック既知数ベクト
ルのことを第r圧縮ブロック既知数ベクトルと称することにする。
Is a 2k r row 1 column block vector. This will be referred to as the r-th compressed block renormalization vector. Furthermore, the block known number vector of the first term on the right side of Equation (38) will be referred to as the r-th compressed block known number vector.
そして、中央演算処理装置300は、第r圧縮ブロック行列(36)の非零行列成分(
ただし、単位行列Iは除く)と第r圧縮ブロック繰り込みベクトル(38)の第r圧縮ブ
ロック既知数ベクトルを、サブメモリ500の第r圧縮ブロック行列表記式記憶領域55
0rに記憶させる。
The
However, the unit matrix I is excluded) and the r-th compressed block known vector of the r-th compressed block renormalization vector (38) are stored in the r-th compressed block matrix expression storage area 55 of the
0 is stored in the r.
上記の第r分割プロセス及び第r圧縮プロセスをまとめて第r接続プロセスと称するこ
とにする。
The r-th division process and the r-th compression process are collectively referred to as an r-th connection process.
このようにして、中央演算処理装置300は、分割の回数の値rがfになるまで上記の
第r接続プロセスを再帰的に繰り返す(ステップ190,200)。
In this way, the
最終プロセス(r=f)は以下の通りである。 The final process (r = f) is as follows.
中央演算処理装置300は、サブメモリ500の第f−1圧縮ブロック行列表記式記憶
領域550rから第f−1圧縮ブロック行列の非零行列成分を読み出し、読み出した非零
行列成分から生成した第f−1圧縮ブロック行列を4行4列のブロック正方行列である第
f(最終)分割ブロック行列
を単位としてkf=kf-1/2=2等分にブロック化する(ステップ150)。このプロセスのこ
とを第f(最終)分割プロセスと称することにする。
And k f = k f−1 / 2 = 2 are divided into equal parts (step 150). This process will be referred to as the f-th (final) division process.
これによって、中央演算処理装置300は、第f−1圧縮ブロック行列表記式から第f
(最終)分割ブロック行列表記式
(Final) Partitioned block matrix notation
を生成する。ここで、第f分割ブロック行列表記式(39)の左辺のブロックベクトルの
ことを第f(最終)分割ブロック未知数ベクトル、右辺のブロックベクトルのことを第f
(最終)分割ブロック既知数ベクトルと称することにする。
Is generated. Here, the block vector on the left side of the f-th divided block matrix notation (39) represents the f-th (final) divided block unknown vector, and the block vector on the right side represents the f-th block vector.
This will be referred to as a (final) divided block known number vector.
次に、中央演算処理装置300は、第f分割ブロック行列(39)の非零行列成分を式
(42)に示す第f代数関係式に直接代入することによって、第f分割ブロック行列(3
9)の逆行列である第f(最終)分割ブロック逆行列
9) The f-th (final) divided block inverse matrix that is the inverse matrix of
を計算させる(ステップ160)。 Is calculated (step 160).
ここで、第f代数関係式(42)は、
によって定義されるものであり、予めメインメモリ400の計算プログラムに記載されて
いる。
And is described in advance in the calculation program of the
そして、中央演算処理装置300は、第f分割ブロック逆行列(41)の非零行列成分
(ただし、単位行列Iは除く)を、サブメモリ500の第f(最終)分割ブロック逆行列
記憶領域540fに記憶させる。
The
次に、中央演算処理装置300は、サブメモリ500の第f分割ブロック逆行列記憶領
域540fから第f分割ブロック逆行列(41)の非零行列成分を読み出して、第f分割
ブロック行列表記式(40)を用いて、
を生成する。 Is generated.
式(43)の右辺の第f分割ブロック既知数ベクトルは、隣接する第f分割ブロック未
知数ベクトルの境界部分に属するベクトル成分
The f-th divided block known number vector on the right side of Expression (43) is a vector component belonging to the boundary portion of the adjacent f-th divided block unknown vector.
が繰り込まれているので、これを第f(最終)分割ブロック繰り込みベクトルと称するこ
とにする。また、式(43)のことを第f(最終)繰り込みブロック行列表記式と称する
ことにする。
Is transferred to the f-th (final) divided block transfer vector. Equation (43) is referred to as an f-th (final) renormalization block matrix notation.
次に、中央演算処理装置300は、第f繰り込みブロック行列表記式(43)から式(
44)に示す境界部分だけを取り出し圧縮する(ステップ170)。このプロセスを第f
(最終)圧縮プロセスと称することにする。
Only the boundary portion shown in 44) is taken out and compressed (step 170). F.
This will be referred to as the (final) compression process.
ここで、
及び、
とした。 It was.
次に、中央演算処理装置300は、式(44)に、
を代入することにより、式(44)から
を算出する。 Is calculated.
式(48)は2kf-1(=4)個のベクトルから成る連立一次方程式である。これを第f(最終)
圧縮ブロックベクトル方程式と称することにする。
このようにして、中央演算処理装置300は、第f圧縮ブロックベクトル方程式(48
)から第f(最終)圧縮ブロック行列表記式
This will be referred to as a compressed block vector equation.
In this way, the
) To f (final) compressed block matrix notation
を生成する(ステップ180)。ここで、
Is generated (step 180). here,
は、
として表される4行4列のブロック正方行列である。これを第f(最終)圧縮ブロック行
列と称することにする。
Is a 4 × 4 block square matrix. This will be referred to as the f (final) compressed block matrix.
また、
Also,
は、
として表される4行1列のブロックベクトルである。これを第f(最終)圧縮ブロック未
知数ベクトルと称することにする。
Is a 4 × 1 block vector. This will be referred to as the f (final) compressed block unknown vector.
また、
Also,
は、
として表される4行1列のブロックベクトルである。これを第f(最終)圧縮ブロック繰
り込みベクトルと称することにする。さらに、式(52)の右辺第1項のブロック既知数
ベクトルのことを第f(最終)圧縮ブロック既知数ベクトルと称することにする。
Is a 4 × 1 block vector. This will be referred to as the f-th (final) compressed block renormalization vector. Furthermore, the block known number vector of the first term on the right side of Equation (52) will be referred to as the f (final) compressed block known number vector.
そして、中央演算処理装置300は、第f圧縮ブロック行列(50)の非零行列成分(
ただし、単位行列Iは除く)と第f圧縮ブロック繰り込みベクトル(52)の第f圧縮ブ
ロック既知数ベクトルを、サブメモリ500の第f(最終)接続ブロック行列表記式記憶
領域550fに記憶させる。
The
However, the first f compressed block known number vector of the unit matrix I are excluded) a renormalization first f compressed block vector (52), the f (final sub-memory 500) is stored in the connection block matrix notation
上記の第f分割プロセス及び第f圧縮プロセスをまとめて第f(最終)接続プロセスと
称することにする。
The f-th division process and the f-th compression process are collectively referred to as an f (final) connection process.
次に、中央演算処理装置300は、このようにして生成された上記の複数の第r接続ブ
ロック行列表記式を用いて、ブロック未知数ベクトル(3)を求める(ステップ210〜
240)。ここで、rは、1≦r≦fを満たす整数である。これらのステップのことを逆
算求解ステップと称することにする。
Next, the
240). Here, r is an integer that satisfies 1 ≦ r ≦ f. These steps will be referred to as back calculation solution steps.
まず、中央演算装置300は、サブメモリ500の第f圧縮ブロック行列表記式記憶領
域550fから第f圧縮ブロック行列(50)の非零行列成分を読み出し、読み出した非
零行列成分を式(54)に示す第f+1代数関係式に直接代入することによって、第f+
1圧縮ブロック行列(50)の逆行列である第f+1圧縮ブロック逆行列
F + 1-th compressed block inverse matrix which is an inverse matrix of one compressed block matrix (50)
を計算させる(ステップ210)。 Is calculated (step 210).
ここで、第f+1代数関係式は、
によって定義されるものであり、予めメインメモリ400の計算プログラムに記載されて
いる。
And is described in advance in the calculation program of the
次に、中央演算処理装置300は、第f圧縮ブロック行列表記式(49)を用いて、
を生成する。 Is generated.
次に、中央演算処理装置300は、
を用いて、式(55)から
を生成する。 Is generated.
次に、中央演算処理装置300は、サブメモリ500の第f圧縮ブロック行列表記式記
憶領域550fから第f圧縮ブロック繰り込みベクトル(52)の第f圧縮ブロック既知
数ベクトルを読み出し、読み出した第f圧縮ブロック既知数ベクトルを式(57)に代入
して、ブロック未知数ベクトル(3)のうちの分割された未知数ベクトル
の値を算出する(ステップ220)。 Is calculated (step 220).
次に、中央演算処理装置300は、
を用いて、式(43)より
を生成する。そして、式(60)に、既に求めた未知数ベクトルの値である
と、同じく既に求めた未知数ベクトル(59)を代入して、ブロック未知数ベクトル(3)
のうちの分割された未知数ベクトル
The unknown vector divided into
の値を算出する。これによって、未知数ベクトル
の値が求められる。 The value of is obtained.
このようにして、中央演算処理装置300は、式(29)においてr=1となるまで上記
のプロセスを繰り返すことにより(ステップ230,240)、すべての未知数ベクトル
、すなわちブロック未知数ベクトル(3)、を求める。
In this way, the
(第2の実施形態)
図3は、本発明の第2の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。なお、第1の実施形態と同一の構成には同一の符号を付し、繰り返しの説
明を省略する。
(Second Embodiment)
FIG. 3 is a conceptual diagram showing a schematic configuration of a simultaneous linear equation calculation apparatus according to the second embodiment of the present invention. In addition, the same code | symbol is attached | subjected to the structure same as 1st Embodiment, and repeated description is abbreviate | omitted.
第2の実施形態は、解析対象となる連立一次方程式の係数行列がブロックN(Nは4以
上の整数)重対角行列の場合を想定したものである。
The second embodiment assumes that the coefficient matrix of the simultaneous linear equations to be analyzed is a block N (N is an integer of 4 or more) multidiagonal matrix.
なお、以降においても、Nは4以上の整数を表すものとする。 In the following, N represents an integer of 4 or more.
図3に示すように、第2の実施形態に係る計算装置は、第1の実施形態と同じく、入力
装置100と、出力装置200と、中央演算処理装置(CPU)300と、メインメモリ
400と、サブメモリ500とを外部バス600を介して連結して構成されている。
As shown in FIG. 3, the computing device according to the second embodiment is similar to the first embodiment in the
本実施形態に係るサブメモリ500には、第1の実施形態の記憶領域の他にブロックN
重対角行列表記式記憶領域560が設けられている。それに対応して、メインメモリ40
0には、本実施形態に係る連立一次方程式の計算プログラムが記憶されている。そして、
中央演算処理装置300は、メインメモリ400に記憶されている上記の計算プログラム
に従って、入力装置100から入力された各種解析条件を用いて解析対象となる連立一次
方程式の解を求める。中央演算処理装置300は、メインメモリ400に記憶されている
上記の計算プログラムを実効することによって、本実施形態に係る連立一次方程式の計算
装置の各機能を実現する。
The
A multi-diagonal matrix
In 0, a calculation program for simultaneous linear equations according to the present embodiment is stored. And
The
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
The calculation apparatus of the present embodiment configured as described above performs numerical calculation on the simultaneous linear equations to be analyzed by the following processing procedure.
図4は、図3に示した第2の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。図5は、図4に示した数値計算の処理手順の続きを示す
フローチャートである。
FIG. 4 is a flowchart showing a processing procedure of numerical calculation performed by the calculation apparatus of the second embodiment shown in FIG. FIG. 5 is a flowchart showing a continuation of the numerical calculation processing procedure shown in FIG.
まず、中央演算処理装置300は、入力装置100を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル=既知数ベクトル」として行列表記した際の係数行
列として、m行m列の正方行列を単位成分とするn行n列のブロックN重対角行列の入力
を解析者に促す(ステップ300)。詳細には、中央演算処理装置300は、上記のブロ
ックN重対角行列中のブロックN重対角成分のみの入力を解析者に促す。
First, the
また、ステップ300において、中央演算処理装置300は、ブロックN重対角行列の
サイズの値nとして正の偶数の値の入力を解析者に促すが、ブロックN重対角行列の単位
成分である正方行列のサイズの値mに関しては自然数であるということ以外に特に制限は
設けない。
In
なお、本実施形態においては、上述したように、ブロックN重対角行列のサイズの値n
として正の偶数の値を入力させるようにしているが、それ以外の一般の自然数を入力させ
てもよい。これについては後述する。
In the present embodiment, as described above, the value n of the size of the block N double diagonal matrix
As an input, a positive even number value is input, but other general natural numbers may be input. This will be described later.
また、ステップ300において、中央演算処理装置300は、上述した係数行列として
のブロックN重対角行列の入力に対応して、ブロック未知数ベクトルとしてm行1列の未
知数ベクトルを単位成分とするn行1列のブロック未知数ベクトルの入力、及び、ブロッ
ク既知数ベクトルとしてm行1列の未知数ベクトルを単位成分とするn行1列のブロック
既知数ベクトルの入力を解析者に促す。
Further, in
さらに、ステップ300において、入力装置100は、解析対象である連立一次方程式
を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析者に促す
。
Furthermore, in
そして、中央演算処理装置300は、このようにして入力されたブロックN重対角行列
のサイズの値n、ブロックN重対角行列の単位成分である正方行列のサイズの値m、初期
条件、及び境界条件などの各種解析条件を、サブメモリ500の解析条件記憶領域510
に記憶させる。
The
Remember me.
次に、中央演算処理装置300は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてブロックN重対角行列表記式
Block N double diagonal matrix notation as initial matrix notation
を生成する(ステップ310)。 Is generated (step 310).
ここで、
here,
は、
として表されるn行n列のブロックN重対角行列である。ここで、ブロックN重対角行列
(65)のN重対角成分は入力装置100から入力されたm行m列の非零行列である。そ
の他の成分はすべて零行列である。また、Nとzとの関係は、最初に記載した定義に従う
。すなわち、Nが3以上の奇数の場合は、z=(N−1)/2であり、Nが4以上の偶数
の場合は、z=N/2である。
Is an n-by-n block N-diagonal matrix expressed as Here, the N double diagonal component of the block N double diagonal matrix (65) is a non-zero matrix of m rows and m columns input from the
そして、
And
は、
として表されるn行1列のブロック未知数ベクトルである。ここで、式(66)の単位成
分
Is an n-by-1 block unknown vector represented as Here, the unit component of the formula (66)
は、
として表されるm行1列の未知数ベクトルである。 Is an unknown vector of m rows and 1 column.
また、
Also,
は、
で表されるn行1列のブロック未知数ベクトルである。ここで、式(68)の単位成分
An n-by-1 block unknown vector represented by: Here, the unit component of the formula (68)
は、
として表されるm行1列の既知数ベクトルである。既知数ベクトル(69)には入力装置
100から入力された初期条件や境界条件などの各種解析条件が導入されている。
Is a known vector of m rows and 1 column expressed as Various analysis conditions such as initial conditions and boundary conditions input from the
そして、中央演算処理装置300は、ブロックN重対角行列(65)のブロックN重対
角成分と、ブロック既知数ベクトル(66)を、サブメモリ500のブロックN重対角行
列表記式記憶領域560に記憶させる。
Then, the
次に、中央演算処理装置300は、サブメモリ500のブロックN重対角行列表記式記
憶領域560から、ブロックN重対角行列(65)のN重対角成分を読み出し、読み出し
たN重対角成分から生成したブロックN重対角行列(65)を4行4列のブロック正方行
列である3重化ブロック行列
を単位としてブロック化する(ステップ320)。ここで、pは、p=n/zを満たす正
の偶数である。
(Block 320). Here, p is a positive even number that satisfies p = n / z.
これによって、中央演算処理装置300は、初期行列表記式としてのブロックN重対角
行列表記式からp行p列のブロック3重対角行列
を係数行列とするブロック3重対角行列表記式
を生成する(ステップ330)。これは、第1の実施形態におけるブロック3重対角行列
(2)と実質的に同じものである。
Is generated (step 330). This is substantially the same as the block tridiagonal matrix (2) in the first embodiment.
ここで、
here,
は、
として表されるp行1列のブロック未知数ベクトルである。これは、第1の実施形態にお
けるブロック未知数ベクトル(3)と実質的に同じものである。ここで、式(73)の単
位成分
Is a block unknown vector of p rows and 1 column expressed as This is substantially the same as the block unknown vector (3) in the first embodiment. Here, the unit component of the formula (73)
は、
として表されるz行1列の未知数ベクトルである。これは、第1の実施形態における未知
数ベクトル(4)と実質的に同じである。
Is an unknown vector of z rows and 1 column expressed as This is substantially the same as the unknown vector (4) in the first embodiment.
また、
Also,
は、
として表されるp行1列のブロック既知数ベクトルである。これは、第1の実施形態にお
けるブロック既知数ベクトル(5)と実質的に同じものである。ここで、式(75)の単
位成分
P × 1 block known vector represented as This is substantially the same as the block known number vector (5) in the first embodiment. Here, the unit component of the formula (75)
は、
として表されるz行1列のブロック既知数ベクトルである。これは、第1の実施形態にお
けるブロック既知数ベクトル(6)と実質的に同じである。
Is a z-by-1 block known vector represented as This is substantially the same as the block known number vector (6) in the first embodiment.
そして、中央演算処理装置300は、ブロック3重対角行列(71)の3重対角成分と
、ブロック既知数ベクトル(75)を、サブメモリ500のブロック3重対角行列表記式
記憶領域520に記憶させる。
Then, the
このようにして、第2の実施形態における初期行列表記式であるブロックN重対角行列
表記式は第1の実施形態におけるブロック3重対角行列表記式に変換されるので、以降に
おいて、第1の実施形態におけるステップ110〜240の解法プロセスを適用すること
が可能となる。
In this way, the block N tridiagonal matrix notation which is the initial matrix notation in the second embodiment is converted to the block tridiagonal matrix notation in the first embodiment. It is possible to apply the solution process of
しかし、第1の実施形態においては、ブロック3重対角行列のサイズの値pが2のべき
乗の値であったのに対し、第2の実施形態においては、このサイズの値p(=n/z)は
、正の偶数ではあるが、必ずしも2のべき乗の値になるとは限らない。
However, in the first embodiment, the value p of the block tridiagonal matrix size is a power of 2, whereas in the second embodiment, this size value p (= n / Z) is a positive even number, but is not necessarily a power of 2.
そこで、以降において、この点について説明する。 Therefore, this point will be described below.
中央演算処理装置300は、サブメモリ500のブロック3重対角行列表記式記憶領域
520から、ブロック3重対角行列(72)のサイズの値pを読み出し、読み出した値p
から、2のべき乗級数展開に基づく分割回数決定(多項)式
To determine the number of divisions based on the power series expansion of 2 (multinomial)
を用いて自然数fiを算出する(ステップ340)。なお、式(77)において、fi≦0
を満たすfiの値はすべて0に設定する。
Is used to calculate the natural number f i (step 340). In formula (77), f i ≦ 0
All values of f i satisfying the above are set to 0.
なお、2のべき乗級数展開とは、
で表される級数展開のことであり、任意の自然数pは必ず式(78)ように級数展開する
ことが可能である。ここで、ai(i=0,1,2,・・・,F)=1又は0である。また
、Fは自然数であり、iは各項の指標となる添え字であるが、ブロック3重対角行列(7
2)のサイズの値pが偶数のため、ここではi=0は除いて考える。
The arbitrary natural number p can always be expanded as shown in Equation (78). Here, a i (i = 0, 1, 2,..., F) = 1 or 0. Further, F is a natural number and i is a subscript as an index of each term, but a block tridiagonal matrix (7
Since the size value p in 2) is an even number, i = 0 is considered here.
次に、中央演算処理装置300は、式(77)の各項piと自然数fiとを関連付けて項
別パラメータセット(pi,fi)(i=1,・・・,F)としてサブメモリ500の項別
分離パラメータセット記憶領域570に記憶させる。
Next, the
次に、中央演算処理装置300は、サブメモリ500のブロック3重対角行列表示式記
憶領域520から、ブロック3重対角行列のブロック3重対角成分を読み出し、読み出し
たブロック3重対角成分からブロック3重対角行列表記式(72)を生成する。
Next, the
次に、中央演算処理装置300は、サブメモリ500の項別分離パラメータセット記憶
領域570から項別分離パラメータセット(pi,fi)(i=1,2,・・・,F)を読
み出し、読み出したパラメータpi(i=1,2,・・・,F)を分離のサイズとして、
ブロック3重対角行列表記式(72)を
Block tridiagonal matrix notation (72)
のようにF個に分離する(ステップ350)。 (Step 350).
このようにして分離されたブロック3重対角行列表示式のことを分離ブロック3重対角
行列表記式と称することにする。また、分離ブロック3重対角行列表記式の係数行列のこ
とを分離ブロック3重対角行列、分離ブロック3重対角行列表記式のブロック未知数ベク
トルのことを分離ブロック未知数ベクトル、分離ブロック3重対角行列表記式のブロック
既知数ベクトルのことを分離ブロック既知数ベクトルと称することにする。
The block tridiagonal matrix expression thus separated will be referred to as a separated block tridiagonal matrix expression. Further, the coefficient matrix of the separation block tridiagonal matrix notation represents the separation block tridiagonal matrix, the block unknown vector of the separation block tridiagonal matrix notation represents the separation block unknown vector, and the separation block triple. The block known number vector of the diagonal matrix notation is referred to as a separated block known number vector.
例えば、読み出したブロック3重対角行列(72)のサイズの値pが分割回数決定多項
式(77)を用いて、
のように展開されたとする。この場合、ブロック3重対角行列表記式(72)は、
すなわち、
と、
すなわち、
と、
すなわち、
の3つの分離ブロック3重対角行列表記式に分離されることになる。また、この場合、
項別分離パラメータセットは、(p1,f1)、(p2,f2),(p3,f3)となる。
Are separated into three diagonal blocks. In this case,
The term-specific separation parameter set is (p 1 , f 1 ), (p 2 , f 2 ), (p 3 , f 3 ).
そして、中央演算処理装置300は、F個の分離ブロック3重対角行列のブロック3重
対角成分と、F個の分離ブロック3重既知数ベクトルをサブメモリ500の分離ブロック
3重対角行列表記式記憶領域580に記憶させる。
Then, the
次に、中央演算処理装置300は、分割の対象となる項である分割対象項の添字iの初
期値をi=1に設定する(ステップ360)。
Next, the
次に、中央演算処理装置300は、サブメモリ500の項別分離パラメータセット記憶
領域570からi=1で添字付けられたパラメータf1を読み出し、これを分割の回数と
して設定する(ステップ370)。
Next, the
次に、中央演算処理装置300は、サブメモリ500の分離ブロック3重対角行列表記
式記憶領域580からi=1で添字付けされた分離ブロック3重対角行列のブロック3重
対角成分と、同じくi=1で添え字付けされた分離ブロック既知数ベクトルを読み出し、
第1の実施形態におけるステップ140〜180までのプロセスを行う。
Next, the
The processes of
そして、中央演算処理装置300は、分割対象項の添字の値iをi=2からFまでイン
クリメントすることによって、項別に分離されたF個の分離圧縮ブロック行列表記式を生
成する(ステップ380,390)。
Then, the
次に、中央演算処理装置300は、生成されたF個の分離圧縮ブロック行列表記式から
境界部分のベクトル成分のみを取り出すことによって結合ブロックベクトル方程式を生成
し、これを結合ブロック行列表記式(結合ブロック行列×結合ブロック未知数ベクトル=
結合ブロック既知数ベクトル)として行列表記する(ステップ400)。
Next, the
It is expressed as a matrix as a connected block known number vector) (step 400).
そして、中央演算処理装置300は、結合ブロック行列の非零行列成分と、結合ブロッ
ク既知数ベクトルをサブメモリ500の結合ブロック行列表記式記憶領域590に記憶さ
せる。
The
次に、中央演算処理装置300は、サブメモリ500の結合ブロック行列表記式記憶領
域590から結合ブロック行列の非零行列成分を読み出し、読み出した非零行列成分から
生成した結合ブロック行列の逆行列を求めることによって、上記の境界部分のベクトル成
分の値を算出する(ステップ410)。上記の例の場合であれば、
Next, the
が算出されることになる。なお、このステップ410で行われることは、第1の実施形
態におけるステップ210〜240と同じであるので詳細は省略する。
Will be calculated. Note that what is performed in step 410 is the same as
次に、中央演算処理装置300は、算出された境界部分のベクトル(上記の例であれば
、
Next, the
)の値を元のF個の分離圧縮ブロック行列表記式(上記の例であれば、式(82)、式
(84)、式(86))に代入することによって、F個の分離ブロック行列表記式を線形
分離する(ステップ420)。このようにして線形分離された分離ブロック行列表記式の
ことを完全分離ブロック行列表記式と称することにする。
) Are substituted into the original F separated compressed block matrix notation formulas (in the above example, formula (82), formula (84), formula (86)) to obtain F separated block matrixes. The expression is linearly separated (step 420). The separation block matrix notation that is linearly separated in this way is referred to as a complete separation block matrix notation.
次に、中央演算処理装置300は、F個の完全分離ブロック行列表記式中のi=1で添
字付けされた圧縮ブロック行列表記式に対して、第1の形態におけるステップ210から
240の逆算求解プロセスを施す。
Next, the
そして、中央演算処理装置300は、分割対象項の添字の値iをi=2からFまでイン
クリメントして、上記のプロセスを再帰的にF−1回繰り返す(ステップ390,395
)ことによって、最終的にブロック未知数ベクトル(73)を求める。
Then, the
) To finally obtain the block unknown vector (73).
なお、ブロック3重対角行列のサイズの値pが分割回数決定(単項)式(7)によって
表される場合も第2の実施形態に包含されることは言うまでもない。
Needless to say, the second embodiment also includes the case where the value p of the block tridiagonal matrix size is expressed by the division number determination (unary) equation (7).
また、ステップ340において、ブロック3重対角行列(72)のサイズの値pが分割
回数決定(多項)式(77)によって、
のように級数展開される場合には、式(87)の右辺第1項に関してはステップ360〜
400までの操作は行わずに、直接逆行列を計算させ、境界部分のベクトル成分を取り出
す。そして、ステップ410において残りの項から取り出した境界部分のベクトル成分と
合わせて、その値を算出すればよい。
When series expansion is performed as in
Without performing the operations up to 400, the inverse matrix is directly calculated to extract the vector component of the boundary portion. Then, in step 410, the value may be calculated together with the vector component of the boundary portion extracted from the remaining terms.
例えば、p=386の場合、サブメモリ500のブロック3重対角行列表記式記憶領域
520に記憶されているブロック3重対角行列表記式は
である。 It is.
まず、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510からブ
ロック3重対角行列のサイズの値p=386を読み出し、読み出した値pを、分割回数決
定(多項式)式(77)を用いて、
と級数展開することによって、自然数fi(i=1,2,3)をそれぞれf1=6、f2=
5、f3=0と決定する(ステップ340)。
To expand the natural numbers f i (i = 1, 2, 3) to f 1 = 6 and f 2 =, respectively.
5. Determine that f 3 = 0 (step 340).
次に、中央演算処理装置300は、式(89)の右辺の各項のサイズpi(i=1,2
,3)と自然数fi(i=1,2,3)とを関連付けて項別分離パラメータセット(pi,
fi)=(256,6),(128,5),(2,0)としてサブメモリ500の項別分
離パラメータセット記憶領域570に記憶させる。
Next, the
, 3) and the natural numbers f i (i = 1, 2, 3) in association with the term-specific separation parameter set (p i ,
f i ) = (256, 6), (128, 5), (2, 0) are stored in the item-specific separation parameter set
次に、中央演算処理装置300は、サブメモリ500のブロック3重対角行列表記式記
憶領域520から、ブロック3重対角行列の3重対角成分を読み出し、読み出した3重対
角成分からブロック3重対角行列表記式(88)を生成する。
Next, the
次に、中央演算処理装置300は、サブメモリ500の項別分離パラメータセット記憶
領域570から項別分離パラメータセット(pi,fi)=(256,6),(128,5
),(2,0)を読み出し、読み出したp1=256,p2=128,p3=2を分離のサ
イズとして、ブロック3重対角行列表記式(88)を3つの分離ブロック3重対角行列表
記式
), (2, 0) are read, and the read p 1 = 256, p 2 = 128, and p 3 = 2 are set as separation sizes, and the block tridiagonal matrix expression (88) is divided into three separation block triples. Diagonal matrix notation
に分離する(ステップ350)。 (Step 350).
そして、中央演算処理装置300は、分離ブロック3重対角行列表記式(90),(9
1)に対しては、ステップ360以降の処理を施し、分離ブロック3重対角行列表記式(
92)に対しては、上述したようにその係数行列の逆行列を直接
1) is subjected to the processing from
92), the inverse matrix of the coefficient matrix is directly applied as described above.
と計算させることによって、境界部分のベクトル成分
を取り出した後に、ステップ410以降の処理を施せばよい。この処理には既存の数値算
プログラムを用いればよい。ここで、
である。 It is.
なお、式(95)の
It should be noted that the equation (95)
については式(11)と同様の代数関係式から算出すればよい。 May be calculated from an algebraic relational expression similar to expression (11).
(第3の実施形態)
図6は、本発明の第3の実施形態に係る連立一次方程式の計算装置の概略構成を示した
概念図である。なお、第2の実施形態と同一の構成には同一の符号を付し、繰り返しの説
明を省略する。
(Third embodiment)
FIG. 6 is a conceptual diagram showing a schematic configuration of a simultaneous linear equation calculation apparatus according to the third embodiment of the present invention. In addition, the same code | symbol is attached | subjected to the structure same as 2nd Embodiment, and repeated description is abbreviate | omitted.
第3の実施形態は、解析対象となる連立一次方程式の係数行列がスカラーq(qは3以
上の整数)重対角行列の場合を想定したものである。
The third embodiment assumes that the coefficient matrix of the simultaneous linear equations to be analyzed is a scalar q (q is an integer of 3 or more) multidiagonal matrix.
なお、以降においても、qは3以上の整数を表すものとする。 In the following, q represents an integer of 3 or more.
図6に示すように、第3の実施形態に係る計算装置は、第2の実施形態と同じく、入力
装置100と、出力装置200と、中央演算処理装置(CPU)300と、メインメモリ
400と、サブメモリ500とを外部バス600を介して連結して構成されている。
As shown in FIG. 6, the computing device according to the third embodiment is similar to the second embodiment in that the
本実施形態に係るサブメモリ500には、第2の実施形態の記憶領域の他にスカラーq
重対角行列表記式595が設けられている。それに対応して、メインメモリ400には、
本実施形態に係る連立一次方程式の計算プログラムが記憶されている。そして、中央演算
処理装置300は、メインメモリ400に記憶されている上記の計算プログラムに従って
、入力装置100から入力された各種解析条件を用いて解析対象となる連立一次方程式の
解を求める。中央演算処理装置300は、メインメモリ400に記憶されている上記の計
算プログラムを実効することによって、本実施形態に係る連立一次方程式の計算装置の各
機能を実現する。
The
A
A calculation program for simultaneous linear equations according to the present embodiment is stored. Then, the
以上のように構成された本実施形態の計算装置は、解析対象となる連立一次方程式を以
下の処理手順で数値計算する。
The calculation apparatus of the present embodiment configured as described above performs numerical calculation on the simultaneous linear equations to be analyzed by the following processing procedure.
図7は、図6に示した第3の実施形態の計算装置によって行われる数値計算の処理手順
を示したフローチャートである。図8は、図7に示した数値計算の処理手順の続きを示す
フローチャートである。
FIG. 7 is a flowchart showing a processing procedure of numerical calculation performed by the calculation apparatus of the third embodiment shown in FIG. FIG. 8 is a flowchart showing a continuation of the numerical calculation processing procedure shown in FIG.
まず、中央演算処理装置300は、入力装置100を介して、解析対象となる連立一次
方程式を「係数行列×未知数ベクトル=既知数ベクトル」として行列表記した際の係数行
列として、l行l列のスカラーq重対角行列の入力を解析者に促す(ステップ500)。
First, the
詳細には、入力装置100は、上記のスカラー多重対角行列のl行l列のスカラー成分の
うちスカラーq重対角成分のみの入力を解析者に促す。
Specifically, the
また、ステップ500において、中央演算処理装置300は、スカラーq重対角行列の
サイズlとして正の偶数の入力を解析者に促す。
In
なお、本実施形態においては、上述したように、スカラーq重対角行列のサイズの値と
して正の偶数の値を入力させるようにしているが、それ以外の一般の自然数を入力させて
もよい。これについては後述する。
In the present embodiment, as described above, a positive even value is input as the size value of the scalar q multi-diagonal matrix, but other general natural numbers may be input. . This will be described later.
また、ステップ500において、中央演算処理装置300は、上述した係数行列として
のスカラー多重対角行列の入力に対応して、l行1列の未知数ベクトルの入力、及び、l
行1列の既知数ベクトルの入力を解析者に促す。
Further, in
Prompt the analyst to enter a known vector of rows and columns.
さらに、ステップ500において、中央演算処理装置300は、解析対象である連立一
次方程式を解くために必要となる初期条件及び境界条件などの各種解析条件の入力を解析
者に促す。その際、中央演算処理装置300は、ブロックN重対角化のサイズの値mとし
てlより小さい正の偶数の入力を解析者に促す。
Furthermore, in
なお、本実施形態においては、上述したように、ブロックN重対角化のサイズの値mと
してlより小さい正の偶数の値を入力させるようにしているが、それ以外の一般の自然数
を入力させてもよい。これについても後述する。
In the present embodiment, as described above, a positive even number smaller than l is input as the block m double diagonalization size value m, but other general natural numbers are input. You may let them. This will also be described later.
そして、中央演算処理装置300は、このようにして入力されたスカラーq重対角行列
のサイズl、ブロックN重対角化のサイズm、初期条件、及び境界条件などの各種解析条
件を、サブメモリ500の解析条件記憶領域510に記憶させる。
Then, the
次に、中央演算処理装置300は、上記のようにして入力された連立一次方程式から、
初期行列表記式としてスカラーq重対角行列表記式
Scalar q double diagonal matrix notation as initial matrix notation
を生成する(ステップ510)。 Is generated (step 510).
ここで、
here,
は、
として表されるl行l列のスカラーq重対角行列である。スカラーq重対角行列(97)
のq重対角成分は、入力装置100から入力された非零のスカラー値である。その他の成
分は、すべて零である。また、qとzとの関係は、最初に記載した定義に従う。すなわち
、qが3以上の奇数の場合は、z=(q−1)/2であり、qが4以上の偶数の場合は、
z=q/2である。
Is a l-by-l scalar q-diagonal matrix expressed as Scalar q double diagonal matrix (97)
Is a non-zero scalar value input from the
z = q / 2.
そして、
And
は、
として表されるl行1列の未知数ベクトルである。 Is an unknown vector of 1 rows and 1 column expressed as
また、
Also,
は、
として表されるl行1列の既知数ベクトルである。なお、既知数ベクトル(99)には入
力装置100から入力された初期条件や境界条件などの各種解析条件が導入されている。
Is a known vector of l rows and 1 column expressed as Note that various analysis conditions such as initial conditions and boundary conditions input from the
そして、中央演算処理装置300は、スカラーq重対角行列(97)のスカラーq重対
角成分と、既知数ベクトル(99)を、サブメモリ500のスカラーq重対角行列表記式
記憶領域595に記憶させる。
The
次に、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510からブ
ロックN重対角化のサイズの値mを読み出し、スカラーq重対角行列(97)をm行m列
の正方行列を単位としたn行n列のブロックN重対角行列にブロック化する(ステップ5
20)。ここで、nは、n=l/mを満たす正の偶数である。
Next, the
20). Here, n is a positive even number that satisfies n = 1 / m.
このようにして、中央演算処理装置300は、スカラーq重対角行列表記式(96)か
らブロックN重対角行列表示式
を生成する。 Is generated.
ここで、
here,
は、
として表されるn行n列のブロックN重対角行列である。これは、第2の実施形態におけ
るブロックN重対角行列(65)と実質的に同じものである。ここで、ブロックN重対角
行列(101)のN重対角成分はm行m列の非零行列である。その他の成分はすべて零行
列である。
Is an n-by-n block N-diagonal matrix expressed as This is substantially the same as the block N double diagonal matrix (65) in the second embodiment. Here, the N double diagonal component of the block N double diagonal matrix (101) is a non-zero matrix of m rows and m columns. All other components are zero matrices.
そして、
And
は、
として表されるn行1列のブロック未知数ベクトルである。これは、第2の実施形態のブ
ロックN重未知数ベクトル(66)と実質的に同じものである。ここで、式(102)の
成分
Is an n-by-1 block unknown vector represented as This is substantially the same as the block N double unknown vector (66) of the second embodiment. Here, the component of the formula (102)
は、
として表されるm行1列の未知数ベクトルである。 Is an unknown vector of m rows and 1 column.
また、
Also,
は、
で表されるn行1列のブロック未知数ベクトルである。これは、第2の実施形態における
ブロックN重既知数ベクトル(68)と実質的に同じものである。ここで、式(104)
の成分
An n-by-1 block unknown vector represented by: This is substantially the same as the block N double known number vector (68) in the second embodiment. Where equation (104)
Ingredients
は、
として表されるm行1列の既知数ベクトルである。 Is a known vector of m rows and 1 column expressed as
このようにして、第3の実施形態における初期行列表示式であるスカラーq重対角行列
表記式は第2の実施形態におけるブロックN重対角行列表記式に変換されるので、基本的
には以降において、第2の実施形態におけるステップ320〜395の解法プロセスを適
用することが可能となる。
In this way, the scalar q multi-diagonal matrix notation which is the initial matrix display formula in the third embodiment is converted into the block N double-diagonal matrix notation in the second embodiment. Thereafter, the solution process of steps 320 to 395 in the second embodiment can be applied.
ただし、第3の実施形態においては、N=3の場合もあり得る。 However, in the third embodiment, N = 3 may be possible.
そこで、中央演算処理装置300は、ブロックN重対角行列(101)のNが4以上の
整数であるか否かを判断する(ステップ530)。ここで、Nが4以上であると判断され
た場合には、ステップ320に移って、ブロックN重対角行列(101)をブロック3重
対角行列に変換し、次のステップへと移行する。また、ステップ530において、Nが3
であると判断された場合には、ステップ530へと移行する。
Therefore, the
If it is determined that, the process proceeds to step 530.
これ以降、中央演算処理装置300は、図7及び8に示したステップ340〜450の
ステップの処理を行うことによって、最終的に未知数ベクトル(98)を求めることがで
きる。
Thereafter, the
なお、ステップ530における判断処理には、既存の数値計算プログラムを用いればよ
い。
In addition, what is necessary is just to use the existing numerical calculation program for the judgment process in step 530. FIG.
なお、本実施形態(第1〜第3の実施形態)においては、各種サイズの値として、ブロ
ック3重対角行列のサイズの値pとして2のべき乗の値(第1の実施形態)、ブロックN
重対角行列のサイズの値nとして正の偶数の値(第2の実施形態)、スカラーq重対角行
列のサイズlとして正の偶数と、ブロックN重対角化のサイズの値mとしてlより小さい
正の偶数(第3の実施形態)、の入力を促すことを想定したが、これらの値に一般の自然
数を入力させるように設定してもよい。
In this embodiment (first to third embodiments), as values of various sizes, a value of power of 2 as a value p of the size of a block tridiagonal matrix (first embodiment), a block N
As a value n of a positive diagonal matrix, a positive even number (second embodiment), as a positive value as a size q of a scalar q double diagonal matrix, and as a value m of a block N double diagonalization size Although it is assumed that the input of a positive even number (third embodiment) smaller than 1 is prompted, a general natural number may be input to these values.
例えば、第1の実施形態において、ブロック3重対角行列のサイズの値pとして単に自
然数を入力させるように設定した場合には、分割回数決定のプロセスにおける分割回数決
定式(7)の代わりに第2の実施形態における分割回数決定式(77)(厳密には式(7
8))を用いればよい。pの値が偶数の場合に関しては、第2の実施形態の箇所ですでに
説明したので、ここではpの値が奇数の場合に関して簡単に述べておく。
For example, in the first embodiment, when a natural number is simply input as the value p of the block tridiagonal matrix size, instead of the division number determination formula (7) in the division number determination process, The division number determination formula (77) in the second embodiment (strictly, the formula (7
8)) may be used. Since the case where the value of p is an even number has already been described in the second embodiment, the case where the value of p is an odd number will be briefly described here.
例えば、p=387の場合、サブメモリ500のブロック3重対角行列表記式記憶領域
520に記憶されているブロック3重対角行列表記式は
である。 It is.
まず、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510からブ
ロック3重対角行列のサイズの値p=387を読み出し、読み出した値pを、分割回数決
定(多項式)式(77)を用いて、
と級数展開することによって、自然数fi(i=1,2,3)をそれぞれf1=6,f2=
5,f3=0と決定する(ステップ340)。
And the natural number f i (i = 1, 2, 3) is converted into f 1 = 6 and f 2 = respectively.
5, f 3 = 0 is determined (step 340).
次に、中央演算処理装置300は、式(107)の右辺の各項のサイズpi(i=1,
2,3)と自然数fi(i=1,2,3)とを関連付けて項別分離パラメータセット(pi
,fi)=(256,6),(128,5),(3,0)としてサブメモリ500の項別
分離パラメータセット記憶領域570に記憶させる。
Next, the
2, 3) and the natural number f i (i = 1, 2, 3) are related to each other and the separation parameter set for each term (p i
, F i ) = (256, 6), (128, 5), (3, 0), it is stored in the item-specific separation parameter set
次に、中央演算処理装置300は、サブメモリ500のブロック3重対角行列表記式記
憶領域520から、ブロック3重対角行列の3重対角成分を読み出し、読み出した3重対
角成分からブロック3重対角行列表記式(106)を生成する。
Next, the
次に、中央演算処理装置300は、サブメモリ500の項別分離パラメータセット記憶
領域570から項別分離パラメータセット(pi,fi)=(256,6),(128,5
),(3,0)を読み出し、読み出したp1=256,p2=128,p3=3を分離のサ
イズとして、ブロック3重対角行列表記式(106)を3つの分離ブロック3重対角行列
表記式
), (3, 0), and the read p 1 = 256, p 2 = 128, and p 3 = 3 are set as separation sizes, and the block tridiagonal matrix notation (106) is converted into three separation block triples. Diagonal matrix notation
に分離する(ステップ350)。 (Step 350).
そして、中央演算処理装置300は、分離ブロック3重対角行列表記式(108),(
109)に対しては、ステップ360以降の処理を施し、分離ブロック3重対角行列表記
式(109)に対しては、上述したようにその係数行列の逆行列を直接
109) is processed after
と計算させることによって、境界部分のベクトル成分
を取り出した後に、ステップ410以降の処理を施せばよい。この処理には既存の数値計
算プログラムを用いればよい。ここで、
である。 It is.
なお、式(113)の
Note that the equation (113)
については式(11)と同様の代数関係式から算出すればよい。 May be calculated from an algebraic relational expression similar to expression (11).
また、例えば、p=385の場合には、サブメモリ500のブロック3重対角行列表記
式記憶領域520に記憶されているブロック3重対角行列表記式は
である。 It is.
まず、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510からブ
ロック3重対角行列のサイズの値p=385を読み出し、読み出した値pを、分割回数決
定(多項式)式(77)を用いて、
と級数展開することによって、自然数fi(i=1,2,3)をそれぞれf1=6,f2=
5,f3=0と決定する(ステップ340)。
And the natural number f i (i = 1, 2, 3) is converted into f 1 = 6 and f 2 = respectively.
5, f 3 = 0 is determined (step 340).
次に、中央演算処理装置300は、式(115)の右辺の各項のサイズpi(i=1,
2,3)と自然数fi(i=1,2,3)とを関連付けて項別分離パラメータセット(pi
,fi)=(256,6),(128,5),(1,0)としてサブメモリ500の項別
分離パラメータセット記憶領域570に記憶させる。
Next, the
2, 3) and the natural number f i (i = 1, 2, 3) are related to each other and the separation parameter set for each term (p i
, F i ) = (256, 6), (128, 5), (1,0) are stored in the item-specific separation parameter set
次に、中央演算処理装置300は、サブメモリ500のブロック3重対角行列表記式記
憶領域520から、ブロック3重対角行列の3重対角成分を読み出し、読み出した3重対
角成分からブロック3重対角行列表記式(114)を生成する。
Next, the
次に、中央演算処理装置300は、サブメモリ500の項別分離パラメータセット記憶
領域570から項別分離パラメータセット(pi,fi)=(256,6),(128,5
),(1,0)を読み出し、読み出したp1=256,p2=128,p3=1を分離のサ
イズとして、ブロック3重対角行列表記式(114)を3つの分離ブロック3重対角行列
表記式
), (1,0), and the read p 1 = 256, p 2 = 128, and p 3 = 1 are set as separation sizes, and the block tridiagonal matrix notation (114) is converted into three separation block triples. Diagonal matrix notation
に分離する(ステップ350)。 (Step 350).
そして、中央演算処理装置300は、分離ブロック3重対角行列表記式(116),(
117)に対しては、ステップ360以降の処理を施し、分離ブロック3重対角行列表記
式(118)に対しては、その係数行列が4行4列のスカラー正方行列なので、既存の方
法で直接逆行列を計算させることによって、境界部分のベクトル成分
117) is processed after
を取り出した後に、ステップ410以降の処理を施せばよい。この処理には既存の数値計
算プログラムを用いればよい。
After the process is taken out, the processing after step 410 may be performed. An existing numerical calculation program may be used for this processing.
以上の説明から明らかなように、本発明において最も重要なことは、ブロック3重対角
行列を4行4列のブロック正方行列を分割の単位として分割し、その逆行列を求める際に
、ブロック零行列の存在に注目することによって得られた特定の代数関係式を用いた点に
ある。これによって、従来の計算装置における逆行列の通常の計算方法よりも大幅な処理
時間の短縮を実現可能となった。
As is clear from the above description, the most important thing in the present invention is that when the block tridiagonal matrix is divided using a 4-by-4 block square matrix as a unit of division and the inverse matrix is obtained, The point lies in using a specific algebraic relation obtained by paying attention to the existence of the zero matrix. As a result, the processing time can be significantly shortened compared with the normal calculation method of the inverse matrix in the conventional calculation apparatus.
つまり、特許文献1記載の計算装置においては、分割プロセスに伴う逆行列の計算を従
来の計算方法を用いて計算させているのに対して、本発明の計算装置においては、分割の
単位を4行4列のブロック正方行列に限定したことによって、逆行列を計算させる際に上
記のような代数関係式を用いることが可能となる。これによって、特許文献1記載の計算
方法と比較した場合に、逆行列の計算に際し、その計算量がより少なくなることは明らか
である。
That is, in the calculation device described in
更に、本実施形態(第1〜第3の実施形態)においては、ブロック3重対角行列のすべ
てのブロック3重対角成分異なる場合を想定したわけだが、実際の計算においては、対角
線上のブロック行列成分はすべて同じ行列、対角線上より上(右)側のブロック行列成分
はすべて同じ行列、対角線上より下(左)側のブロック行列成分はすべて同じ行列である
ことが多い。その場合には、ブロック3重対角行列は,実質的に3種類のブロック行列成
分から構成されることになり、本発明の効果は一層顕著となる。なぜならば、分割ブロッ
ク3重行列がすべて分割ブロック3重行列表記式において同じとなるため、実質的には一
つの分割ブロック3重行列表記式を計算させればよいからである。また、その場合、特定
の代数関係式が大幅に簡単になるので、計算時間を一層短縮することができることになる
。
Furthermore, in the present embodiment (first to third embodiments), it is assumed that all block tridiagonal components of the block tridiagonal matrix are different, but in the actual calculation, on the diagonal line. The block matrix components are all the same matrix, the block matrix components above (right) on the diagonal are all the same matrix, and the block matrix components below (left) on the diagonal are often all the same matrix. In that case, the block tridiagonal matrix is substantially composed of three types of block matrix components, and the effect of the present invention becomes more remarkable. This is because all the divided block triple matrices are the same in the divided block triple matrix notation, and therefore, it is only necessary to calculate one divided block triple matrix notation. In this case, the specific algebraic relational expression is greatly simplified, so that the calculation time can be further reduced.
以上の効果を明らかにするために、本発明の第1の実施形態に係る計算方法を用いた具体的な計算結果を示すことにする。 In order to clarify the above effects, specific calculation results using the calculation method according to the first embodiment of the present invention will be shown.
例題として、2次元平面上の平行四辺形領域において、スカラー変数の物理量
As an example, in a parallelogram area on a two-dimensional plane, physical quantities of scalar variables
に対するラプラス方程式
を有限要素法を用いて解くことを考える。ラプラス方程式とは、熱伝導現象の熱平衡状態のような静的な平衡状態や定常的現象を記述する楕円型偏微分方程式である。本例題では、長辺及び短辺の長さがそれぞれa,b,∠ABC=120°,∠BCD=60°の平行四辺形ABCDを、図9に示すように、2(p+1)(z+1)個の単体(正三角形)に分割し、各節点を(i,j)(ここで、i=0,1,・・・,p+1,j=0,1,・・・,z+1,p≧z)と番号付けした領域上で考える。このとき、上記物理量
Is solved using the finite element method. The Laplace equation is an elliptic partial differential equation describing a static equilibrium state such as a thermal equilibrium state of a heat conduction phenomenon or a stationary phenomenon. In this example, a parallelogram ABCD having long sides and short sides of a, b, bABC = 120 ° and ∠BCD = 60 ° is represented by 2 (p + 1) (z + 1) as shown in FIG. It is divided into a single unit (regular triangle), and each node is set to (i, j) (where i = 0, 1,..., P + 1, j = 0, 1,..., Z + 1, p ≧ z ) On the numbered area. At this time, the physical quantity
は各節点上で
On each node
(ここで、i=0,1,・・・,p+1,j=0,1,・・・,z+1,p≧z)と離散化される。本例題では、解析条件として、p=256,z=100を設定する。この前提の下で、2次元ラプラス方程式(120)を有限要素法により離散化すると、式(1)に対応するブロック3重対角行列表記式として
を得る。 Get.
ここで,式(2)に対応する
Here, it corresponds to equation (2)
は、
で表される256行256列のブロック3重対角行列であり、各ブロック3重対角成分
Is a block tridiagonal matrix of 256 rows and 256 columns and each block tridiagonal component
はそれぞれ、
として表される100行100列の正方行列となる。 As a 100 × 100 square matrix.
また、式(3)に対応する
Also, it corresponds to equation (3)
は、
として表される256行1列のブロック未知数ベクトルであり、式(4)に対応する式(124)の単位成分
Is a block unknown vector of 256 rows and 1 column expressed as: a unit component of the equation (124) corresponding to the equation (4)
は、
として表される100行1列の未知数ベクトルである。 Is an unknown vector of 100 rows and 1 column expressed as
また、式(5)に対応する
Moreover, it respond | corresponds to Formula (5).
は、
として表される256行1列のブロック既知数ベクトルである。ここで、式(126)の右辺の単位成分
Is a block known vector of 256 rows and 1 column expressed as Here, the unit component on the right side of Expression (126)
は、
として表される100行1列の既知数ベクトルである。本例題では、境界条件を表す式(126)のブロック既知数ベクトルとして、
を設定する(ディレクレ型境界条件)。 Is set (directive boundary condition).
そして、中央演算処理装置300は、ブロック3重対角行列(122)のブロック3重対角行列成分(123)と、ブロック既知数ベクトル(126)をサブメモリ500のブロック3重対角行列表記式記憶領域520に記憶させる。
The
次に、中央演算処理装置300は、サブメモリ500の解析条件記憶領域510からブロック3重対角行列(122)のサイズの値p=256を読み出し、この値と分割回数決定式(7)から
を満たす自然数f=6を求め(ステップ120)、この値を分割の回数rの上限として設定する(ステップ130)。 A natural number f = 6 that satisfies the above is obtained (step 120), and this value is set as the upper limit of the number r of divisions (step 130).
次に、中央演算処理装置300は、分割の回数rの初期値をr=1に設定し、第1回目の分割プロセスを開始する(ステップ140)。本例題の場合、中央演算処理装置300は、ブロック3重対角行列表記式(121)を4行4列のブロック正方行列である第1分割ブロック行列
を単位として
As a unit
等分にブロック化する(ステップ150)。そして、中央演算処理装置300は、ステップ160において、第1分割ブロック行列(130)のブロック3重対角成分を第1代数関係式(11)に直接代入することによって、式(10)に対応する第1分割ブロック逆行列を算出する。以降、図2のステップ170〜200の処理をr=6まで繰り返し、次いで、ステップ210以降の処理を施すことによって、ブロック未知数ベクトル(124)を算出する。
Blocks are equally divided (step 150). In
この処理を、数式計算処理ソフトMathematicaを用いて汎用パーソナルコンピュータで計算させた結果を図10に示す。この計算結果を得るのに要する実時間
FIG. 10 shows the result of calculating this processing with a general-purpose personal computer using mathematical expression calculation software Mathematica. Real time required to obtain this calculation result
を特許文献1に記載の計算方法で本例題を最適に計算させた場合の実時間
Is the real time when this example is optimally calculated by the calculation method described in
と比較すると、共に、pの一次関数として
と評価できる。更に、z=100の場合、
と評価できるので、式(131)と(132)から、
となることがわかる。本例題ではp=256であるが、pがより大きい場合、式(133)から特許文献1の計算方法と比較しておよそ7倍の計算時間の短縮が見込めることがわかる。
It turns out that it becomes. In this example, p = 256. However, when p is larger, it can be seen from Formula (133) that the calculation time can be shortened by about 7 times compared with the calculation method of
特許文献1と比較した場合、本発明においてこのような計算時間の短縮が見込める理由は、ステップ160,210で逆行列を求める際に、所定の代数関係式を用いて逆行列を直接計算させたことに起因する。また、本例題の場合のように、ブロック3重対角行列の主対角成分がすべて行列
The reason why such a reduction in calculation time can be expected in the present invention when compared with
であり、その上下の対角成分のすべてがそれぞれ、行列
And all of the diagonal components above and below are matrix
、行列
,line; queue; procession; parade
であるような質の良い行列(122)の場合には、各分割段階における分割ブロック行列がすべて同じ行列になるので、1回だけ分割ブロック逆行列を求めればよいことになる。ステップ210においても同様にして、圧縮ブロック逆行列を1回だけ求めればよいことになる。一方、特許文献1の計算方法では、逆行列の計算はすべて従来の方法を採用しているため、本例題のような場合であってもかなり計算時間を費やすことになる。この差はpの値が大きい場合には一層顕著になることは明らかである。
In the case of a good quality matrix (122), the divided block matrixes at the respective division stages are all the same matrix, so that the divided block inverse matrix need only be obtained once. Similarly, in
また、本実施形態の各種分割及び圧縮化のプロセスは複数の中央演算処理装置を用いて並列計算処理させることが望ましい。これに関して、図1に示す本実施形態の計算装置において、バス600として外部バスを想定しているが、バス600に拡張バスを使用することによって複数のコンピュータの中央演算処理装置を使用して本発明に係る連立一次方程式の計算プログラムを実施させることも可能である。もちろん、単一の中央演算処理装置を用いて各種分割及び圧縮プロセスをタイムシェアリング法を用いて処理することも可能であるし、複数の中央演算処理装置にタイムシェアリング法を適用するといった並列処理+タイムシェアリング法を使用してもよいことは明らかである。 In addition, it is desirable that the various division and compression processes of this embodiment be performed in parallel calculation processing using a plurality of central processing units. In this regard, in the computing device of the present embodiment shown in FIG. 1, an external bus is assumed as the bus 600. However, by using an expansion bus for the bus 600, a central processing unit of a plurality of computers can be used. It is also possible to execute a calculation program for simultaneous linear equations according to the invention. Of course, it is possible to process various divisions and compression processes using a single central processing unit using a time sharing method, or to apply a time sharing method to a plurality of central processing units. Obviously, a processing + time sharing method may be used.
また、本発明に係る連立一次方程式の計算プログラムは、MO、MD、DATA、IDフォーマットなどの光磁気ディスク、CD−R、CR−RW、DVD−RAM、DVD−RWなどの光ディスク、フレキシブルディスク、zip、Super Diskなどの磁気ディスク、磁気テープ、メモリースティック、スマートメディア、PCカードなどのフラッシュメモリなどのコンピュータによって読み取り可能な記録媒体に記録することができる。コンピュータは、これらの記憶媒体に記録されている計算プログラムを読み取ることによって、一般の多重対角行列を係数行列として有する連立一次方程式を短時間で解くことができる。 The simultaneous linear equation calculation program according to the present invention includes a magneto-optical disk such as MO, MD, DATA, and ID format, an optical disk such as CD-R, CR-RW, DVD-RAM, and DVD-RW, a flexible disk, The recording can be performed on a computer-readable recording medium such as a magnetic disk such as zip or super disk, a magnetic tape, a memory stick, smart media, or a flash memory such as a PC card. The computer can solve the simultaneous linear equations having a general multi-diagonal matrix as a coefficient matrix in a short time by reading the calculation program recorded in these storage media.
本実施形態で示した解析手順は、上記の各種の記録媒体や、インターネット、イントラネットなどの回線を介してコンピュータに提供される。これによって、コンピュータは、上記の連立一次方程式の計算プログラムを実行することによって、一般の多重対角行列を係数行列として有する連立一次方程式を短時間で解くことができる。 The analysis procedure shown in the present embodiment is provided to the computer via the various recording media described above, and lines such as the Internet and an intranet. Thus, the computer can solve the simultaneous linear equations having a general multi-diagonal matrix as a coefficient matrix in a short time by executing the above-described simultaneous linear equation calculation program.
入力装置 100
出力装置 200
中央演算処理装置 300
メインメモリ 400
サブメモリ 500
解析条件記憶領域 510
ブロック3重対角行列表記式記憶領域 520
第1分割ブロック逆行列記憶領域 5401
第1圧縮ブロック行列表記式記憶領域5501
第r分割ブロック逆行列記憶領域 540r
第r圧縮ブロック行列表記式記憶領域 550r
第f(最終)分割ブロック逆行列記憶領域 540f
第f(最終)圧縮ブロック行列表記式記憶領域 550f
ブロックN重対角行列表記式記憶領域 560
項別分離パラメータ記憶領域 570
分離ブロック3重対角行列表記式記憶領域 580
結合ブロック行列表記式記憶領域 590
スカラーq重対角行列表記式記憶領域 595
外部バス 600
Analysis
Block tridiagonal matrix
First divided block inverse
First compressed block matrix
R-th divided block inverse
R-th compressed block matrix
F (final) divided block inverse
F (final) compressed block matrix
Block N double diagonal matrix
Item-specific separation
Separate block tridiagonal matrix
Combined block matrix
Scalar q multi-diagonal matrix
External bus 600
Claims (7)
前記連立一次方程式の係数行列として正方行列を成分とするブロック3重対角行列の入
力を促す係数行列入力手段と、
前記ブロック3重対角行列の入力に基づき、前記連立一次方程式からブロック3重対角
行列表記式(ブロック3重対角行列×ブロック未知数ベクトル=ブロック既知数ベクトル
)を生成するブロック3重対角行列表記式生成手段と、
前記ブロック3重対角行列のサイズから分割の回数を決定する分割回数決定手段と、
前記ブロック3重対角行列表記式を、4行4列のブロック正方行列を単位として複数の
分割ブロック行列表記式(分割ブロック行列×分割ブロック未知数ベクトル=分割ブロッ
ク既知数ベクトル)として分割するブロック行列表記式分割手段と、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する分割ブロック逆行列演算手段と、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式(分割ブロ
ック未知数ベクトル=分割ブロック逆行列×分割ブロック繰り込みベクトル)を生成する
繰り込みブロック行列表記式生成手段と、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式(圧縮ブロック行列×圧縮ブロック
未知数ベクトル=圧縮ブロック繰り込みベクトル)を生成する圧縮ブロック行列表記式生
成手段と、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分
割から圧縮までの操作を再帰的に繰り返す再帰操作制御手段と、
前記再帰操作制御手段によって前記分割の回数の上限まで繰り返されて得られたすべて
の圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記分割ブロッ
ク逆行列生成手段で生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作
とは逆の順番に施すことによって求める逆算求解手段と、
して機能させる連立一次方程式の計算プログラム。 Computer to solve simultaneous linear equations,
Coefficient matrix input means for prompting input of a block tridiagonal matrix having a square matrix as a coefficient matrix of the simultaneous linear equations;
A block tridiagonal that generates a block tridiagonal matrix notation (block tridiagonal matrix × block unknown vector = block known vector) from the simultaneous linear equations based on the input of the block tridiagonal matrix Matrix expression generation means;
Division number determination means for determining the number of divisions from the size of the block tridiagonal matrix;
A block matrix for dividing the block tridiagonal matrix notation into a plurality of divided block matrix notations (divided block matrix × divided block unknown vector = divided block known number vector) in units of a 4 × 4 block square matrix A notation dividing means;
A divided block inverse matrix computing means for computing a divided block inverse matrix that is an inverse matrix of the plurality of divided block matrices using a predetermined algebraic relational expression;
From the plurality of divided block unknown vectors, the plurality of divided block known vectors, and the plurality of divided block inverse matrices, a plurality of renormalization block matrix expressions (divided block unknown vector = divided block inverse matrix × divided block renormalization) Renormalization block matrix expression generating means for generating (vector),
A compressed block matrix that generates a compressed block matrix notation (compressed block matrix × compressed block unknown vector = compressed block renormalization vector) by extracting and compressing only vector components located at the boundaries of the plurality of renormalization block matrix notations A notation generation means;
Recursive operation control means for recursively repeating the operations from the division to the compression on the compressed block matrix notation, with the determined number of divisions as an upper limit,
A plurality of divided blocks generated by the divided block inverse matrix generation unit are used as the values of the compressed block unknown vector in all the compressed block matrix notations obtained by the recursive operation control unit repeated up to the upper limit of the number of divisions. A reverse calculation solution means for obtaining an inverse matrix by applying the inverse matrix in the reverse order to the operation from the division to the compression;
A simultaneous linear equation calculation program that allows them to function.
の各項の次数に基づき、前記分割の回数を決定することを特徴とする請求項1記載の連立
一次方程式の計算プログラム。 2. The simultaneous primary according to claim 1, wherein the division number determining means determines the number of divisions based on the order of each term when the size of the block tridiagonal matrix is expanded to the power of 2. Equation calculation program.
p=2f+2を満たすような自然数fとして前記分割の回数を決定することを特徴とする請
求項1又は2記載の連立一次方程式の計算プログラム。 The division number determining means determines the number of divisions as a natural number f satisfying the relational expression p = 2 f + 2 when the size of the block tridiagonal matrix is p. 3. A program for calculating simultaneous linear equations according to item 1 or 2.
前記連立一次方程式の係数行列として正方行列を成分とするブロック3重対角行列の入
力を促す係数行列入力手段と、
前記ブロック3重対角行列の入力に基づき、前記連立一次方程式からブロック3重対角
行列表記式(ブロック3重対角行列×ブロック未知数ベクトル=ブロック既知数ベクトル
)を生成するブロック3重対角行列表記式生成手段と、
前記ブロック3重対角行列のサイズから分割の回数を決定する分割回数決定手段と、
前記ブロック3重対角行列表記式を、4行4列のブロック正方行列を単位として複数の
分割ブロック行列表記式(分割ブロック行列×分割ブロック未知数ベクトル=分割ブロッ
ク既知数ベクトル)として分割するブロック行列表記式分割手段と、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する分割ブロック逆行列演算手段と、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式(分割ブロ
ック未知数ベクトル=分割ブロック逆行列×分割ブロック繰り込みベクトル)を生成する
繰り込みブロック行列表記式生成手段と、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式(圧縮ブロック行列×圧縮ブロック
未知数ベクトル=圧縮ブロック繰り込みベクトル)を生成する圧縮ブロック行列表記式生
成手段と、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記分
割から圧縮までの操作を再帰的に繰り返す再帰操作制御手段と、
前記再帰操作制御手段によって前記分割の回数の上限まで繰り返されて得られたすべて
の圧縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記分割ブロッ
ク逆行列生成手段で生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作
とは逆の順番に施すことによって求める逆算求解手段と、
からなる連立一次方程式の計算装置。 A computing device for solving simultaneous linear equations,
Coefficient matrix input means for prompting input of a block tridiagonal matrix having a square matrix as a coefficient matrix of the simultaneous linear equations;
A block tridiagonal that generates a block tridiagonal matrix notation (block tridiagonal matrix × block unknown vector = block known vector) from the simultaneous linear equations based on the input of the block tridiagonal matrix Matrix expression generation means;
Division number determination means for determining the number of divisions from the size of the block tridiagonal matrix;
A block matrix for dividing the block tridiagonal matrix notation into a plurality of divided block matrix notations (divided block matrix × divided block unknown vector = divided block known number vector) in units of a 4 × 4 block square matrix A notation dividing means;
A divided block inverse matrix computing means for computing a divided block inverse matrix that is an inverse matrix of the plurality of divided block matrices using a predetermined algebraic relational expression;
From the plurality of divided block unknown vectors, the plurality of divided block known vectors, and the plurality of divided block inverse matrices, a plurality of renormalization block matrix expressions (divided block unknown vector = divided block inverse matrix × divided block renormalization) Renormalization block matrix expression generating means for generating (vector),
A compressed block matrix that generates a compressed block matrix expression (compressed block matrix × compressed block unknown vector = compressed block renormalization vector) by extracting and compressing only the vector components located at the boundary portions of the plurality of renormalization block matrix expressions A notation generation means;
Recursive operation control means for recursively repeating the operations from the division to the compression on the compressed block matrix notation, with the determined number of divisions as an upper limit,
A plurality of divided blocks generated by the divided block inverse matrix generation unit are used as the values of the compressed block unknown vector in all the compressed block matrix notations obtained by the recursive operation control unit repeated up to the upper limit of the number of divisions. A reverse calculation solution means for obtaining an inverse matrix by applying the inverse matrix in the reverse order to the operation from the division to the compression;
A system for calculating simultaneous linear equations.
前記連立一次方程式の係数行列として正方行列を成分とするブロック3重対角行列の入
力を促す第1ステップと、
前記ブロック3重対角行列の入力に基づき、前記連立一次方程式からブロック3重対角
行列表記式(ブロック3重対角行列×ブロック未知数ベクトル=ブロック既知数ベクトル
)を生成する第2ステップと、
前記ブロック3重対角行列のサイズから分割の回数を決定する第3ステップと、
前記ブロック3重対角行列表記式を、4行4列のブロック正方行列を単位として複数の
分割ブロック行列表記式(分割ブロック行列×分割ブロック未知数ベクトル=分割ブロッ
ク既知数ベクトル)として分割する第4ステップと、
前記複数の分割ブロック行列の逆行列である分割ブロック逆行列を所定の代数関係式を
用いて演算する第5ステップと、
前記複数の分割ブロック未知数ベクトルと、前記複数の分割ブロック既知数ベクトルと
、前記複数の分割ブロック逆行列とから、複数の繰り込みブロック行列表記式(分割ブロ
ック未知数ベクトル=分割ブロック逆行列×分割ブロック繰り込みベクトル)を生成する
第6ステップと、
前記複数の繰り込みブロック行列表記式の境界部分に位置するベクトル成分のみを取り
出し圧縮することによって、圧縮ブロック行列表記式(圧縮ブロック行列×圧縮ブロック
未知数ベクトル=圧縮ブロック繰り込みベクトル)を生成する第7ステップと、
前記決定された分割の回数を上限として、前記圧縮ブロック行列表記式に対して前記第
4ステップから第7ステップまでを再帰的に繰り返す第8ステップと、
前記第8ステップによって前記分割の回数の上限まで繰り返されて得られたすべての圧
縮ブロック行列表記式における圧縮ブロック未知数ベクトルの値を、前記第5ステップで
生成された複数の分割ブロック逆行列を前記分割から圧縮までの操作とは逆の順番に施す
ことによって求める第9ステップと、
からなる連立一次方程式の求解方法。 A calculation method for solving simultaneous linear equations using a computer,
A first step for prompting input of a block tridiagonal matrix having a square matrix as a coefficient matrix of the simultaneous linear equations;
A second step of generating a block tridiagonal matrix notation (block tridiagonal matrix × block unknown vector = block known vector) from the simultaneous linear equations based on the input of the block tridiagonal matrix;
A third step of determining the number of divisions from the size of the block tridiagonal matrix;
The block tridiagonal matrix notation is divided into a plurality of divided block matrix notations (divided block matrix × divided block unknown vector = divided block known number vector) in units of a 4 × 4 block square matrix. Steps,
A fifth step of calculating a divided block inverse matrix that is an inverse matrix of the plurality of divided block matrices using a predetermined algebraic relational expression;
From the plurality of divided block unknown vectors, the plurality of divided block known vectors, and the plurality of divided block inverse matrices, a plurality of renormalization block matrix expressions (divided block unknown vector = divided block inverse matrix × divided block renormalization) A sixth step of generating (vector),
A seventh step of generating a compressed block matrix notation (compressed block matrix × compressed block unknown vector = compressed block renormalization vector) by extracting and compressing only vector components located at the boundary portions of the plurality of renormalization block matrix notations When,
An eighth step of recursively repeating the fourth step to the seventh step with respect to the compressed block matrix notation, with the determined number of divisions as an upper limit;
The value of the compressed block unknown vector in all the compressed block matrix notations obtained by repeating up to the upper limit of the number of divisions in the eighth step, and the plurality of divided block inverse matrices generated in the fifth step A ninth step determined by performing in the reverse order to the operation from division to compression;
Method for solving simultaneous linear equations consisting of
た際の各項の次数に基づき、前記分割の回数を決定することを特徴とする請求項5記載の
連立一次方程式の求解方法。 6. The simultaneous primary according to claim 5, wherein in the third step, the number of divisions is determined based on the order of each term when the size of the block tridiagonal matrix is expanded to the power of 2. Equation solving method.
係式p=2f+2を満たすような自然数fとして前記分割の回数を決定することを特徴とす
る請求項5又は6記載の連立一次方程式の求解方法。 The number of divisions is determined as a natural number f satisfying the relational expression p = 2 f + 2 when the size of the block tridiagonal matrix is p in the third step. 7. A method for solving simultaneous linear equations according to item 5 or 6.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005105221A JP2006048637A (en) | 2004-06-28 | 2005-03-31 | Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004190439 | 2004-06-28 | ||
| JP2005105221A JP2006048637A (en) | 2004-06-28 | 2005-03-31 | Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006048637A true JP2006048637A (en) | 2006-02-16 |
Family
ID=36027077
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005105221A Withdrawn JP2006048637A (en) | 2004-06-28 | 2005-03-31 | Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006048637A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120144318A (en) * | 2025-05-13 | 2025-06-13 | 深圳市昊源诺信科技有限公司 | High-performance computing memory power consumption optimization method and system based on deep learning |
-
2005
- 2005-03-31 JP JP2005105221A patent/JP2006048637A/en not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120144318A (en) * | 2025-05-13 | 2025-06-13 | 深圳市昊源诺信科技有限公司 | High-performance computing memory power consumption optimization method and system based on deep learning |
| CN120144318B (en) * | 2025-05-13 | 2025-07-22 | 深圳市昊源诺信科技有限公司 | High-performance computing memory power consumption optimization method and system based on deep learning |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5754181A (en) | Computer aided design system | |
| Canny et al. | A subdivision-based algorithm for the sparse resultant | |
| Lipton et al. | Robustness of isogeometric structural discretizations under severe mesh distortion | |
| Ionita et al. | Data-driven parametrized model reduction in the Loewner framework | |
| Stinstra et al. | Constrained maximin designs for computer experiments | |
| JP6950675B2 (en) | Information processing equipment, information processing methods, data structures and programs | |
| JP5724814B2 (en) | Thermal fluid simulation program, thermal fluid simulation apparatus, and thermal fluid simulation method | |
| Haider et al. | Parallel implementation of k-exact finite volume reconstruction on unstructured grids | |
| Carson et al. | Accuracy of the s-step Lanczos method for the symmetric eigenproblem in finite precision | |
| CN104469374A (en) | image compression method | |
| Barkouki et al. | An adaptive rational block Lanczos-type algorithm for model reduction of large scale dynamical systems | |
| EP4231276A1 (en) | Hidden decision tree test device, hidden decision tree test system, hidden decision tree test method, and program | |
| KR102266279B1 (en) | Method for Building Reduced Order Model for Implementing Transient State | |
| Aryani et al. | A numerical technique for solving nonlinear fractional stochastic integro-differential equations with n-dimensional Wiener process | |
| JP2018163396A (en) | Piecewise linear approximation function generation apparatus and method | |
| JP6065543B2 (en) | Neural network design method, fitting method, and program | |
| JPH0921720A (en) | Method for analyzing vibration of structure | |
| Jamali et al. | A novel two point optimal derivative free method for numerical solution of nonlinear algebraic, transcendental Equations and application problems using weight function | |
| Li et al. | Fast prediction of phase equilibrium at varying temperatures for use in multi-component phase field models | |
| JP2006048637A (en) | Simultaneous linear equation calculation program, simultaneous linear equation calculator, and simultaneous linear equation solving method | |
| Omar | An integrated genetic algorithm and homotopy analysis method to solve nonlinear equation systems | |
| JP6651254B2 (en) | Simulation method, simulation program, and simulation device | |
| JP3864059B2 (en) | Calculation program for simultaneous linear equations generated by discretization of differential equation, computer-readable recording medium recording the calculation program, and calculation device for simultaneous linear equations | |
| JP7452247B2 (en) | Conversion program, conversion method, and information processing device | |
| EP4231274A1 (en) | Secret decision tree testing device, secret decision tree testing system, secret decision tree testing method, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |