連立1次方程式と掃き出し法

同義語:掃き出し法(高校数学)Gaussian elimination (high school mathematics)

概要

連立1次方程式と掃き出し法(systems of linear equations and Gaussian elimination)とは、連立 1 次方程式の係数と右辺を並べた拡大係数行列に、行の入れ替え・行を $0$ でない数倍する・別の行の定数倍を足す、の 3 種類の行の基本変形をして解く方法である。どの変形も戻せるので解の集合は変わらない。どの行列も、先頭の $1$ が階段のように並び、その列のほかの成分が $0$ である簡約な階段の形にでき、その形で $(0\ \cdots\ 0\mid1)$ の行がないときに限り解をもつ。解をもつとき、未知数が $n$ 個、先頭の $1$ が $r$ 個なら $n-r$ 個の未知数を自由に選べ、選ぶごとに解が 1 つ決まる。2 次正方行列 $A$ は、$[A\mid E]$ を $[E\mid B]$ にできれば $A^{-1}=B$ である。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 行列の演算(高校数学), 空間ベクトルと1次独立, 1次変換と行列式:面積の拡大率

高校での出発点:加減法を表で行う

中学・高校で習う連立方程式の解き方には、代入法と加減法がある。文字が 3 つ、式が 3 本になると、代入法では式がすぐに込み入る。加減法なら、「ある式の何倍かを別の式から引いて文字を 1 つ消す」ことを繰り返すだけで済む。まず 1 つ解いてみる。

加減法で 3 元の連立方程式を解く

次の連立方程式を解く。
$$ \begin{cases}x+y+z=6 & \cdots\text{①}\\ 2x-y+z=3 & \cdots\text{②}\\ x+2y-z=2 & \cdots\text{③}\end{cases} $$
(1) ② から ① の $2$ 倍を引くと $-3y-z=-9$ …④。③ から ① を引くと $y-2z=-4$ …⑤。これで ②、③ から $x$ が消えた。
(2) ④ に ⑤ の $3$ 倍を足すと $-7z=-21$ で、$z=3$ である。
(3) ⑤ に代入して $y=-4+2z=2$、① に代入して $x=6-y-z=1$ である。
答えは $(x,y,z)=(1,2,3)$ である。検算:$1+2+3=6$、$2-2+3=3$、$1+4-3=2$ で、3 本とも成り立つ。

この計算で実際に動いたのは、文字 $x$、$y$、$z$ ではなく、係数と右辺の数だけである。そこで、係数と右辺を表に並べ、表の「行」に対して同じ操作をすることにする。これが掃き出し法である。
この記事で答える問いは次の 3 つである。

  1. 式を足したり何倍かしたりして、解が変わってしまうことはないか。→ thm-gel-invariance
  2. どんな連立 1 次方程式でも、この操作で「答えが読める形」にできるか。解がないときや、解が無数にあるときはどうなるか。→ thm-gel-echelon
  3. 同じ操作で逆行列も求められるか。→ prop-gel-inverse
    高校の計算この記事の言葉大学の言葉
    係数と右辺だけを書き出す拡大係数行列行列 $[A\mid b]$
    式を入れ替える・何倍かする・足す行の基本変形基本行列を左から掛ける
    文字を 1 つずつ消す階段の形にする簡約な行階段形
    自由に決めてよい文字の数自由な文字の数 $n-r$解の空間の次元
    3 つの文字の 1 次方程式は、それぞれ空間の平面を表す(空間の平面と法線ベクトル)。ex-gel-start の答えがただ 1 つだったのは、3 つの平面がただ 1 点 $(1,2,3)$ で交わるからである(図 1)。
    3 つの平面 x+y+z=6、2x−y+z=3、x+2y−z=2 は点 (1,2,3) だけを共有する 3 つの平面 x+y+z=6、2x−y+z=3、x+2y−z=2 は点 (1,2,3) だけを共有する

拡大係数行列と行の基本変形

以下、未知数を $x_1,x_2,\ldots,x_n$、式の数を $m$ とする。

連立1次方程式と拡大係数行列

$m$ 本の式からなる連立 1 次方程式
$$ \begin{cases}a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \qquad\vdots\\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m\end{cases} $$
に対し、係数を並べた $m\times n$ 行列 $A=(a_{ij})$ を 係数行列、その右に右辺の列を付け足した $m\times(n+1)$ 行列
$$ [A\mid b]=\left(\begin{array}{cccc|c}a_{11}&a_{12}&\cdots&a_{1n}&b_1\\ \vdots&\vdots&&\vdots&\vdots\\ a_{m1}&a_{m2}&\cdots&a_{mn}&b_m\end{array}\right) $$
を 拡大係数行列 という。すべての式を同時に満たす $(x_1,\ldots,x_n)$ を 解 といい、解の全体を 解の集合 という。

拡大係数行列の $i$ 行目は、$i$ 番目の式そのものである。縦線は「ここから右は右辺」という目印で、行列としては $n+1$ 列の行列である。

拡大係数行列を書く
  1. ex-gel-start の連立方程式の拡大係数行列は
    $$ \left(\begin{array}{ccc|c}1&1&1&6\\ 2&-1&1&3\\ 1&2&-1&2\end{array}\right) $$
    である。2 行目の $-1$ は、② の $y$ の係数 $-1$ である。
  2. 式の中に現れない文字は、係数 $0$ として書く。$x+2z=5$、$y=1$ の拡大係数行列は $\left(\begin{array}{ccc|c}1&0&2&5\\ 0&1&0&1\end{array}\right)$ である。

加減法で使った操作を、行の言葉で書き直す。

行の基本変形

行列に対する次の 3 種類の操作を 行の基本変形 という。
(R1) 2 つの行を入れ替える。
(R1) 1 つの行のすべての成分に、$0$ でない同じ数 $c$ を掛ける。
(R1) ある行の $c$ 倍($c$ はどんな数でもよい)を、別の行に足す。足した先の行だけが変わり、足した元の行はそのまま残す。
行の基本変形を何回か続けて $A$ から $B$ が得られるとき、$A$ と $B$ は 行で移り合う という。

以下、この 3 種類を順に変形 (i)、変形 (ii)、変形 (iii) と呼ぶ。$i$ 行目を $R_i$ と書き、変形を $R_1\leftrightarrow R_2$(入れ替え)、$\frac12R_1$($\frac12$ 倍)、$R_2-2R_1$($R_2$ に $R_1$ の $-2$ 倍を足す)のように書く。

3 種類の変形を 1 回ずつ

$\left(\begin{array}{cc|c}2&4&6\\ 1&3&5\end{array}\right)$ から始める。
(1) $R_1\leftrightarrow R_2$ で $\left(\begin{array}{cc|c}1&3&5\\ 2&4&6\end{array}\right)$。式の順番を入れ替えただけである。
(2) もとの行列に $\frac12R_1$ をすると $\left(\begin{array}{cc|c}1&2&3\\ 1&3&5\end{array}\right)$。式 $2x+4y=6$ の両辺を $2$ で割って $x+2y=3$ にしたことに当たる。
(3) (2) の行列に $R_2-R_1$ をすると $\left(\begin{array}{cc|c}1&2&3\\ 0&1&2\end{array}\right)$。2 本目の式から $x$ が消え、$y=2$ が読める。1 本目に戻すと $x=3-2y=-1$ である。

3 種類の変形は、どれも同じ種類の変形で「もとに戻せる」。これが次の節の主定理の鍵である。

変形書き方もとに戻す変形戻す変形も同じ種類か
(i) 入れ替え$R_i\leftrightarrow R_j$$R_i\leftrightarrow R_j$(もう一度入れ替える)はい
(ii) $0$ でない数を掛ける$cR_i$($c\ne0$)$\frac1cR_i$はい($\frac1c\ne0$)
(iii) 別の行の定数倍を足す$R_j+cR_i$($i\ne j$)$R_j-cR_i$はい

変形 (ii) で $c\ne0$ としたのは、$\frac1c$ が必要だからである。変形 (iii) で「別の行」としたのは、$R_i$ に $R_i$ 自身の $c$ 倍を足すと $(1+c)R_i$ になり、$c=-1$ のとき行が消えて戻せなくなるからである。

主定理 1:行の基本変形で解の集合は変わらない

行の基本変形と解の集合

連立 1 次方程式の拡大係数行列に行の基本変形を何回か行って得た行列を、拡大係数行列とする連立 1 次方程式を考える。2 つの連立 1 次方程式の解の集合は等しい。

方針:1 回の変形で解の集合が変わらないことを示せば、それを繰り返して何回の変形でも変わらない。1 回の変形については、「もとの式の解は、変形後の式の解である」ことを示し、逆向きは「戻す変形」に同じ事実を当てはめて示す。
段 1(もとの解は変形後の解).もとの連立方程式を $S$、1 回の変形をした後の連立方程式を $S'$ とし、$(x_1,\ldots,x_n)$ を $S$ の解とする。$i$ 番目の式の左辺に解を代入した値を $L_i$ と書くと、$L_i=b_i$ がすべての $i$ で成り立つ。

  • 変形 (i) のとき、$S'$ の式は $S$ の式の順番を変えただけなので、どれも成り立つ。
  • 変形 (ii) で $i$ 行目を $c$ 倍したとき、$S'$ の $i$ 番目の式は、左辺に解を代入すると $cL_i$、右辺は $cb_i$ である。$L_i=b_i$ の両辺に $c$ を掛けて $cL_i=cb_i$ なので成り立つ。ほかの式は $S$ と同じである。
  • 変形 (iii) で $j$ 行目に $i$ 行目の $c$ 倍を足したとき、$S'$ の $j$ 番目の式は、左辺に解を代入すると $L_j+cL_i$、右辺は $b_j+cb_i$ である。$L_j=b_j$ と $L_i=b_i$ から $L_j+cL_i=b_j+cb_i$ なので成り立つ。ほかの式は $S$ と同じである。
    どの場合も $(x_1,\ldots,x_n)$ は $S'$ の解である。
    段 2(変形後の解はもとの解).表のとおり、$S$ から $S'$ への変形には、$S'$ から $S$ に戻す同じ種類の変形がある(変形 (ii) では $\frac1c$ 倍で、$c\ne0$ だから $\frac1c$ がある)。段 1 を「$S'$ から $S$ への変形」に当てはめると、$S'$ の解は $S$ の解である。
    段 3(まとめ).段 1 と段 2 から、$S$ の解の集合と $S'$ の解の集合は互いに含み合うので等しい。変形を何回か続けたときも、1 回ごとに解の集合が変わらないので、最初と最後の解の集合は等しい。

段 2 が要ることに注意する。段 1 だけなら「解が減らない」ことしか言えず、変形で解が増えてしまう可能性が残る。実際、戻せない操作をすると解が増える。

反例:$0$ を掛けると解が増える

$x+y=3$、$x-y=1$ の解は、足して $2x=4$ から $x=2$、$y=1$ のただ 1 つである。
2 行目に $0$ を掛けると、拡大係数行列は $\left(\begin{array}{cc|c}1&1&3\\ 1&-1&1\end{array}\right)$ から $\left(\begin{array}{cc|c}1&1&3\\ 0&0&0\end{array}\right)$ になる。2 本目の式は $0=0$ で、何も言っていない。残るのは $x+y=3$ だけで、$(0,3)$、$(1,2)$、$(3,0)$ などすべての $(t,3-t)$ が解になる。もとの解 $(2,1)$ は確かに解に含まれる(段 1 は成り立つ)が、解は増えた。$0$ 倍は $\frac10$ 倍で戻せないので、段 2 が使えないのである。

反例:2 つの行を同時に書き換える

同じ $x+y=3$、$x-y=1$ で、「$R_1$ から $R_2$ を引く」と「$R_2$ から $R_1$ を引く」を、どちらも変形前の行を使って同時に行う。新しい 1 行目は $(1-1,\ 1-(-1)\mid 3-1)=(0,2\mid2)$、2 行目は $(1-1,\ -1-1\mid 1-3)=(0,-2\mid-2)$ で、
$$ \left(\begin{array}{cc|c}0&2&2\\ 0&-2&-2\end{array}\right) $$
になる。2 本の式はどちらも $y=1$ と同じで、$x$ は何でもよくなった。解は $(t,1)$ の全体に増えた。1 回ずつ行えば、1 回目の後の行を使って 2 回目を計算するので、このようなことは起きない。行の基本変形は 1 回に 1 つの行だけを変える 操作である。

恒等式と未定係数法 で係数を比べて出てくる連立方程式も、thm-gel-invariance により、行の基本変形で解の集合を変えずに解ける。

階段の形と主定理 2

行の基本変形で目指す「答えが読める形」を定める。

簡約な階段の形

行列の各行について、いちばん左にある $0$ でない成分を、その行の 先頭の成分 という(すべての成分が $0$ の行を 零の行 という)。行列が次の 4 つの条件を満たすとき、簡約な階段の形 であるという。
(R1) 零の行は、零でない行よりも下にある。
(R1) 零でない行の先頭の成分は $1$ である(これを 先頭の 1 という)。
(R1) 下の行の先頭の 1 は、上の行の先頭の 1 よりも右の列にある。
(R1) 先頭の 1 のある列では、先頭の 1 以外の成分はすべて $0$ である。
先頭の 1 のある列の数(=零でない行の数)を $r$ と書く。

条件 (iii) のために、先頭の 1 は左上から右下へ階段のように並ぶ(図 2)。条件 (iv) が「簡約な」の部分で、先頭の 1 の上下を $0$ に「掃き出して」あることを求めている。
先頭の 1 は下の行ほど右にあり、その列のほかの成分は 0 である。* は何でもよい数 先頭の 1 は下の行ほど右にあり、その列のほかの成分は 0 である。* は何でもよい数

簡約な階段の形か
  1. $\left(\begin{array}{ccc|c}1&0&0&1\\ 0&1&0&2\\ 0&0&1&3\end{array}\right)$ は簡約な階段の形で、$r=3$ である。式に戻すと $x=1$、$y=2$、$z=3$ で、答えがそのまま読める。
  2. $\left(\begin{array}{ccc|c}1&0&-1&0\\ 0&1&2&1\\ 0&0&0&0\end{array}\right)$ は簡約な階段の形で、$r=2$ である。先頭の 1 は 1 列目と 2 列目にあり、3 列目には先頭の 1 がない。
  3. $\left(\begin{array}{cc|c}1&2&3\\ 0&1&2\end{array}\right)$ は条件 (iv) を満たさない。2 行目の先頭の 1 の上に $2$ が残っている。$R_1-2R_2$ で $\left(\begin{array}{cc|c}1&0&-1\\ 0&1&2\end{array}\right)$ にすると簡約な階段の形になる。
    ほかの例を開く

    (4) $\left(\begin{array}{ccc|c}1&2&0&3\\ 0&0&1&4\end{array}\right)$ は簡約な階段の形である。2 行目の先頭の 1 が、2 列目を飛ばして 3 列目にあってもよい。

    (5) $\left(\begin{array}{cc|c}0&1&2\\ 1&0&3\end{array}\right)$ は条件 (iii) を満たさない。$R_1\leftrightarrow R_2$ で直る。

簡約な階段の形と解の読み方
  1. どの行列も、行の基本変形を何回か行って、簡約な階段の形にできる。
  2. $n$ 個の未知数の連立 1 次方程式の拡大係数行列 $[A\mid b]$ を、行の基本変形で簡約な階段の形 $[B\mid c]$ にしたとする。このとき、方程式が解をもつのは、$[B\mid c]$ に $(0\ \cdots\ 0\mid1)$ という行がないとき、そしてそのときに限る。
    1. で解をもつとき、$B$ の先頭の 1 の数を $r$ とすると、先頭の 1 のない列に当たる $n-r$ 個の未知数(自由な文字)には好きな値を選べて、その値を 1 組選ぶごとに解がちょうど 1 つ決まる。特に、解がただ 1 つなのは $r=n$ のとき、そしてそのときに限る。

証明の前に、この定理の使い方を 3 つの例で見る。(1) の証明は、例で行う手順をそのまま一般の行列について述べたものである。

解がただ 1 つ:掃き出し法で解く

ex-gel-start を掃き出し法で解く。左の列から順に、先頭の 1 を作り、その上下を $0$ にする。
1 列目.$(1,1)$ 成分がすでに $1$ なので、その下を $0$ にする。
$$ \left(\begin{array}{ccc|c}1&1&1&6\\ 2&-1&1&3\\ 1&2&-1&2\end{array}\right) \xrightarrow[R_3-R_1]{R_2-2R_1} \left(\begin{array}{ccc|c}1&1&1&6\\ \cancel{0}&-3&-1&-9\\ \cancel{0}&1&-2&-4\end{array}\right) $$
斜線を引いた $0$ が、いま消した成分である。
2 列目.2 行目より下で 2 列目が $1$ の行(3 行目)と入れ替え、その上下を $0$ にする。
$$ \xrightarrow{R_2\leftrightarrow R_3} \left(\begin{array}{ccc|c}1&1&1&6\\ 0&1&-2&-4\\ 0&-3&-1&-9\end{array}\right) \xrightarrow[R_3+3R_2]{R_1-R_2} \left(\begin{array}{ccc|c}1&\cancel{0}&3&10\\ 0&1&-2&-4\\ 0&\cancel{0}&-7&-21\end{array}\right) $$
3 列目.3 行目を $-\frac17$ 倍して先頭の 1 を作り、その上を $0$ にする。
$$ \xrightarrow{-\frac17R_3} \left(\begin{array}{ccc|c}1&0&3&10\\ 0&1&-2&-4\\ 0&0&1&3\end{array}\right) \xrightarrow[R_2+2R_3]{R_1-3R_3} \left(\begin{array}{ccc|c}1&0&\cancel{0}&1\\ 0&1&\cancel{0}&2\\ 0&0&1&3\end{array}\right) $$
最後の行列は簡約な階段の形で、$(0\ 0\ 0\mid1)$ の行はなく、$r=3=n$ である。thm-gel-echelon (3) により解はただ 1 つで、式に戻すと $\boxed{x=1,\ y=2,\ z=3}$ である。thm-gel-invariance により、これがもとの連立方程式の解のすべてである。

矢印の上下に 2 つの変形を書いたところは、上の変形を先に、下の変形を後に、1 回ずつ行っている(ex-gel-simultaneous のような同時の書き換えではない)。この記事の矢印の組では、どちらの変形も、もう一方の変形で使う行を変えないので、どちらを先にしても結果は同じである。

解が直線になる:自由な文字が 1 つ

$x+y+z=1$、$x+2y+3z=2$、$2x+3y+4z=3$ を解く。
$$ \left(\begin{array}{ccc|c}1&1&1&1\\ 1&2&3&2\\ 2&3&4&3\end{array}\right) \xrightarrow[R_3-2R_1]{R_2-R_1} \left(\begin{array}{ccc|c}1&1&1&1\\ 0&1&2&1\\ 0&1&2&1\end{array}\right) \xrightarrow[R_3-R_2]{R_1-R_2} \left(\begin{array}{ccc|c}1&0&-1&0\\ 0&1&2&1\\ 0&0&0&0\end{array}\right) $$
簡約な階段の形になった。$(0\ 0\ 0\mid1)$ の行はないので解をもつ。先頭の 1 は $x$ と $y$ の列にあり、$z$ の列にはないので、自由な文字は $z$ の $1$ 個($n-r=3-2=1$)である。式に戻すと $x-z=0$、$y+2z=1$ なので、$z=t$ とおいて
$$ (x,y,z)=(t,\ 1-2t,\ t)=(0,1,0)+t(1,-2,1)\qquad(t\text{ は任意の実数}) $$
である。解の集合は、点 $(0,1,0)$ を通り向き $(1,-2,1)$ の直線である。3 本目の式は、1 本目と 2 本目を足したものだったので、新しい条件を加えていなかった。

解がない:$0=1$ の行が現れる

ex-gel-line の 3 本目の右辺だけを $4$ に変えた $x+y+z=1$、$x+2y+3z=2$、$2x+3y+4z=4$ を考える。同じ変形をすると
$$ \left(\begin{array}{ccc|c}1&1&1&1\\ 1&2&3&2\\ 2&3&4&4\end{array}\right) \xrightarrow[R_3-2R_1]{R_2-R_1} \left(\begin{array}{ccc|c}1&1&1&1\\ 0&1&2&1\\ 0&1&2&2\end{array}\right) \xrightarrow{R_3-R_2} \left(\begin{array}{ccc|c}1&1&1&1\\ 0&1&2&1\\ 0&0&0&1\end{array}\right) $$
となる。3 行目は $0x+0y+0z=1$、つまり $0=1$ で、どんな $(x,y,z)$ でも成り立たない。thm-gel-invariance によりもとの連立方程式も解をもたない。

簡約な階段の形まで進めた結果を開く

$R_1-R_2$、$R_2-R_3$ を行うと $\left(\begin{array}{ccc|c}1&0&-1&0\\ 0&1&2&0\\ 0&0&0&1\end{array}\right)$ となり、$(0\ 0\ 0\mid1)$ の行が残る。

図で見ると、ex-gel-line では 3 つの平面が 1 本の直線を共有し、ex-gel-none では、どの 2 つの平面も交わるのに 3 つに共通な点がない。どちらも 3 つの平面の法線ベクトル $(1,1,1)$、$(1,2,3)$、$(2,3,4)$ が同じ平面に乗る(3 つ目が前の 2 つの和)ので、2 つずつの交線はすべて向き $(1,-2,1)$ をもつ。図 3・図 4 は、その向きに垂直な平面で 3 つの平面を切った切り口で、平面は直線に見える。

解が直線のとき、切り口の 3 本の直線は 1 点で交わる。その点が解の直線の切り口である 解が直線のとき、切り口の 3 本の直線は 1 点で交わる。その点が解の直線の切り口である
解がないとき、切り口の 3 本の直線は三角形をつくり、3 本に共通な点はない 解がないとき、切り口の 3 本の直線は三角形をつくり、3 本に共通な点はない

3 つの平面の交わり方と解の関係をまとめる。平面が平行になる場合(例えば $x+y+z=1$ と $x+y+z=2$)も、解がない場合に含まれる。

簡約な階段の形解3 つの平面(3 元の場合)例
$(0\ 0\ 0\mid1)$ の行がなく $r=3$ただ 1 つ1 点で交わるex-gel-unique
$(0\ 0\ 0\mid1)$ の行がなく $r=2$直線(自由な文字 1 個)1 本の直線を共有するex-gel-line
$(0\ 0\ 0\mid1)$ の行がなく $r=1$平面(自由な文字 2 個)3 つとも同じ平面$x+y+z=1$ を 3 回
$(0\ 0\ 0\mid1)$ の行があるなし共通な点がないex-gel-none

主定理 2 の証明

方針:(1) は、ex-gel-unique の手順(左の列から順に、先頭の 1 を作ってその上下を $0$ にする)がどの行列でも最後まで進むことを示す。(2)(3) は、簡約な階段の形を式に戻して読む。
段 1((1) の手順).$m\times N$ 行列を考える。「すでに先頭の 1 を作った行の数」を $k$ とし、はじめは $k=0$ とする。1 列目から $N$ 列目まで順に、第 $j$ 列について次を行う。

  • 第 $j$ 列の、$k+1$ 行目から $m$ 行目までの成分がすべて $0$ なら、何もせずに次の列へ進む。
  • そうでなければ、そのうち $0$ でない成分をもつ行を 1 つ選び、変形 (i) で $k+1$ 行目と入れ替える。その成分を $a$ とすると $a\ne0$ なので、変形 (ii) で $k+1$ 行目を $\frac1a$ 倍して、$(k+1,j)$ 成分を $1$ にする。続けて、ほかの各行 $R_i$($i\ne k+1$)について、$R_i$ の第 $j$ 列の成分を $d_i$ とし、変形 (iii) $R_i-d_iR_{k+1}$ を 1 回ずつ行う。これで第 $j$ 列は $(k+1,j)$ 成分の $1$ 以外すべて $0$ になる。$k$ を $1$ 増やして次の列へ進む。
    段 2(手順の途中で成り立つこと).第 $j$ 列を処理し終えたとき、1 列目から $j$ 列目までの部分は次を満たす:1 行目から $k$ 行目までは先頭の 1 をもち、それらは下の行ほど右にあり、先頭の 1 のある列ではほかの成分が $0$ である。$k+1$ 行目から $m$ 行目までは、1 列目から $j$ 列目までの成分がすべて $0$ である。これは列の番号 $j$ についての帰納法で示せる。鍵は、第 $j$ 列の処理で動かす行($k+1$ 行目以下)が、1 列目から $j-1$ 列目まですべて $0$ であることで、そのため処理済みの列は崩れない。
    詳細

    $j=1$ を処理した直後は、段 1 のとおり成り立つ(1 列目がすべて $0$ なら $k=0$ のまま、そうでなければ 1 列目は $(1,1)$ 成分の $1$ 以外が $0$ で $k=1$)。第 $j-1$ 列まで成り立っているとし、第 $j$ 列を処理する。入れ替えるのは $k+1$ 行目以下の行どうしで、それらの行は 1 列目から $j-1$ 列目までの成分がすべて $0$ なので、入れ替えても $\frac1a$ 倍しても、1 列目から $j-1$ 列目は変わらない。変形 (iii) で引く行 $R_{k+1}$ も 1 列目から $j-1$ 列目の成分が $0$ なので、ほかの行の 1 列目から $j-1$ 列目は変わらない。新しい先頭の 1 は第 $j$ 列にあり、それより上の行の先頭の 1 は $j-1$ 列目までにあるので、下の行ほど右という並びは保たれる。

    段 3((1) の結論).$N$ 列目まで処理すると、段 2 により、1 行目から $k$ 行目は条件 (ii)(iii)(iv) を満たし、$k+1$ 行目から $m$ 行目は零の行なので条件 (i) も満たす。使った操作はすべて行の基本変形なので、(1) が示された。
    段 4((2) で解がない場合).$[B\mid c]$ に $(0\ \cdots\ 0\mid1)$ という行があれば、その行の式は $0x_1+\cdots+0x_n=1$、つまり $0=1$ で、どんな $(x_1,\ldots,x_n)$ でも成り立たない。よって $[B\mid c]$ の方程式は解をもたず、thm-gel-invariance によりもとの方程式も解をもたない。
    段 5((2)(3) で解がある場合).$(0\ \cdots\ 0\mid1)$ という行がないとする。すると最後の列(右辺の列)には先頭の 1 がない。なぜなら、最後の列に先頭の 1 があれば、その行は最後の列より左がすべて $0$ で最後の成分が $1$、つまり $(0\ \cdots\ 0\mid1)$ だからである。したがって先頭の 1 はすべて $B$ の列にあり、その数が $r$ である。先頭の 1 のある列の番号を $d_1< d_2<\cdots< d_r$ とし、残りの $n-r$ 個の未知数を自由な文字と呼ぶ。
    $i$ 行目($1\le i\le r$)の式を読む。条件 (iii) と先頭の成分の定め方から、$i$ 行目の $d_i$ 列より左はすべて $0$ である。条件 (iv) から、$i$ 行目のほかの先頭の 1 の列($d_{i'}$ 列、$i'\ne i$)の成分も $0$ である。よって $i$ 行目の式は
    $$ x_{d_i}+(\text{自由な文字の 1 次式})=c_i $$
    の形で、先頭の 1 の列の未知数のうち $x_{d_i}$ だけを含む。$r+1$ 行目以降は零の行で、式は $0=0$ である。
    自由な文字に好きな値を選ぶと、$i=1,\ldots,r$ の各式から $x_{d_i}=c_i-(\text{自由な文字の 1 次式})$ がただ 1 通りに決まり、これで $r$ 本の式がすべて成り立つ。逆に、どの解も、その解の自由な文字の値から同じ式で $x_{d_i}$ が決まる。したがって、自由な文字の値の組と解は 1 対 1 に対応し、解は少なくとも 1 つある。thm-gel-invariance により、これはもとの方程式の解の全体でもある。
    段 6(解がただ 1 つになる条件).$r=n$ なら自由な文字はなく、解はただ 1 つである。$r< n$ なら自由な文字が 1 つ以上あり、その値を変えると別の解が得られるので、解は無数にある。

段 5 で使ったのは、条件 (iv) の「先頭の 1 の上下が $0$」である。これがないと、$i$ 行目の式に $x_{d_{i+1}}$ なども残り、下の行から順に代入して解く必要がある(ex-gel-start の (3) の代入がそれに当たる)。高校で習う加減法は、「下半分だけ $0$ にして、あとは代入する」やり方で、掃き出し法は「上下とも $0$ にして、代入をしない」やり方である。
thm-gel-echelon の (3) から、次のことも分かる。

解の個数は 0 個、1 個、無数のどれか

連立 1 次方程式の解は、ない、ただ 1 つ、無数にある、のどれかである。特に、ちょうど 2 つの解をもつ連立 1 次方程式はない。

thm-gel-echelon (1) で拡大係数行列を簡約な階段の形にする。(2) により、$(0\ \cdots\ 0\mid1)$ の行があれば解はない。なければ、段 6 のとおり、$r=n$ なら解はただ 1 つ、$r< n$ なら無数にある。

2 次方程式 $x^2=1$ は解をちょうど 2 つもつので、cor-gel-count は 1 次方程式に特有の性質である。

逆行列を掃き出しで求める

2 次正方行列 $A=\begin{pmatrix}a&b\\ c&d\end{pmatrix}$ の逆行列は、$ad-bc\ne0$ のとき $\dfrac1{ad-bc}\begin{pmatrix}d&-b\\ -c&a\end{pmatrix}$ である(行列の演算(高校数学))。同じものが掃き出し法でも求められる。$A$ の右に単位行列 $E$ を並べた $2\times4$ 行列 $[A\mid E]$ を掃き出す。

2 次の逆行列を掃き出しで求める

$A=\begin{pmatrix}2&1\\ 5&3\end{pmatrix}$ とする。
$$ \left(\begin{array}{cc|cc}2&1&1&0\\ 5&3&0&1\end{array}\right) \xrightarrow{\frac12R_1} \left(\begin{array}{cc|cc}1&\frac12&\frac12&0\\ 5&3&0&1\end{array}\right) \xrightarrow{R_2-5R_1} \left(\begin{array}{cc|cc}1&\frac12&\frac12&0\\ 0&\frac12&-\frac52&1\end{array}\right) $$
$$ \xrightarrow{2R_2} \left(\begin{array}{cc|cc}1&\frac12&\frac12&0\\ 0&1&-5&2\end{array}\right) \xrightarrow{R_1-\frac12R_2} \left(\begin{array}{cc|cc}1&0&3&-1\\ 0&1&-5&2\end{array}\right) $$
左半分が $E$ になったので、右半分 $B=\begin{pmatrix}3&-1\\ -5&2\end{pmatrix}$ が逆行列である。公式では $ad-bc=6-5=1$ で $\dfrac11\begin{pmatrix}3&-1\\ -5&2\end{pmatrix}$ となり、一致する。確かめると $AB=\begin{pmatrix}6-5&-2+2\\ 15-15&-5+6\end{pmatrix}=E$ である。

掃き出しで得た行列は逆行列

2 次正方行列 $A$ について、$[A\mid E]$ に行の基本変形を何回か行って $[E\mid B]$ の形にできたとする。このとき $A$ は逆行列をもち、$A^{-1}=B$ である。

要点:$B$ の第 $j$ 列 $b_j$ は、thm-gel-invariance により $A\boldsymbol{x}=e_j$($e_j$ は $E$ の第 $j$ 列)の解なので、$AB=E$ である。そこから行列式で $A$ が逆行列をもつことを示し、$B=A^{-1}$ を導く。

詳しい証明を開く

段 1($AB=E$).行の基本変形は、各列を別々に計算する操作である(新しい成分は、同じ列の成分だけから決まる)。したがって、$[A\mid E]$ に行った変形を、$A$ の右に $E$ の第 1 列 $e_1=\begin{pmatrix}1\\ 0\end{pmatrix}$ だけを並べた $[A\mid e_1]$ に行うと、$[E\mid b_1]$ になる。$[E\mid b_1]$ の連立方程式は $x_1=(b_1\text{ の第 1 成分})$、$x_2=(b_1\text{ の第 2 成分})$ で、解は $b_1$ だけである。thm-gel-invariance により、$A\boldsymbol{x}=e_1$ の解も $b_1$ だけなので、$Ab_1=e_1$ である。第 2 列についても同様に $Ab_2=e_2$ である。行列の積の定め方から $AB$ の第 $j$ 列は $Ab_j$ なので、$AB=E$ である。

段 2($B$ が逆行列).積の行列式は行列式の積なので(1次変換と行列式:面積の拡大率 の系「積の行列式」)、$\det A\cdot\det B=\det E=1$ である。よって $\det A\ne0$ で、$A$ は逆行列 $A^{-1}$ をもつ(行列の演算(高校数学))。$AB=E$ の両辺に左から $A^{-1}$ を掛けると、結合法則により $(A^{-1}A)B=A^{-1}E$、つまり $B=A^{-1}$ である。

3 次以上の正方行列でも、$[A\mid E]$ を掃き出して左半分が $E$ になれば右半分が逆行列であり、左半分を $E$ にできなければ逆行列はない(Bee15 Theorem NMRRI・Theorem CINM・Theorem OSIS・Theorem NI)。$AB=E$ までは 3 次以上でもそのまま示せるが、そこから $B$ が逆行列であること($BA=E$ も成り立つこと)を 3 次以上で示すには準備が要るので、この記事では 2 次の場合だけ証明する。

逆行列がない例と、3 次の逆行列

$D=\begin{pmatrix}1&2\\ 2&4\end{pmatrix}$ では、$R_2-2R_1$ で
$$ \left(\begin{array}{cc|cc}1&2&1&0\\ 2&4&0&1\end{array}\right) \xrightarrow{R_2-2R_1} \left(\begin{array}{cc|cc}1&2&1&0\\ 0&0&-2&1\end{array}\right) $$
となり、左半分の 2 行目がすべて $0$ になる。右半分の第 1 列だけを残した $[D\mid e_1]$ で見ると、2 行目は $0x_1+0x_2=-2$ という式で、どんな $(x_1,x_2)$ でも成り立たないので、thm-gel-invariance により $D\boldsymbol{x}=e_1$ は解をもたない。もし $D$ が逆行列をもてば $\boldsymbol{x}=D^{-1}e_1$ が解になるので、$D$ は逆行列をもたない。公式の側でも $1\cdot4-2\cdot2=0$ である。

3 次の例を開く

$C=\begin{pmatrix}1&2&1\\ 0&1&1\\ 1&3&3\end{pmatrix}$ の逆行列は $\begin{pmatrix}0&-3&1\\ 1&2&-1\\ -1&-1&1\end{pmatrix}$ である。積を計算すると、例えば第 1 行と第 1 列から $1\cdot0+2\cdot1+1\cdot(-1)=1$、第 1 行と第 2 列から $1\cdot(-3)+2\cdot2+1\cdot(-1)=0$ で、9 つの成分すべてで $E$ と一致する。掃き出しの途中は次のとおり。

$$\left(\begin{array}{ccc|ccc}1&2&1&1&0&0\\ 0&1&1&0&1&0\\ 1&3&3&0&0&1\end{array}\right)\xrightarrow{R_3-R_1}\left(\begin{array}{ccc|ccc}1&2&1&1&0&0\\ 0&1&1&0&1&0\\ 0&1&2&-1&0&1\end{array}\right)\xrightarrow[R_3-R_2]{R_1-2R_2}\left(\begin{array}{ccc|ccc}1&0&-1&1&-2&0\\ 0&1&1&0&1&0\\ 0&0&1&-1&-1&1\end{array}\right)\xrightarrow[R_2-R_3]{R_1+R_3}\left(\begin{array}{ccc|ccc}1&0&0&0&-3&1\\ 0&1&0&1&2&-1\\ 0&0&1&-1&-1&1\end{array}\right)$$

例と反例:どの条件が効いているか

外す条件反例成り立たなくなること
変形 (ii) の「$0$ でない数」2 行目に $0$ を掛ける(ex-gel-zero)解の集合が変わらない(thm-gel-invariance)
1 回に 1 つの行だけを変える2 つの行を同時に引き合う(ex-gel-simultaneous)解の集合が変わらない(thm-gel-invariance)
式が互いに独立3 本目の左辺が 1 本目と 2 本目の左辺の和(ex-gel-line、ex-gel-none)「式が 3 本、未知数が 3 つなら解はただ 1 つ」
解をもつこと未知数 3 つ、式 2 本で解がない(ex-gel-fewer)「式が未知数より少なければ解は無数」
1 次方程式であること$x^2=1$解の個数は $0$、$1$、無数のどれか(cor-gel-count)

表の 3 行目・4 行目は、よく言われる目安が、そのままでは正しくないことを示している。正しい形は thm-gel-echelon で、解の有無は $(0\ \cdots\ 0\mid1)$ の行で決まり、解の個数は $r$ と $n$ の比べ方で決まる。式の数そのものは決め手にならない。

反例:式が少なくても解がない

$x+y+z=1$、$x+y+z=2$ は、未知数 3 つに式 2 本だが、$R_2-R_1$ で 2 行目が $(0\ 0\ 0\mid1)$、つまり $0=1$ になるので解はない。2 つの平面は平行で、共有点がない。

掃き出しの式を開く

$$\left(\begin{array}{ccc|c}1&1&1&1\\ 1&1&1&2\end{array}\right)\xrightarrow{R_2-R_1}\left(\begin{array}{ccc|c}1&1&1&1\\ 0&0&0&1\end{array}\right)$$


一方、式が未知数より少なく、しかも解を もつ ときは、$r\le(\text{式の数})< n$ なので自由な文字が 1 つ以上あり、thm-gel-echelon (3) により解は無数にある。「式が少なければ解は無数」は、「解をもつなら」を付ければ正しい。

大学数学で見る

簡約な階段の形の先頭の 1 の数 $r$ は、係数行列の 階数(rank)と呼ばれる量である(行列の階数)。thm-gel-echelon は大学の言葉では次のように言える:連立 1 次方程式 $A\boldsymbol{x}=\boldsymbol{b}$ が解をもつのは、$A$ の階数と $[A\mid b]$ の階数が等しいときであり、そのとき解の全体は「1 つの解 + $A\boldsymbol{x}=\boldsymbol{0}$ の解の全体」で、後者は $n-r$ 次元の空間になる。ex-gel-line の解 $(0,1,0)+t(1,-2,1)$ は、1 つの解 $(0,1,0)$ と、$A\boldsymbol{x}=\boldsymbol{0}$ の 1 次元の解 $t(1,-2,1)$ の和である。
簡約な階段の形は、どの順に変形しても同じものになる(Bee15 Theorem RREFU)。この記事ではこの一意性を証明しない。

一意性が要らない理由と、掃き出しの計算量を開く

thm-gel-echelon の使い方には一意性は要らない。どの順に変形して得た簡約な階段の形でも、(2)(3) の結論が成り立つからである。

$n$ 個の未知数と $n$ 本の式の連立方程式で、先頭の成分の下を $0$ にする段階の掛け算の回数を数える。$k$ 列目を処理するとき、下にある $n-k$ 本の行のそれぞれで、倍率を $1$ 回求め、$k+1$ 列目から右辺までの $n-k+1$ 個の成分を更新する。更新の掛け算は $(n-k)(n-k+1)$ 回で、$k=1$ から $n$ まで足すと

$$\sum_{k=1}^{n}(n-k)(n-k+1)=\sum_{j=0}^{n-1}j(j+1)=\frac{(n-1)n(n+1)}3$$

回である($j=n-k$ とおき、$\sum j(j+1)=\frac{(n-1)n(n+1)}3$ は $n$ についての帰納法で確かめられる)。$n$ が大きいと約 $\frac{n^3}3$ 回で、未知数が $10$ 倍になると計算は約 $1000$ 倍になる。$n=3$ では $8$ 回、$n=100$ では $333300$ 回である。

計算機では、行の基本変形を行列の掛け算として記録し、$A$ を「対角線より上が $0$ の行列 $L$」と「対角線より下が $0$ の行列 $U$」の積 $A=LU$ に分ける(LU 分解。行の入れ替えが要るときは、入れ替えた後の行列を分ける)。同じ $A$ で右辺 $\boldsymbol{b}$ だけを取り替えて何度も解くときに、分解を使い回せる。また、割る数 $a$ が $0$ に近いと誤差が大きくなるので、各列で絶対値のいちばん大きい成分を選んで入れ替える(部分ピボット選択)。

演習

先頭の 1 が列を飛ばす場合

$x+2y+z=4$、$2x+4y+3z=9$、$x+2y+2z=5$ を掃き出し法で解け。自由な文字はどれか。

解答を開く

$R_2-2R_1$、$R_3-R_1$ で 2 行目と 3 行目はどちらも $(0\ 0\ 1\mid1)$ になる。$R_3-R_2$ で 3 行目は零の行、$R_1-R_2$ で 1 行目は $(1\ 2\ 0\mid3)$ になる。簡約な階段の形 $\left(\begin{array}{ccc|c}1&2&0&3\\ 0&0&1&1\\ 0&0&0&0\end{array}\right)$ で、先頭の 1 は $x$ と $z$ の列にある。自由な文字は $y$ で、$y=t$ とおくと $(x,y,z)=(3-2t,\ t,\ 1)$($t$ は任意の実数)。検算:$t=0$ の $(3,0,1)$ は $3+0+1=4$、$6+0+3=9$、$3+0+2=5$ を満たす。

文字を含む連立方程式

$x+y=1$、$2x+ay=b$ が、(1) ただ 1 つの解をもつ、(2) 無数の解をもつ、(3) 解をもたない、ための $a$、$b$ の条件を求めよ。

解答を開く

$R_2-2R_1$ で $\left(\begin{array}{cc|c}1&1&1\\ 0&a-2&b-2\end{array}\right)$ になる。(1) $a\ne2$ のとき、2 行目を $\frac1{a-2}$ 倍して先頭の 1 を作れるので $r=2$ で、解はただ 1 つ($y=\frac{b-2}{a-2}$、$x=1-y$)。(2) $a=2$、$b=2$ のとき、2 行目は零の行で $r=1<2$、解は $(1-t,\ t)$ の全体。(3) $a=2$、$b\ne2$ のとき、2 行目は $(0\ 0\mid b-2)$ で、$\frac1{b-2}$ 倍すると $(0\ 0\mid1)$ になるので解はない。2 本の直線で見ると、(1) は交わる、(2) は一致する、(3) は平行で離れている、に当たる。

さらに先へ

  • 次に読む 魔方陣 では、「縦・横・斜めの和が等しい」という 8 本の条件を連立 1 次方程式として掃き出し、$3\times3$ の魔方陣をすべて求める。
  • 掃き出し法は、足し算・引き算・掛け算・$0$ でない数での割り算ができる数の世界なら、どこでも同じように使える。$0$ と $1$ だけの世界($2$ で割った余りの計算)で掃き出すと、誤り訂正符号 の検査の計算になる。
  • 行列式を使って連立方程式の解を式で書く方法もある。2 次の場合の逆行列の公式は、その特別な場合である(行列式)。
  • 解の空間の次元の考え方は ベクトル空間 と 連立1次方程式 で扱う。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する