物理を解説 ♪
ツイッター用のシェアボタン フェイスブック用のシェアボタン はてなブックマーク用のシェアボタン ライン用のシェアボタン
ツイッター用のシェアボタン フェイスブック用のシェアボタン はてなブックマーク用のシェアボタン ライン用のシェアボタン

行列式のルール

他にもあるが、
とりあえずはこれくらいで十分だ。
作成:2011/1/28

断り書き

これから行列式に関しての計算テクニックをまとめていきたいと思う.面倒な証明は読者に任せるという方針を取ってきたし,これからもそうするつもりである.となれば,これから述べる行列式の性質についてもわざわざ証明せずに,ただ列挙すれば済んでしまうことだろう.これから話すことはすべて,既に説明した定義から導かれることに過ぎないからだ.

しかしそれではあまりに味気ない.せめて読者に「自分でも何とか証明できそうだ」という気分になってもらわないと.それで私なりの説明手順というか,ストーリーを作ってみた.

証明の方法は一つきりではないし,好みも人それぞれである.別の手順で進んだ方が効率が良いと思う人もあるだろう.ここでは私が選んだ道筋を楽しんでもらいたい.


余因子展開

まずは教科書の中でも重要度が高いと思われるテクニックから片付けてしまおう.余因子展開と呼ばれるものだ.これが終われば残りはザコばかりである.

そのためにはまず余因子とは何かという話をしておいた方が良い.

n次の正方行列を想像してほしい.これを行列Aと呼ぶことにしておこう.この行列からi行目とj列目を取っ払って,残った部分を詰めてやると,n-1次の正方行列が出来上がるだろう.その行列式を計算すれば,ある値が得られる.その値にさらに(-1)^{(i+j)}を掛けた値が,行列\color{red}{A}\color{red}{(i,j)}余因子」である.

これで余因子の説明は終わり.簡単だろう(-1)^{(i+j)}を掛けるというのがややこしく見えるかも知れないが,(i,j)が一番左上の要素だったら +1 で,その右なら -1 で,次は +1 で・・・となるだけだ.二行目だったら,一番左が -1 で,次が +1 で・・・という具合だ.

余因子は行列Aの成分の数と同じだけ存在しているわけで,\tilde{a}_{ij}という記号で表そう.これを使えば,Aの行列式|A|は次のように展開して表すことができる. 数式 なぜそんなことが出来るのか理解できないって心配しなくていい.まだ説明していないからだ.気になるかな

この意味は簡単だ.好きな行iをどこでも自由に決めて,横一列,それぞれの成分と余因子を掛け合わせたものを足していけば,|A|を計算したのと同じ結果になるというのである.

これと同じことが列についても成り立っている.好きな列jをどこでも勝手に決めて,縦一列,それぞれの成分と余因子を掛け合わせたものを足していけば,やはり|A|を計算したのと同じことになるのである. 数式 これが「余因子展開」と呼ばれる技だ.

ところで,さっきから行列Aの行列式を|A|と表していて,まるで絶対値みたいに思えるかも知れない.しかしこれは絶対値とは関係ない.たまたま記法がかぶってしまっただけだ.絶対値ではないので負の値だって取りうる.


余因子展開の応用

余因子展開というのはn次の行列式を計算するのが面倒なとき,n-1次の行列式をn個分だけ計算して和を取ればいいという便利なものだ.

んーとこれは本当に得してると言えるのか

行列式の定義によれば,行列式を計算するためにはn個の並べ替えをすべて試みなければならず,つまり合計n!項の和を計算しなければならないのだった.ということは余因子展開を使ってみても,(n-1)!項の和をn回繰り返すわけだから,「足し算の回数ではまったく得していない」ことになる.

余因子展開が本当に役に立つのは,ある列や,ある行に,0 になっている成分が多く含まれる場合だ.その部分は余因子をまったく計算しなくて済むことになるのだから.

なるべく 0 が多く含まれる行か列を一つ見つけて余因子展開を試みる.それが正しい使い方だ.

ある行,あるいは,ある列が全て 0 だったとしたら・・・.それはその行列の行列式は計算するまでもなく 0 だということを意味する.

何か実例を挙げようと思っていたが,もうそんな必要もないほど分かり易いだろう,そうだ,あれがいい.


上三角行列に当てはめてみる

前に覚えておいて欲しいと言っておいた「上三角行列」をちゃんと覚えてくれているだろうか. 数式 この行列の行列式を余因子展開を利用して計算してみよう.

まずは 0 の多く含まれる行か列を探す.この場合,4 行目か 1 列目だが・・・私の好みにより,1 列目をターゲットにする.(1,1)成分の値は 1 であり,余因子は 1 行目と 1 列目を取り除いた残りの部分の行列式に +1 をかけたもの.次のように展開できる.まぁ,一つきりしか項がないから「展開」という雰囲気でもないけれども. 数式 続いて,この右辺にある行列式を計算してみよう.0 が多いのは,先ほどと同じく 1 列目,あるいは 3 行目.好みにより,やはり 1 列目を狙う. 数式 もう最後までやらなくても分かってきただろう.上三角行列の場合には,何次の場合であっても,対角成分の積だけを計算すれば行列式が計算できてしまう 数式 行列式を計算する場面で上三角行列に出会ったらとってもラッキーだということだ.

うーん,怪しいな・・・.そんな偶然の機会などそうそうあるもんじゃないだろう.それなのに,わざわざ時間を犠牲にしてまで上三角行列の行列式を求める方法をここで紹介するのは効率が悪い気がする.するだろう何か裏があるに違いない.前回の話でも普通の行列を素早く上三角行列に変形していく方法を強調していたではないか.

しかし行列を上三角行列に変形する過程で行列式の値は次々に変わってしまうだろう.ひょっとして変わらないとかさーて,どうだろうかね.その話は後にしよう.


行で成り立つことは列でも成り立つ

話を進める前に,このような技が使えることを証明してみたいという賢明な読者のサポートをしておかなくては・・・.

その証明に取り掛かる前に,次のことを証明しておくと効率がいいかもしれない.それは「行列式の計算において,行で成り立つことは列についてもそのまま成り立っている」というものだ.

次の式の左辺は以前にも書いた行列式の定義だが,右辺では行と列の成分を入れ替えてある. 数式 この等式が証明できれば,行と列の役割を入れ替えて計算しても行列式の計算結果は変わらないことが言える.

左辺を見ると,列を表す部分にσ(1)…σ(n)が使われているが,これは 1 ~ n の数字をばらばらにしたものなので,右辺のように並べ直してやることができる.そのときに行を表す数字がばらばらになるので,右辺ではσ'(1)…σ'(n)のように表してある.それを何回の交換作業で元に戻せるかによって符号が決まるのが右辺のsgn(σ')の部分である.それは左辺のsgn(σ)と同じではないだろうか.バラバラにする作業と,元に戻す作業は同じ回数で終えられるはずだからだ.

これで証明できてしまった.これだけの説明では分かりにくいかもしれないが,もともとは読者に任せようと思っていた部分だからこれ以上親切に書くつもりもない.気になる人はじっくり考えてみてもらいたい.

これによって,余因子展開についての証明も,行か,列か,どちらかの式を証明するだけで良いと言えるだろう.手間が半減するわけだ.


ある行または列を定数倍すると・・・

余因子展開の証明をするためには行列式の他の性質も知っておいた方が助けになるだろう.

例えば「ある一つの列を\color{red}{k}倍すると,行列式も\color{red}{k}倍になる」という性質はどうだろう.

これは行列式の定義を思い出せば簡単に分かることだ.上から順番に,同じ列の成分を選ばないように掛け合わせていったものを足し合わせるのであった.つまり,各項には必ず一つだけ,k倍された成分が混じるのである.それらを足し合わせるのだから,結果として全体がk倍されるのは当然というわけだ.

先ほど証明した「行で成り立つことは列でも成り立つ」という論理によって,この話は行についても成り立っていると言える.つまり,ある一つの行を\color{red}{k}倍すると,行列式も\color{red}{k}倍になる」と言えるわけだ.


ある行または列を和で表すと・・・

知っておいた方がいいことはまだある.次のような関係が成り立っている. 数式 ある列を和の形で表したものは二つの行列式の和で表せる」というものだ.もう少し正確に表現してみると,ある列をa'_{ij}+a''_{ij}という和の形で表した行列の行列式は,その列をa'_{ij}に置き換えた行列と,a''_{ij}に置き換えた行列の二つの行列式の和で表せる.

この証明も先ほどと似たようなもので,行列式の定義を思い出せば理解できるだろう.各項に必ず一つ,和で表された成分を掛ける部分が入るからそれを展開してやって二つに分けてやれるというわけだ.

これも先ほど証明したことによって,行についても成り立っている.つまり,ある行を和の形で表したものは二つの行列式の和で表せる」とも言えるわけだ.


二つの行または二つの列を入れ替えると・・・

最後にもうひとつ.二つの列を入れ替えると行列式は -1 倍される」という性質がある.これも行列式の定義を思い出せば簡単に理解できるだろう.列が入れ替わるという事は,sgn(σ)の符号がどの項についても反転することを意味するからだ.

これも先ほど証明したことによって,行についても成り立っている.つまり,二つの行を入れ替えると行列式は -1 倍される」と言える.


余因子展開の証明

準備が整ったのでこれから余因子展開の証明の手順を書こうと思うのだが,どうやら無計画に準備し過ぎてしまったらしい.良く良く落ち着いて考えて見れば,後の方の二つの性質しか使わなくて済みそうだ.まぁ,無駄にはなるまい.

j列目に注目して展開する状況を考えてみよう.j列目を次のように和の形に分けてやる. 数式 これは多数の行列式に分解できるはずだ. 数式 この全ての項のj列目を一番左の列に持ってくることを考える.ただ無条件に移動させたいだけならば 1 列目との一回きりの列の交換で済むのだろうが,j列以外の並び順を変えたくないので,隣へ隣へとj-1回の交換を繰り返すことで実現しよう. 数式 出来た.この式のそれぞれの項の一番左にある列に注目して欲しい.今度はこれらの列の 0 でない要素が一番上に来るように行を移動させたい.ただし他の行の順番は崩さないようにするために,一つずつ交換しながら上がってくるようにする.つまり,最初の項についてはそのままでいいが,2 番目の項は 1 回,3 番目の項は 2 回,n番目の項はn-1回の行の交換を経ることになる. 数式 さあ,出来たぞ.これらの各項の行列式を計算することを考えてみて欲しい.行列式の定義を思い出そう.一行目から順に,成分を一つずつ選んで掛けてゆくのだった.しかし今回の場合,一行目からは必ず一列目にある成分を選ばないといけないことになる.そうしないと,いずれは一列目から選ばないといけないことになるが,そこには 0 しか残されていないので結局は消えてしまう運命なのである.つまり生き残れるのは,必ず最初に左上にある成分を選んだ場合の項だけである.

一行目から左上の成分を選んだ後は好きに選べばいい.それは一列目と一行目を取っ払った行列についての行列式を計算するのと同じ手順ではないか.だから次のように書き直せるだろう.ついでに各項の先頭に(-1)^2を掛けて,分かり易いように調整しておいてやろう. 数式 これはまさに余因子展開の式である.ということで,ヒントだけを示すつもりが,結局最後まで証明することになってしまった.

まぁ,こんなものは興味がなければ読み飛ばしてくれても良かったのだ.余因子展開が魔法でも何でもない事を理解さえしてくれたなら.


同じ中身の列、または行が存在していると・・・

さて,これで余因子展開の話は一区切りだ.そういえば,普通の行列を上三角行列に変形する過程で行列式がどう変化するかという事にちょっと関心が向いたのだった.次にその辺りを説明してみよう.

とは言うものの,すでに「ある行を定数倍」した場合と,「二つの行を入れ替え」した場合に行列式がどう変化するかということについては説明済みだ.すると,行列の変形で許されたルールとして残るはただ一つ.「ある行を定数倍したものを別の行に加える」ことである.この時,行列式はどう変化するのだろうか.

これを説明するために,もう一つだけ知っておくと便利だ.

すでに「二つの列を入れ替えると行列式は -1 倍される」という性質を確認している.初めに行列式の値がaだとしたら,入れ替え後は-aだというわけだ.しかしそこでもし二つの列の中身が全く同じだったとしたら,それらを入れ替えても,入れ替える前と何も変わらない.つまりa=-aが成り立つことになる.この条件を満たすのは,a=0の場合だけである.よって「全く同じ中身の列が存在していればその行列式は 0 である」と言える.

行についても同じことが成り立っており,中身が全く同じ行が存在していればその行列式は 0 である」と言える.


ある列を定数倍したものを別の列に加えたら・・・

ではいよいよ,「ある列を定数倍したものを別の列に加えたら」行列式の値がどうなるかを見てみよう.

言葉で説明するより式を見た方が早い.例えば,i列目をk倍してj列目に加える様子を式変形で見てみよう. 数式 この第 2 項はi列目と同じ内容がj列目にも存在していることになり,0 である.よって第 1 項だけが残り,これは変形する前の行列と変わらない.つまり,ある列を定数倍して他の列に加えても行列式の値は変わらない」ということになる.

行列式について列で成り立つことは行でも成り立つので,ある行を定数倍して他の行に加えても行列式の値は変わらない」とも言えるわけだ.

そう,なんと,何も変らないのだ上三角行列を作るために,ある行を定数倍することは必要ではなかった.ただ場合によっては一番最初に行を入れ替える場合があったのだった.その時には符号が変化する.それ以外の操作では行列式は変化しないというのだ.


まとめと次回予告

ああ,つまりそれは,なにかい一次方程式の解を求めるために行列の変形を繰り返すのはスマートじゃないと考えて代わりにクラメルの公式を使おうと思ったら,行列の変形を繰り返すことで行列式の値を求めなきゃいけないということか.本末転倒じゃないか.しかも幾つもの行列式を計算する必要があるときている.結局のところ,実用上は行列の変形で解を求めるのが最も効率がいいというわけだ.

じゃあ今回やったようなことは本当に理論を助けるための話に過ぎないわけだな.うん,まあいいや.それはそれで視野を広げるためには大切な事だ.いや・・・それが実は・・・それだけじゃない.ちゃんとこの後で役に立つ機会だってある.

行列の使い道は連立方程式を解くだけではないのだ.次回は行列の別の使い道を紹介しよう.

今回やった内容を最後に列挙してまとめようかと思っていたが,赤字で書いたところを流して見ればいいだけなのでその必要もないだろう.



趣味の物理学書店の案内バナー

EMAN物理note出張所の案内バナー