逆行列が不要であれば,ガウス・ジョルダン法よりも,後で述べるLU分解の法が計算速度
は速い.しかし,教育的効果を考えると,両方の方法を知っておくのは良いことである.
ガウス・ジョルダン(Gauss-Jordan)法というのは,連立方程式
(
4)を次にように変形させて,解く方法である.
この式から明らかに,求める解
となる.これをどうやって求めるか?.
コンピューターで実際に計算する前に,人力でガウス・ジョルダン法で計算してみる.例
として,
をガウス・ジョルダン法で解を求める.
解くべき,方程式
2行
1行
3行
1行
2行
1行
2行
3行
2行
3行
3行
これで,ガウス・ジョルダン法による対角化の作業は完了である.これか
ら,
と分かる.
これがガウス・ジョルダン法である.もっともらしい名前が付けられているが,大したこ
となはい.諸君が中学生以来,連立方程式を解いてきた方法である.
これで,ガウス・ジョルダン法が理解できたと思う.もう少し数学的にその内容を説明す
る2.そのために,次の線形行列方程式を考える.
ここでは,紙面の関係で係数行列が
について述べるが,一般的にへの拡
張は容易である.
|
(11) |
ここで,
は列拡大,つまりこの両側の括弧を取り去って行列をくっつ
けて幅を広くすること意味する.この式から,容易に
が分かる.もちろん,
は単位行列である.要するに行列方程式
(
11)を解くということは,この2つの連立方程式を解く
ことに他ならない.
はもとの方程式(
1)の解となり,
は
の逆行列である.
式(11)について,以下のことが容易に分かる.
-
の任意の2行を入れ替えて,それに対応する
と
を入れ替えた場合,
や
の値と順序は変わらない.た
だし,
はもはや単位行列ではない.これは連立方程式の順序を入れ替
えて書いていることに相当している.
-
の任意の行を,その行と別の行との線形結合に置き換え,同
時に対応する
と
も同様に置き換える.この場合,
と
の値と順序は変わらない.当然,この場合も
はもはや単
位行列ではない.
-
の任意の2列を入れ替えて,それに対応する
と
の行を入れ替えれば,
と
の順序は入れ替える必要
は無い.この場合,解の行の順序が変わるので,最後に元に戻す操作が必要
になる.
この3つの操作を組み合わせて,係数行列
を単位行列に変換するのがガウス・ジョ
ルダン法である.
が単位行列に変換されれば,右辺に
と
が表れ
る.したがって,解と逆行列が求められたことになる.もし,逆行列が不要であれば
だけ計算し,逆行列のみ必要であれば
のみ計算する.
先に示した,ガウス・ジョルダン法の3つの基本操作のうち,2番目しか使わない方法を
「ピボット選択なしのガウス・ジョルダン法」と言う.最初,人力で連立方程式を解いた
方法である.この方法の明らかにまずい点は,もし1にしたい対角要素がゼロの場合,計
算ができなくなってしまうところにある.この割る要素をピボット(pivot)と言う.ゼロ
でないにしても,そのピボットが非常に小さい値の場合,丸め誤差が大きくなり問題であ
る
3.このようなことから,普通は
ピボット選択なしのガウス・ジョルダン法というものは考えられない.
この問題を避けるためにどうするかというと,ピボット選択という方法を使う.方法は簡
単で,先に示した3つの基本操作のうち,1番目と3番目を使って,対角に素性の良い要素
をもってくる.1番目の操作のみを用いて行を入れ替える方法を,部分ピボット選択
(partial pivoting)と言う.1番目の操作と3番目の操作を使って,行と列を入れ替え
るのを完全ピボット選択(full pivoting)と言う.すでにある程度出来上がっている
単位行列を壊したくないので,ピボットの選択は操作している行の下の行から選ばなく
てはならない.
部分ピボット選択の方が明らかに簡単である.解の行列を入れ替える必要が無い
からである.その場合,行の入れ替えしかしないので,ピボットはその列から選
ばなくてはならない.完全ピボット選択の方が選べる要素が多いが,
最終的な解の精度はあまり変わらないようである.したがって,ここではプログ
ラムの簡単な部分ピボット選択で計算する事にする.
次に考えなくてはならないのは,ピボットを選択する基準である.簡単に言えば,
大きな要素選択すれば大体よい.しかし,ある行を100万倍して,それに
対応する右辺の行も100万倍することもできるので,ただ大きいというだけ
では問題がありそうである.どうするかと言うと,各方程式の最大係数を1に規
格化して,最大のものをピボットに選ぶことが行われている.この方法を陰
的ピボット選択(implicit pivoting)と呼ぶ.
これで,ピボットの問題も片付いたので,フローチャートを書いてみる.
ガウス・ジョルダン法のフローチャートを図
1に示す.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成18年10月16日