Subsections

2 連立方程式

2.1 表現方法

言うまでも無く連立1次方程式(Linear Equations)は、次のような形をしている。

\begin{equation*}\begin{aligned}a_{11}x_1+a_{12}x_2+a_{13}x_3+\cdots+a_{1N}x_N&=...
...a_{M1}x_1+a_{M2}x_2+a_{M3}x_3+\cdots+a_{MN}x_N&=b_M \end{aligned}\end{equation*}

ここでは、$ M=N$ の場合を考える。$ M \ne N$ のようなものは、ここでの講義のレベルを超 えるので、興味がある人は自分で学習すること。このような連立1次方程式を計算するこ とは、実際に工学の問題でしばしば現れる。例えば、編微分方程式を離散化して解く場合 などである。その場合、方程式の次元数がかなり大きく、100万元くらいは普通である。 100万といっても、3次元問題だと、 $ 100 \times 100 \times 100$ 程度であるので、まだ まだ精度は荒い。           

式(1)は行列とベクトルで書くと、式がすっきりして 考えやすくなる。書き直すと、

$\displaystyle \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}$ (2)

となるのは、以前学習したとおりである。それぞれの行列とベクトルは、

\begin{equation*}\begin{aligned}\boldsymbol{A}&= \begin{bmatrix}a_{11} & a_{12} ...
...rix}b_1  b_2  b_3  \vdots b_N \end{bmatrix} \end{aligned}\end{equation*}

を表す。行列は大文字の太文字(bold)スタイル、ベクトルは小文字の太文字スタイル、そ れぞれの成分は標準スタイルで表されることが多い。

ここで、解く問題は行列 $ \boldsymbol{A}$ $ N \times N$ の正方行列で、その行列式がゼロでない ものとする。要するに、普通に解ける連立方程式である。ここで、解くべき問題は、既知 の $ \boldsymbol{A}$ $ \boldsymbol{b}$ から、行列方程式(2)を満た す、 $ \boldsymbol{x}$ を求めることになる。この行列方程式解く過程で、 $ \boldsymbol{A}$ の逆行列や行列 式の値を求めることができる。逆行列や行列式は連立方程式と密接にかかわっているので ある。

通常、連立1次方程式(1)は

\begin{equation*}\begin{aligned}\begin{bmatrix}a_{11} & a_{12} & a_{13} & \cdots...
...rix}b_1  b_2  b_3  \vdots b_N \end{bmatrix} \end{aligned}\end{equation*}

と書き表せる。このようにすると、見通しがかなり良くなる。皆さんも、今後連立方程式 を書くときは、行列とベクトルで書く方が良いであろう。ちょっとばかり格好良い。

行列やベクトルを使うと、格好良いばかりでなくコンピューターで扱いやすくなる。例え ば、行列 $ \boldsymbol{A}$ の要素$ a_{ij}$ はプログラム中では2次元配列a[i][j]として 扱える。同様にベクトル$ b_k$ は1次元配列b[k]として扱える。

2.2 計算方法

連立1次方程式は、クラメールの公式により、解のベクトル $ \boldsymbol{x}$ は四則演 算で計算できる。行列 $ \boldsymbol{A}$ が正則 $ (\det A \neq 0)$ ならば、解は

$\displaystyle x_j$ $\displaystyle =\frac{1}{\det A} \begin{vmatrix}a_{11} & a_{12} & a_{13} & \cdot...
... a_{N3} & \cdots & a_{1j-1} & b_{1j} & a_{1j+1} & \cdots & a_{NN} \end{vmatrix}$ (5)

である。これは、2つの行列式を計算する必要があり、計算量が大変多くなる。したがっ て、$ N \geq 4$ の場合は推奨できない。

次に考えられるのは、 $ \boldsymbol{A}$ の逆行列 $ \boldsymbol{A}^{-1}$ を用いて、 $ \boldsymbol{x}=\boldsymbol{A}^{-1}\boldsymbol{b}$ から計算する方法である。この方法も、計算量と精度の面で 問題がある。

連立1次方程式の計算方法は大別して、2通りある。1つは、ここで学習する消去法で、他 方は反復法と言われる方法である。どちらが良いかは、係数行列 $ \boldsymbol{A}$ の性質に依存す る。一般に、 $ \boldsymbol{A}$ が密なとき、即ちほとんどの要素がゼロでないときは、消去法が有 利である。一方、殆どの要素がゼロで、 $ \boldsymbol{A}$ が疎のとき、反復法が有利である。

ここでは消去法を学習するが、反復法について簡単に紹介しておく。まず、係数行列を $ \boldsymbol{A}=\boldsymbol{B}-\boldsymbol{C}$ と変形します。すると、元の連立1次方程式は、 $ \boldsymbol{B}\boldsymbol{x}=\boldsymbol{C}\boldsymbol{x}+\boldsymbol{b}$ となる。これを解くために、漸化式 $ \boldsymbol{B}\boldsymbol{x}^{(k+1)}=\boldsymbol{C}\boldsymbol{x}^{(k)}+\boldsymbol{b}$ とする。もし、初期値 $ \boldsymbol{x}^{(0)}$ が良ければ、 $ \boldsymbol{x}^{(\infty)}$ は真の解 $ \boldsymbol{x}$ に収束する。もちろ ん、 $ \boldsymbol{B}$ は容易に計算できる連立1次方程式になるように選ぶ。この選び方により、 ヤコビの反復法やガウス・ザイデル法、SOR法などがある。これらの方法については消去 法を学習した後に,学習する.


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2005-11-18


no counter