Numerical Method & Algebla
Simultaneous Equations

ここでは、連立方程式を機械的に解く方法で、最も広く使われているGaussの消去法を紹介します。 この部分を理解するのに、高等な学力は必要ありません。精々、中学レベルで十分です。しかし、連立方程式の解き方は、有限要素法での解析精度に大きな影響を与えますので、計算結果に含まれる誤差については、しっかりと勉強する必要があります。また、計算効率も、有限要素法のプログラミングでは、重要なファクターの1つです。

このセックションでは、有限要素法でのプログラミングでよく使われる、 4つの型のGaussの消去法を紹介します。しかし、市販されているソフトでは、もっと安定度が高く計算効率の良いGaussの消去法が使われています。それらについては、書物を参考にして下さい。

■FEMにおける連立方程式の解法の概要■
有限要素法では、微分方程式を離散化し連立方程式を作ります。つまり、[K]{u}={RHS}です。その連立方程式に境界条件を埋め込み、未知数(unknowns {u}) について解きます。
流体解析で紹介しているプログラムの行数は、約900行ですが、連立方程式を解くサブプログラムは、28行で全体の3%以下です。このプログラムを実行すると、連立方程式の計算にCPU 時間で全体の約80%を費やします。つまり、連立方程式の解法には、効率の良い計算方法が望まれます。
次に、マトリックス[K]の状態ですが、対称と非対称があります。また、対角要素が強いかいなかも、連立方程式を解く上で重要な要因になります。運よく、有限要素法において、マトリックス[K]は対称でかつ対角要素が強くなることが多いのです。また、マトリックスが対称で対角要素が強いことは、連立方程式を解く上で大きな利点になります。

■2X2の連立方程式■
前置きはこれぐらいにして、とりあえず、マトリックスが 2X2の連立方程式の解法から始めたいと思います。下に示す連立方程式を解いてみよう。

ここでは、この連立方程式のマトリックスを[A]{X}={B}で表わすことにします。未知数{X}について解くと次のようになります。

これは、{X}=[A]-1{B}であり、上式から{X}{B}を取り除くと、[A]-1が残ります。 これを、[A]の逆行列(Inverse of Matrix)といいます。さらに、a11a22-a12a21を[A]の行列値(Determinant of Matrix)といい、det[A]と書きます。ここで重要なことは、|det[A]|>0でないと連立方程式の解はないということになります。

この方法で連立方程式を解く場合、[A]の逆行列は、 [A]-1=[adj[A]]/det[A]で機械的に計算できます。その他に、有名な方法として”Kramer's rule”が有ります。これは、行列値の比で{X}を求める方法です。
しかし、これらの方法は、残念ながら効率的に連立方程式を解く方法ではありません。精々、3X3の連立方程式が限度です。それ以上になると、掛け算と割り算の数が、Gaussの消去法に比べ多くなり、有限要素法のプログラムには、不向きです。

Matrix NEXT
Menu Integral Derivative Matrix Simultaneous