はじめMath! Javaでコンピュータ数学

第43回 行列の数学 逆行列と連立一次方程式 [前編]

この記事を読むのに必要な時間:およそ 2 分

柔道の技は派手さがありません。映画に登場するカンフーや空手のように,ジャンプしたり,宙返りすることはありません。柔道の技は,バランスの崩し合いです。前後左右,そして上下へ相手のバランスを崩すのが技の目的です。人間は,いったんバランスを崩してしまったら,後のコントロールが効きません。倒すも投げるも相手のなすがままです。前後の移動,足払い,手で引く,押す。柔道の技はこれらの組合せです。大変シンプルなのですが,奥の深い世界です。

さて,行列の数学を用いて連立一次方程式を解くという今回の学習内容は,大変シンプルな操作によって成り立っています。使用しているのは単純な加減乗除と式の並べ替えだけです。一定のわずかな約束に従って式の操作を繰り返していくと,あら不思議,気がつくと解が手に入ってしまいます。技はシンプルな操作の組合せ。門外漢からみると,まるで魔法のように見えてしまうのですが,実はとても単純なことを,几帳面にこなしているだけなのです。

図43.1 技とは地味で単純な操作の組合せ

図43.1 技とは地味で単純な操作の組合せ

逆行列

逆行列※1とは,元となる行列との積が単位行列になる正方行列のことです。逆行列に変換できる行列は正則※2である,また正則行列※3であるといいます。

式43.3のような正方行列があるとき,の逆行列といい,と書きます。

式43.3は,ある行列に逆行列が存在すると言うことは,行列で表現された方程式の解を求めることが出来ることを表しています。

※1)
inverse matrix
※2)
regular
※3)
regular matrix

連立一次方程式を行列の数学で解く

連立一次方程式は,構造物の強度計算や流体のシミュレーション等,科学技術計算に不可欠な手段です。未知数が少なければ手で計算することも出来ますが,通常,科学技術計算では多数の未知数があり,手で計算して解を求めることは現実的に不可能なものがほとんどです。そこで,今回学習するような方法を用いて,コンピュータに解を求めさせるのです。これは,コンピュータが不可能を可能にした技術の好例です。

一般的に,連立一次方程式は次のように書くことが出来ます。

x1xnは未知数,nは未知数の個数(元数),b1bnは定数を表しています。連立方程式に含まれるa11annは,方程式の係数です。これらを行列を用いて表現すると,次のように書き表すことが出来ます。

は係数行列,は解ベクトル,は定数項ベクトルと呼び,具体的には次のような行列です※4)。

式43.7の左辺をだけになるよう式変形すると,それはすなわち未知数の行列の値を決定できたと言うことになります。式の変形手順は,次のとおりです。

以上のことから,行列を用いて連立一次方程式を解くためには,係数行列の逆行列を求め,定数ベクトルとの積を計算すれば良いことがわかります。

ところが,逆行列を求めてから解を計算するアルゴリズムは効率が良くありません。そこで,できるだけ少ない手数で式43.7から式43.13への変形を行う方法が数多く考案されました。そのうちの一つが,次に紹介する方法です。

※3)
行列の数学で方程式を解く際,係数行列が正方行列でなければならない,という縛りに違和感を感じますか?思い出してみましょう。未知数がn個の方程式を解くためには,互いを加算や減算してもゼロになって消えてしまわないようなn個の方程式が必要でしたね。n個の未知数にn個の方程式,ですから係数行列は正方行列になるのです。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

コメントの記入