線形代数とは何か

連立方程式を解くことがその始まりだ。

[
前の記事へ]  [物理数学の目次へ]  [次の記事へ]


線形代数とは何か

 線形代数の「線形」の部分は「Linear」の訳である。これは「線状の」つまり、線の形をしたという意味である。ところで、一次関数のグラフは直線である。二次関数になると曲線になってしまう。2x+3y=0というような形のグラフも直線である。つまり「この分野では一次式のみを扱います」というニュアンスがここに込められているわけだ。

 代数というのは、変数を記号で表して、そこに数値を代入して方程式を解いたりする学問である。

 要するに線形代数とは「連立一次方程式」についての学問なのである。正体が分かってしまうだけで随分と気が楽になるだろう。
注意: 現代では「線形」の意味も「代数」の意味ももっと抽象化されてしまっているので、 こんな不正確な説明を野放しにしておくわけにはいかないとばかりに多くの批判が来そうではある。 まあ、勉強を続けていればいずれ気付くときが来るだろう。
 線形代数とは「連立一次方程式をいかに効率よく解くか」というテクニックを追求した結果をまとめたもの・・・、最初の目的を越えて少々やりすぎてしまったという感じのものだ。突き詰めてみると意外と奥が深かったために、学問に昇格したというやつである。

 この応用範囲がかなり広いので軽視するわけにはいかない。物理学に限ってみても、変数のやたら多い複雑な力学の問題を解くための解法を用意してくれたりする。それだけでなく、意外なところで微分方程式との関係も出てくるし、ついには量子力学にまで関係してくることになる。


本当に連立一次方程式から始める

 まずは次のような連立方程式を解くことを考えてみよう。
3x + 2y  6z = 74x          + 3z = 155x  6y +  z = 4
 この例題に隠された仕掛けはそんなにもない。係数が 0 になるところと 1 になるところがあった方が例としては良いだろうな、と思って作った。残りの係数はサイコロを振って決めた。解が簡単な整数になるように決めてから、右辺の数値を計算して書いた。まぁそれくらいだ。

 さて、中学や高校では式変形の途中の式をしっかり書き残すように指導されたかも知れないが、同じような式ばかり何度も何度も書き直し続けるのは面倒臭くはないか?そんな先生の言い付けをいつまでも守っている良い子ちゃんには何時まで経っても線形代数なんていうアイデアには到達できないだろう。計算のルールさえ破らなければ、次のように係数だけ抜き出して書いても答えが導けるではないか。
(3267403155614)
 守るべきそのルールとは何だったろう。中学で習った連立方程式の解き方を思い出してみよう。ん?!いや待て、中学でのことは忘れてもらおう。その方がいい。守るべきルールは次の二つだ。中学では別の手続きも習ったかも知れないが、本当はこれだけで解ける。

 (1)ある一つの式の両辺を定数倍( 0 を除く)してもよい。
(2)ある一つの式の両辺を定数倍したものを別の式に加えてもよい。

 定数倍するときに負の値を使えば、別の式から「引く」ことも実現できるのだから、ルールは本当にこの二つきりだ。

 このルールと同じことを、係数だけを抜き出して作った「行列」に対して実行しようとしたら、どのようにしたらいいだろうか。

 (1)ある行の数値の全てを定数倍( 0 を除く)してもよい。
(2)ある行を定数倍したものを別の行に加えてもよい。

 ここで「行」という言葉を使ったが、横一列の数値の並びのことを「」と呼ぶ。1 行目、2 行目、3 行目、と言えば、上から何番目かということだ。一方、縦一列の数値の並びのことを「」と呼ぶ。1 列目、2 列目、3 列目、と言えば、左から何番目かということを意味する。これは私が決めたのではなくて、全国共通の用語だ。

 我々の目的はこの連立方程式を、上記のルールだけを使って次の形に持ってゆくことである。いや・・・。いきなり答えがばれてしまうのが悔しいけれどもう書くしかないな。方程式を解く以上は最終的にこういう形に書けなくてはいけないということだ。
x            = 3y      = 2z = 1
 この状況を係数だけで表すと、次のようになる。
(100301020011)
 結局のところ、連立一次方程式を解くというのは、
(326403561)
というような行列を、上記のルールだけを使って
(100010001)
という形に直してやるというパズルゲームに他ならない。答えはその結果としてついでに破線の右側に現れるというわけだ。

 というわけで、係数を変えたりしてこのパズルゲームが本当に解けるものなのかどうか色々と試してもらいたい。今は 3 行 3 列で話をしたが、行列の縦横の数を変えてみたり、各自で最速解法を研究するのもいいだろう。

 ところで、上に書いた二つのルールを組み合わせることで、「二つの行を入れ替えても構わない」という新ルールを作ることができる。これは知っておくと便利なルールである。最初の二つのルールだけでこれを実現しようと思ったらおそらく 4 ターン必要だ。連立方程式に立ち返って考えれば、これは単に式の並び順を変えるだけのことに相当するので、最初から第 3 のルールとして入れても良かったのかも知れない。しかし「二つのルール」から導き出せることなので敢えて入れないでおいた。これが本当かどうか、そんなに難しいものではないから、疑い深い人は自分で確かめてみるといいだろう。


解けない場合がある

 いきなりばらしたくはないのだが、話をスピーディに進めるためには仕方ない。このパズルゲームには重大な欠陥がある。

 どんな問題であっても必ず
(100010001)
という形に持っていけるという保証がないのだ。それは問題が悪いのであって、解き方の手順の良し悪しには関係ない。問題が悪ければ解き方をどんなに工夫しても無理なのである。

 それは例えば次のように、一つ以上の行の全ての数字が 0 になってしまうことで終わりを迎える。
(523047000)
 この例では 3 行目が横一列、すべて 0 になってしまっている。ここからまだ幾らかの変形はできるけれども、目標の形に到達することはもう無理だ。

 なぜこのような状況になるのか説明できるだろうか。こうなる直前、どこかの行を定数倍したものを 3 行目から引いた結果としてこうなったはずなのである。つまり、方程式に立ち返って考えると、左辺に関しては、どこかの行とそっくり似た形の式になっていたためにすっかり消されたというわけだ。

 では次に破線の右にある数字、つまり右辺にも注目してみよう。もし次のような状況、つまりある行が右辺も含めて全て 0 になっていたらというのを考えてみる。
(5231104720000)
 これはこうなる直前、二つの行が、右辺も左辺もどちらも定数倍しただけの関係にあったのである。つまりまったく同じ意味の式が二つ存在していたということになる。一つの式が無駄に存在していたわけだ。

 この時、変数が 3 つあるのに対して条件式が 2 つしかなかったことになるので、解についての制限が緩く、解は無数に存在することになる。

 別の場合として次のような状況、左辺の係数が全て 0 になったのに、右辺の数値だけが 0 でない場合についても考えてみよう。
(5231104720008)
 この 3 行目の意味を数式で表すと次のようだということだ。
0x + 0y + 0z = 8
 左辺は 0 なのに、右辺は 8 だとは!これは明らかに矛盾している。

 なぜこのような状況が生じたかと言うと、こうなる直前、左辺の形がまったく同じであるにもかかわらず、右辺の値がそれぞれに異なるという、矛盾する二つの式が存在していたのだと推理できる。この場合、全ての条件式を同時に満たす解はない。要するに「解なし」と答えるのが正解である。

 いずれの場合であっても、このような結果に終わることを予め一目で見破ることは難しい。最初からこれらの状況が分かりやすい形になっているとは限らなくて、2 つのルールに従って変形を繰り返すうちに次第にその姿が明らかになってくるのである。


まとめ

 係数を並べて作った行列を「二つのルール」で変形してゆくとき、全てが 0 になる行を作らないで済ませられるかどうか。それが連立方程式が唯一つの解を持つように解けるかどうかの鍵であるようだ。

 このようなルールの下での行列の性質をもう少し調べてみたいではないか。