基本行列とは|行基本変形を行列の積で書く
行列に対する行基本変形は 3 種類あります。2 つの行を入れ替える、1 つの行を でない数で定数倍する、ある行に別の行の定数倍を足す、の 3 つです。
単位行列 にこの操作を 1 回だけ施して得られる行列を基本行列といいます。基本行列を左から掛けることは、その行基本変形を施すことと同じです。
つまり掃き出し法の手順は、行列の積に書き直せます。変形を「手続き」から「積」に移すと、逆行列や行列式の議論がそのまま代数の計算になります。
<svg viewBox="0 0 460 210" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="30" y="24" font-size="11" fill="#1f1f1f">単位行列を 1 回の行基本変形で変えた形です</text>
<text x="91" y="48" font-size="11" fill="#1f1f1f" text-anchor="middle">P12</text>
<text x="230" y="48" font-size="11" fill="#1f1f1f" text-anchor="middle">D2(c)</text>
<text x="369" y="48" font-size="11" fill="#1f1f1f" text-anchor="middle">T31(c)</text>
<rect x="40" y="56" width="102" height="78" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<line x1="74" y1="56" x2="74" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="108" y1="56" x2="108" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="40" y1="82" x2="142" y2="82" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="40" y1="108" x2="142" y2="108" stroke="#e8e8e8" stroke-width="1"></line>
<text x="57" y="74" font-size="12" fill="#1b81e0" text-anchor="middle">0</text>
<text x="91" y="74" font-size="12" fill="#1b81e0" text-anchor="middle">1</text>
<text x="125" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="57" y="100" font-size="12" fill="#1b81e0" text-anchor="middle">1</text>
<text x="91" y="100" font-size="12" fill="#1b81e0" text-anchor="middle">0</text>
<text x="125" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="57" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="91" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="125" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<rect x="179" y="56" width="102" height="78" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<line x1="213" y1="56" x2="213" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="247" y1="56" x2="247" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="179" y1="82" x2="281" y2="82" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="179" y1="108" x2="281" y2="108" stroke="#e8e8e8" stroke-width="1"></line>
<text x="196" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<text x="230" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="264" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="196" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="230" y="100" font-size="12" fill="#1b81e0" text-anchor="middle">c</text>
<text x="264" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="196" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="230" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="264" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<rect x="318" y="56" width="102" height="78" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<line x1="352" y1="56" x2="352" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="386" y1="56" x2="386" y2="134" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="318" y1="82" x2="420" y2="82" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="318" y1="108" x2="420" y2="108" stroke="#e8e8e8" stroke-width="1"></line>
<text x="335" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<text x="369" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="403" y="74" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="335" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="369" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<text x="403" y="100" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="335" y="126" font-size="12" fill="#1b81e0" text-anchor="middle">c</text>
<text x="369" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">0</text>
<text x="403" y="126" font-size="12" fill="#9a9a9a" text-anchor="middle">1</text>
<text x="91" y="152" font-size="11" fill="#9a9a9a" text-anchor="middle">行の交換</text>
<text x="230" y="152" font-size="11" fill="#9a9a9a" text-anchor="middle">行の定数倍</text>
<text x="369" y="152" font-size="11" fill="#9a9a9a" text-anchor="middle">行の加法</text>
<text x="30" y="180" font-size="11" fill="#9a9a9a">青が単位行列から変えた成分です。交換だけは 2 行ぶんが動きます</text>
</svg>3 種類の基本行列
記号を決めます。 成分だけが で残りが の行列を と書き、行列単位と呼びます。
行の交換は と書きます。単位行列の第 行と第 行を入れ替えたもので、 とします。
行の定数倍は です。第 行を 倍したもので、 を課します。
行の加法は です。第 行に第 行の 倍を足したもので、こちらも とします。
の定数倍を認めない理由は、その操作が取り消せないからです。 倍した行は元の値を失い、変形の前後で情報が減ってしまいます。
加法のほうは でも単位行列になるだけで害はありません。ただし は認めません。自分自身の定数倍を足す操作は、定数倍の型と重なるからです。
3 次で書き下すと形がはっきりします。
左から掛けると行が動く
を 行列とします。 次の基本行列 に対して、 は にその行基本変形を施した行列に一致します。
証明は積の定義を行ごとに読むだけで済みます。単位行列の第 行を 、 の第 行を と書くと、 が成り立ちます。
加法の型で見ます。 の第 行は なので、 の第 行は になります。
残りの行は のままですから、 の行がそのまま並びます。第 行だけが変わり、それが加法の操作そのものです。
交換と定数倍も同じ読み方で確かめられます。 の第 行は なので、積の第 行は に変わります。
の第 行は です。積の第 行は となり、これが定数倍の操作にあたります。
例:左から掛けて行を変形する
次の行列で確かめます。
を左から掛けます。第 2 行に第 1 行の 倍を足す操作にあたります。
第 2 行が に変わりました。第 1 行と第 3 行は動いていません。
右から掛けると列が動く
同じ行列を右から掛けると、作用する先が列になります。 が で が 次の基本行列なら、 は列基本変形の結果です。
注意すべきは添字の役割が入れ替わることです。 で変わるのは第 列で、そこに足されるのは第 列の 倍になります。
理由は を計算すると見えます。この積は第 列に の第 列を置き、他の列をすべて にした行列です。 倍して に足すので、動くのは第 列だけになります。
<svg viewBox="0 0 460 200" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="30" y="20" font-size="11" fill="#1f1f1f">左から掛けると行、右から掛けると列に作用します</text>
<rect x="70" y="56" width="120" height="90" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<rect x="70" y="86" width="120" height="30" fill="#1b81e0" fill-opacity="0.15"></rect>
<line x1="110" y1="56" x2="110" y2="146" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="150" y1="56" x2="150" y2="146" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="70" y1="86" x2="190" y2="86" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="70" y1="116" x2="190" y2="116" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="32" y1="101" x2="60" y2="101" stroke="#1b81e0" stroke-width="1"></line>
<polygon points="60,97 68,101 60,105" fill="#1b81e0"></polygon>
<rect x="290" y="56" width="120" height="90" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<rect x="330" y="56" width="40" height="90" fill="#d0562a" fill-opacity="0.15"></rect>
<line x1="330" y1="56" x2="330" y2="146" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="370" y1="56" x2="370" y2="146" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="290" y1="86" x2="410" y2="86" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="290" y1="116" x2="410" y2="116" stroke="#e8e8e8" stroke-width="1"></line>
<line x1="350" y1="26" x2="350" y2="46" stroke="#d0562a" stroke-width="1"></line>
<polygon points="346,46 350,54 354,46" fill="#d0562a"></polygon>
<text x="130" y="168" font-size="11" fill="#1b81e0" text-anchor="middle">EA は行が動く</text>
<text x="350" y="168" font-size="11" fill="#d0562a" text-anchor="middle">AE は列が動く</text>
<text x="30" y="192" font-size="11" fill="#9a9a9a">Tij(c) は左からなら第 i 行に第 j 行の c 倍、右からなら第 j 列に第 i 列の c 倍</text>
</svg>例:右から掛けて列を変形する
先ほどと同じ と で試します。掛ける向きだけを変えます。
変わったのは第 1 列で、 です。左から掛けたときとは別の行列になりました。
同じ基本行列でも、向きを変えれば結果は一致しません。行に効かせたいのか列に効かせたいのかで、掛ける側を選ぶことになります。
基本行列は正則で、逆行列も同じ型
行基本変形はどれも取り消せます。取り消す操作もまた同じ型の行基本変形なので、基本行列の逆行列は同じ型の基本行列になります。
交換は 2 回繰り返せば元に戻るので、自分自身が逆行列です。定数倍で を課しておいたおかげで、 が書けます。
加法については積を展開すると確かめられます。 のとき となるので、次のように計算できます。
基本行列の行列式
値は型ごとに決まります。行列式の性質をそのまま読み取ったものです。
交換は行を 2 つ入れ替えるので、交代性から符号が反転します。定数倍は 1 つの行だけを 倍するため、行列式も 倍になります。
加法の型は三角行列で、対角成分がすべて です。したがって行列式は になり、この変形は行列式を変えません。
どの型も行列式が になりません。基本行列が正則であることは、この計算からも読み取れます。
変形の列はひとつの正則行列にまとまる
に行基本変形を 回施して を得たとします。各段階の基本行列を と書けば、変形の全体は積で表せます。
と置くと です。正則行列の積なので も正則になります。
を求めるのに を一つずつ書き出す必要はありません。 の右に単位行列を並べた に同じ変形を施すと、右半分が に変わります。
左半分に起きることと右半分に起きることは、同じ行列を左から掛ける操作だからです。右半分には が現れます。
正則行列は基本行列の積である
正方行列 について、 が正則であることと、 が基本行列の積で書けることは同値です。
片方は簡単です。基本行列は正則で、正則行列の積は正則ですから、基本行列の積は正則になります。
逆を示します。 を行基本変形で簡約階段形 にすると、前節から と書けます。
が単位行列でなければ、主成分の個数が に足りず、零行列の行ができます。すると となり、 とあわせて が出て、 が正則であることに反します。
したがって です。 の両辺に逆行列を順に掛けると、分解が得られます。
基本行列の逆行列は基本行列なので、右辺は基本行列の積です。正則行列の全体は、3 種類の基本行列から積だけで作り出せることになります。
分解は一通りには決まりません。掃き出しの順番を変えれば、別の基本行列の列が出てきます。
例:2 次の行列を基本行列の積に分ける
次の行列を分解します。
第 1 行と第 2 行を交換し、第 2 行を 倍し、最後に第 1 行へ第 2 行の 倍を足すと単位行列になります。
左から掛かっている 3 つを逆行列に取り替えて右辺に移すと、 の分解が出ます。
右の 2 つを先に掛けると、次の上三角行列になります。
これに を掛けて行を入れ替えると に戻ります。
掃き出しで逆行列が求まる理由
を掃き出して左半分が単位行列になったとき、右半分が になります。この手続きが正しい理由は、ここまでの 2 つの事実で説明できます。
変形の全体を と書くと、左半分は 、右半分は です。左半分が になったということは、 が成り立ったことを意味します。
は基本行列の積なので正則です。両辺に左から を掛ければ となり、 が正則であることと が同時に分かります。
先ほどの例で確かめます。 を計算します。
なので、2 次の逆行列の公式からも同じ値が出ます。掃き出しの計算は、この分解を裏でたどっていることになります。
行の交換は残りの 2 種類で作れる
3 種類のうち交換だけは、他の 2 種類の積で書けてしまいます。2 次で確かめます。
右の 3 つを先に掛けると、原点まわりに 度回す行列が現れます。
これに を左から掛けて第 1 行の符号を変えると、 が現れます。一般の 次でも、第 行と第 行だけを見れば同じ計算になります。
理屈の上では 2 種類あれば足りるわけですが、計算の手間は増えます。実際に手を動かすときは、交換もそのまま使うほうが速いです。
基本行列の積は基本行列とは限らない
基本行列どうしを掛けても、ふつうは基本行列になりません。単位行列との違いが 2 か所以上に広がってしまうからです。
この行列を単位行列から作るには、第 1 行を 倍する操作と、第 1 行に第 2 行の 倍を足す操作の 2 回が要ります。1 回の変形では届きません。
基本行列の集まりは積について閉じていません。閉じているのは、そこから生成される正則行列の全体のほうです。
行列式の積の公式への使い道
の証明に、基本行列がそのまま使えます。基本行列を左から掛けたときの行列式は、前に見た値の分だけ変わります。
が正則なら と書けるので、この等式を 回使えば目的の公式が出ます。積の行列式が一つずつ外へ出ていく形です。
が正則でない場合は も正則ではなく、両辺とも になります。場合分けはこの 2 つで尽きます。
他の話題とのつながり
行だけでなく列の変形も許すと、任意の 行列は左上に単位行列が並んだ形まで簡約できます。正則行列 を選んで をその形にしたとき、単位行列の大きさが階数です。階数そのものは行列のランクの記事で扱います。
基本行列の転置もまた基本行列です。 と は転置しても変わらず、 の転置は になります。列基本変形が右からの積になるのは、この対応の言い換えでもあります。
交換を使わずに掃き出せる場合、対角より下を消す加法の基本行列だけが並びます。それらの逆行列を集めると下三角行列 になり、残った上三角行列とあわせて と書けます。
これが LU 分解です。途中で交換が要るときは、置換行列を前に付けて の形にします。












