掃き出し法

同義語:Gaussの消去法Gauss消去法ガウスの消去法Gauss–Jordanの消去法行簡約Gaussian eliminationGauss–Jordan eliminationrow reduction

概要

掃き出し法(Gauss–Jordan elimination)とは、行列に行の入れ替え・行の $0$ でない数倍・ある行への別の行の定数倍の加算という行基本変形を繰り返し、各列で選んだピボットを $1$ にしてその列のほかの成分を $0$ にしていくことで、簡約階段形に変形する手続きである。行基本変形は $Ax=0$ の解と行空間を変えないので、簡約階段形はピボットの選び方によらずただ 1 つに決まり、同じ大きさの 2 つの行列が行基本変形で移り合うことは、核が等しいことや簡約階段形が等しいことと同値である。簡約階段形からは行空間の基底、元の列から選んだ列空間の基底と列の関係、階数が読み取れ、変形の記録から逆行列や行の線形関係も得られる。

$$\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次方程式, 行列, 正則行列, 部分空間

行列
$$ A=\begin{pmatrix}0&2&4&2\\1&1&3&2\\2&4&10&6\end{pmatrix} $$
の第 1 列から順に、$0$ でない成分を 1 つ選んで $1$ にし、その列のほかの成分をすべて $0$ にする操作を繰り返すと
$$ R=\begin{pmatrix}1&0&1&1\\0&1&2&1\\0&0&0&0\end{pmatrix} $$
に行き着く。列の成分を $1$ つを残して $0$ にすることを「掃き出す」といい、行の入れ替え・行の $0$ でない数倍・ある行に別の行の定数倍を加える、の 3 種類の操作(行基本変形)だけでこれを行う手続きが 掃き出し法 である。連立1次方程式 を解く方法として知られるが、得られる $R$ には $A$ の情報がそのまま残っている。$R$ の $0$ でない 2 つの行は $A$ の行の張る空間の基底であり、$R$ の第 3 列 $=$ 第 1 列 $+\,2\times$ 第 2 列 という関係は、$A$ の列の間でもそのまま $a_3=a_1+2a_2$ として成り立つ。さらに、どの順序で変形しても最後の $R$ は同じになる。この記事では、掃き出し法を手続きとして定義し、出力の簡約階段形がただ 1 つに決まること、2 つの行列が行基本変形で移り合うための判定、行空間・列空間・左零空間の基底の読み取り方、計算の手数を証明する。

定義

以下、$K$ は体とし、$K$ の元を成分とする $m\times n$ 行列の全体を $M_{m,n}(K)$ と書く。

行基本変形・行同値・簡約階段形

行列に対する次の 3 種類の操作を 行基本変形 という。
(i) 2 つの行を入れ替える。
(ii) ある行に $0$ でない $c\in K$ を掛ける。
(iii) ある行に、別の行の $c$ 倍($c\in K$)を加える。
行基本変形を有限回施して $A$ から $B$ が得られるとき、$A$ と $B$ は 行同値 であるという。行の $0$ でない最初の成分をその行の 先頭成分 という。次の (a)(b)(c) を満たす行列を 階段形、さらに (d) も満たす行列を 簡約階段形(reduced row echelon form)という。
(a) 成分がすべて $0$ の行は、そうでない行より下にある。
(b) $0$ でない行の先頭成分は $1$ である。
(c) 第 $i$ 行の先頭成分が第 $j_i$ 列にあるとき、$j_1< j_2<\cdots< j_r$($r$ は $0$ でない行の個数)。
(d) 先頭成分を含む列(主列)では、先頭成分以外の成分はすべて $0$ である。

各行基本変形には同じ種類の逆の変形があるので、行同値は同値関係である。これらの定義は 連立1次方程式 の記事の定義「連立1次方程式の行基本変形」「簡約階段形と主変数」と同じであり、Bee15 の Definition RO・REM・RREF(Section RREF、pp. 20–22)とも一致する。

掃き出し法

$M\in M_{m,p}(K)$ に対し、$r:=0$ から始めて、$j=1,2,\dots,p$ の順に次を行う手続きを 掃き出し法(Gauss–Jordan の消去法)という。

  • 第 $j$ 列の第 $r+1$ 行以下に $0$ でない成分がなければ、何もせず次の列へ進む。
  • あれば、そのような成分をもつ行を 1 つ選び(この成分を ピボット という)、第 $r+1$ 行と入れ替えて $r$ を $1$ 増やす。第 $r$ 行をピボットの逆数倍して $(r,j)$ 成分を $1$ にし、$r$ 以外のすべての $k$ について第 $k$ 行から第 $r$ 行の $m_{kj}$ 倍を引く(第 $j$ 列を 掃き出す)。ここで $m_{kj}$ はその時点の $(k,j)$ 成分である。
    連立1次方程式 $Ax=b$ を解くとき、ピボットより下の成分だけを $0$ にした上三角の形(先頭成分は $1$ にしなくてよい)まで進めて(前進消去)止め、最後の式から順に未知数を求める(後退代入)方法を Gauss の消去法 という。

この記事では、ピボットの上下を掃き出して簡約階段形まで進める手続きを掃き出し法と呼ぶ。Gauss の消去法も同じ行基本変形を使い、途中で止めるところだけが違う。手続きの形は Bee15 の Theorem REMEF の証明とその後の手順の記述(pp. 22–24)と同じである。

掃き出し法の出力は簡約階段形

def-ge-procedure の手続きは $p$ 回の段で終わり、出力は $M$ と行同値な簡約階段形である。

段ごとに保たれる形

要点:第 $j$ 列まで処理した時点で「最初の $j$ 列が簡約階段形で、第 $r+1$ 行以下の最初の $j$ 列は $0$」が保たれる。

詳しい証明を開く

各段は行基本変形の組み合わせなので、出力は $M$ と行同値である。第 $j$ 列まで処理した時点の行列を $M^{(j)}$、そのときの $r$ を $r_j$ とし、「$M^{(j)}$ の最初の $j$ 列からなる行列は簡約階段形で、$0$ でない行は第 $1,\dots,r_j$ 行、とくに第 $r_j+1$ 行以下の最初の $j$ 列はすべて $0$」を $j$ についての帰納法で示す($j=0$ は空虚に正しい)。

第 $j$ 列の第 $r_{j-1}+1$ 行以下がすべて $0$ なら、何もしないので第 $j$ 列は主列にならず、最初の $j$ 列でも (a)〜(d) が保たれる。そうでなければ、入れ替えと掃き出しに使う行は第 $r_{j-1}+1$ 行以下で、それらの行の最初の $j-1$ 列は帰納法の仮定により $0$ なので、最初の $j-1$ 列はどの操作でも変わらない。操作の後、第 $r_j=r_{j-1}+1$ 行は最初の $j-1$ 列が $0$ で第 $j$ 列が $1$ なので、その先頭成分は第 $j$ 列にあり、前の行の先頭成分より右にある。第 $j$ 列はこの $1$ 以外すべて $0$ で、ほかの主列(第 $j$ 列より左)は変わらない。よって最初の $j$ 列は (a)〜(d) を満たし、第 $r_j+1$ 行以下の最初の $j$ 列は $0$ である。$j=p$ で主張を得る。$\square$

同じ行列でも、ピボットの選び方が違えば途中の行列は違う。それでも出力は同じになる(cor-ge-rref-unique)。

直感

行基本変形は、連立1次方程式の式を並べ替え、定数倍し、足し合わせる操作であり、方程式の「中身」(解の集合)を変えない。行列の言葉では、行基本変形は行ベクトルたちの線形結合をとり直す操作なので、行の張る空間(行空間)は変わらず、$Ax=0$ の解、すなわち「列の間の線形関係」も変わらない。掃き出し法はこの不変な情報を、読み取りやすい標準の形 $R$ に書き直す作業である。$R$ では主列が単位ベクトル $e_1,\dots,e_r$ になっているので、ほかの列が主列の線形結合として何倍ずつかを、成分から直接読める。そして $R$ は「列の間の線形関係」だけで決まってしまうので、行き着く形はただ 1 つである(thm-ge-kernel-determines)。

例と反例

掃き出し法の実行と記録

冒頭の $A$ に掃き出し法を施す。第 1 列の第 1 行は $0$ なので、第 2 行をピボットの行に選んで第 1 行と入れ替える。第 3 行から第 1 行の $2$ 倍を引くと第 1 列が掃き出され、第 2 列のピボットは $(2,2)$ 成分の $2$ である。第 2 行を $\frac12$ 倍し、第 1 行から第 2 行を、第 3 行から第 2 行の $2$ 倍を引くと $R$ を得る。
$$ A\ \to\ \begin{pmatrix}1&1&3&2\\0&2&4&2\\2&4&10&6\end{pmatrix}\ \to\ \begin{pmatrix}1&1&3&2\\0&2&4&2\\0&2&4&2\end{pmatrix}\ \to\ \begin{pmatrix}1&0&1&1\\0&1&2&1\\0&0&0&0\end{pmatrix}=R $$
第 3 列には第 3 行以下にピボットの候補がなく($0$ だけ)、第 4 列も同じなので、主列は第 1・2 列、$r=2$ である。同じ変形を $(A\mid I_3)$ に施すと右半分に
$$ P=\begin{pmatrix}-\frac12&1&0\\ \frac12&0&0\\ -1&-2&1\end{pmatrix},\qquad PA=R $$
が現れる(prop-ge-elementary)。$R$ から、$A$ の行空間の基底 $(1,0,1,1)$、$(0,1,2,1)$、$A$ の列の関係 $a_3=a_1+2a_2$、$a_4=a_1+a_2$、$P$ の第 3 行から $A$ の行の関係 $-(\text{第 1 行})-2(\text{第 2 行})+(\text{第 3 行})=0$ が読み取れる(prop-ge-bases)。

反例:簡約でない階段形はただ 1 つに決まらない

$B_1=\begin{pmatrix}1&1\\0&1\end{pmatrix}$ と $B_2=\begin{pmatrix}1&0\\0&1\end{pmatrix}$ はどちらも階段形((a)(b)(c) を満たす)で、第 1 行から第 2 行を引けば $B_1$ から $B_2$ が得られるので行同値である。$B_1$ は第 2 列の先頭成分の上に $1$ があるので (d) を満たさない。この例は「(d) を満たす」を外すと、行同値な行列の階段形が 1 つに決まらないことを示す。同様に (b) を外すと、$(2)$ と $(1)$ がともに階段形で行同値になる。

反例:列の操作は解の集合を変える

$A=(1\ \ 0)$ の 2 つの列を入れ替えると $A'=(0\ \ 1)$ になる。$Ax=0$ の解は $x_1=0$ の直線、$A'x=0$ の解は $x_2=0$ の直線で、解の集合が変わる。この例は「行に対する操作である」を満たさないので、核(斉次方程式の解の集合)が保たれない。掃き出し法で列の操作を混ぜると、方程式の解や列の関係を読み取れなくなる。

反例:体でないと先頭成分を $1$ にできない

整数を成分とする行列に、整数の範囲で行基本変形を施すとする。(ii) で掛けてよいのは逆数も整数である $\pm1$ だけである。$1\times1$ 行列 $(2)$ からは $(\pm2)$ しか得られず、先頭成分を $1$ にできない。この例は「成分が体の元である」を満たさないので、簡約階段形への変形(prop-ge-output)が成り立たない。整数行列には別の標準形(Hermite標準形)がある。

反例:ピボットの選び方と丸め

方程式 $10^{-4}x+y=1$、$x+y=2$ の解は $x=\frac{10000}{9999}\approx1.0001$、$y=\frac{9998}{9999}\approx0.9999$ である。各演算の結果を有効数字 3 桁に丸めて計算する。$(1,1)$ 成分 $10^{-4}$ をピボットにすると、第 2 式から第 1 式の $10^4$ 倍を引いて $(1-10^4)y=2-10^4$ となり、両辺とも $-1.00\times10^4$ に丸められて $y=1.00$、第 1 式から $x=(1-1.00)/10^{-4}=0$ となる。$x$ の値がまったく違う。先に 2 つの式を入れ替えて $1$ をピボットにすると、$(1-10^{-4})y=1-2\cdot10^{-4}$ の両辺が $1.00$ に丸められて $y=1.00$、$x=2-1.00=1.00$ となり、正しい値に近い。正確に計算すればどのピボットでも同じ解になるが、丸めのある計算では、絶対値の小さいピボットを避ける(部分ピボット選択)必要がある例である。

外す条件反例成り立たなくなること
(d)(簡約)$B_1=\begin{pmatrix}1&1\\0&1\end{pmatrix}$ と $I_2$行き着く形の一意性(cor-ge-rref-unique)
行に対する操作$(1\ \ 0)$ の列の入れ替え核(解の集合)が保たれること
成分が体の元整数の $(2)$簡約階段形への変形(prop-ge-output)
計算が正確$10^{-4}x+y=1$、$x+y=2$ を 3 桁で計算ピボットによらず正しい解が出ること
簡約階段形の一致(階数の一致に弱める)ex-ge-same-rank の $A$ と $C$行同値であること

性質

基本行列による記述

$I_m$ に 1 回の行基本変形を施した行列を基本行列という。基本行列 $E$ を左から掛けることは、同じ行基本変形を施すことであり、基本行列は正則である(正則行列 の記事の補題「基本行列を左から掛ける」)。

掃き出し法の記録

$A\in M_{m,n}(K)$ に行基本変形を順に施して $B$ が得られたとし、各変形に対応する基本行列を $E_1,\dots,E_s$ とする。$P:=E_s\cdots E_1$ は正則で $B=PA$ であり、$(A\mid I_m)$ に同じ変形を施すと $(B\mid P)$ が得られる。

基本行列を順に掛ける

上の補題により、$E_1A$ は 1 回目の変形を施した行列で、以下同様に $E_s\cdots E_1A=B$ である。基本行列は正則で、正則行列の積は正則である(正則行列 の記事の命題「逆行列と演算」の 2)ので $P$ は正則である。区分けした行列の積により $P(A\mid I_m)=(PA\mid P)=(B\mid P)$ である。$\square$

$A$ が正方行列で $R=I_n$ のときは $P=A^{-1}$ であり、これが掃き出し法による逆行列の計算である(正則行列 の記事の定理「掃き出し法による逆行列の計算」)。

簡約階段形の一意性

簡約階段形 $R\in M_{m,n}(K)$ の列を $\rho_1,\dots,\rho_n$、$0$ でない行の個数を $r$、先頭成分の列を $j_1<\cdots< j_r$、$K^m$ の標準基底を $e_1,\dots,e_m$ とする。

簡約階段形の列の形
  1. 主列は $\rho_{j_i}=e_i$($i=1,\dots,r$)である。
  2. 各 $k$ について $\rho_k=\sum_{i:\,j_i\le k}r_{ik}e_i$ である($r_{ik}$ は $R$ の $(i,k)$ 成分)。
  3. 第 $k$ 列が主列であることと、$\rho_k\notin\operatorname{span}\{\rho_1,\dots,\rho_{k-1}\}$ であることは同値である。
  4. 第 $k$ 列が主列でなければ $\rho_k=\sum_{i:\,j_i< k}r_{ik}\rho_{j_i}$ である。
先頭成分より左は 0

1 は (b) と (d) による。2:第 $i$ 行が $0$ の行($i>r$)なら $r_{ik}=0$ である。$i\le r$ で $j_i>k$ なら、第 $i$ 行の先頭成分は第 $k$ 列より右にあるので $r_{ik}=0$ である。よって $\rho_k$ の $0$ でない成分は $j_i\le k$ となる行 $i$ にしかない。
3:2 により $\rho_1,\dots,\rho_{k-1}$ はすべて $\operatorname{span}\{e_i\mid j_i< k\}$ に入り、逆にこの $e_i$ は 1 により $\rho_{j_i}$($j_i< k$)そのものなので、$\operatorname{span}\{\rho_1,\dots,\rho_{k-1}\}=\operatorname{span}\{e_i\mid j_i< k\}$ である。第 $k$ 列が主列 $j_t$ なら $\rho_k=e_t$ で、$j_t=k$ なので $e_t$ はこの部分空間に入らない(標準基底は線形独立)。主列でなければ $\{i\mid j_i\le k\}=\{i\mid j_i< k\}$ なので、2 により $\rho_k$ はこの部分空間に入る。
4:主列でない $k$ について、2 の式の $e_i$ を 1 により $\rho_{j_i}$ に置き換えればよい。$\square$

簡約階段形は核で決まる

$R,R'\in M_{m,n}(K)$ がともに簡約階段形で、$\{x\in K^n\mid Rx=0\}=\{x\in K^n\mid R'x=0\}$ なら、$R=R'$ である。

列の間の線形関係を比べる

$R'$ の列を $\rho'_1,\dots,\rho'_n$ とする。$x\in K^n$ について $Rx=\sum_lx_l\rho_l$ なので、「$\rho_k\in\operatorname{span}\{\rho_1,\dots,\rho_{k-1}\}$」は「$x_k=1$ かつ $l>k$ で $x_l=0$ を満たす $x$ で $Rx=0$ となるものがある」と同値である。$R'$ についても同じであり、仮定により $Rx=0$ と $R'x=0$ の解は同じなので、各 $k$ について $\rho_k\in\operatorname{span}\{\rho_1,\dots,\rho_{k-1}\}$ と $\rho'_k\in\operatorname{span}\{\rho'_1,\dots,\rho'_{k-1}\}$ は同値である。lem-ge-columns の 3 により、$R$ と $R'$ の主列の番号の集合は一致する。したがって $0$ でない行の個数 $r$ も、先頭成分の列 $j_1<\cdots< j_r$ も一致し、1 により主列は $\rho_{j_i}=e_i=\rho'_{j_i}$ である。
主列でない $k$ をとる。lem-ge-columns の 4 により、$x_k=1$、$x_{j_i}=-r_{ik}$($j_i< k$)、ほかの成分を $0$ とした $x$ は $Rx=0$ を満たすので、$R'x=0$ でもある。これは $\rho'_k=\sum_{i:\,j_i< k}r_{ik}\rho'_{j_i}=\sum_{i:\,j_i< k}r_{ik}e_i$ ということであり、右辺は同じ 4 と 1 により $\rho_k$ に等しい。よってすべての列が一致し、$R=R'$ である。$\square$

簡約階段形の一意性

任意の $A\in M_{m,n}(K)$ に対し、$A$ と行同値な簡約階段形はただ 1 つである。とくに掃き出し法の出力は、ピボットの選び方によらない。

行同値な行列は核が等しい

存在は prop-ge-output による。$R,R'$ がともに $A$ と行同値な簡約階段形なら、行基本変形は $Ax=0$ の解の集合を変えない(連立1次方程式 の記事の命題「行基本変形は解集合を変えない」で $b=0$ とする)ので、$R$ と $R'$ の核はどちらも $A$ の核に等しい。thm-ge-kernel-determines により $R=R'$ である。$\square$

この一意な $R$ を $A$ の簡約階段形という。一意性は Bee15 の Theorem RREFU(pp. 24–27)にもあり、そこでは $R$ の各行が $R'$ の行の線形結合であることから成分を比べて証明している。上の証明は列の側から見たもので、核だけを使う。

行同値の判定

$A\in M_{m,n}(K)$ の行ベクトルの張る $K^n$(横ベクトルの空間)の部分空間を $A$ の 行空間 といい $\operatorname{Row}A$ と書く。$A$ の列ベクトルの張る $K^m$ の部分空間を 列空間 という。

行同値であるための条件

$A,B\in M_{m,n}(K)$ について、次の 5 条件は同値である。
(i) $A$ と $B$ は行同値である。
(ii) 正則行列 $P\in M_m(K)$ で $B=PA$ となるものがある。
(iii) $\operatorname{Row}A=\operatorname{Row}B$。
(iv) $\{x\mid Ax=0\}=\{x\mid Bx=0\}$。
(v) $A$ と $B$ の簡約階段形は等しい。

核を経由して一巡する

(i)⇒(ii) は prop-ge-elementary である。
(ii)⇒(iii):$PA$ の第 $i$ 行は $\sum_kp_{ik}\cdot(A\text{ の第 }k\text{ 行})$ なので $\operatorname{Row}B\subset\operatorname{Row}A$ である。$A=P^{-1}B$ なので逆の包含も成り立つ。
(iii)⇒(iv):$Ax=0$ は、$A$ の各行 $a$ について $ax=0$(横ベクトルと縦ベクトルの積)ということであり、$y\mapsto yx$ は線形なので、これは $\operatorname{Row}A$ のすべての $y$ について $yx=0$ と同値である。よって核は行空間だけで決まる。
(iv)⇒(v):$A,B$ の簡約階段形を $R_A,R_B$ とすると、cor-ge-rref-unique の証明と同じく $R_A$ の核は $A$ の核、$R_B$ の核は $B$ の核に等しい。仮定によりこれらは等しいので、thm-ge-kernel-determines により $R_A=R_B$ である。
(v)⇒(i):$A$ と $R_A$、$B$ と $R_B=R_A$ は行同値で、行同値は同値関係なので $A$ と $B$ は行同値である。$\square$

(i)⇒(iii) は Bee15 の Theorem REMRS(Section CRS、p. 174)にあたる。この定理により、同じ大きさの 2 つの行列が行同値かどうかは、簡約階段形を 1 つずつ計算して比べれば判定できる。

階数が等しくても行同値とは限らない

ex-ge-main の $A$ と $C=\begin{pmatrix}1&1&3&2\\0&1&2&0\\0&0&0&0\end{pmatrix}$ はどちらも階数 $2$ だが、$C$ の簡約階段形は $\begin{pmatrix}1&0&1&2\\0&1&2&0\\0&0&0&0\end{pmatrix}$ で $R$ と異なるので、行同値でない。実際 $x=(-1,-1,0,1)^{\top}$ は $Ax=0$ を満たすが $Cx=(0,-1,0)^{\top}\ne0$ であり、(iv) が破れている。この例は「階数が等しい」を満たすが「行同値」を満たさない。階数が等しいことは、左右から正則行列を掛けて移り合うことと同値であり(階数(線形代数) の記事の定理「階数による標準形」)、左からだけ掛ける行同値とは別の条件である。

基底の読み取り

簡約階段形から読み取れる基底

$A\in M_{m,n}(K)$ の列を $a_1,\dots,a_n$、簡約階段形を $R=(r_{ik})$ とし、$R$ の $0$ でない行の個数を $r$、主列を $j_1<\cdots< j_r$ とする。$P$ を $PA=R$ となる正則行列とする(prop-ge-elementary)。

  1. $R$ の $0$ でない $r$ 個の行は $\operatorname{Row}A$ の基底である。
  2. $a_{j_1},\dots,a_{j_r}$ は $A$ の列空間の基底であり、主列でない各 $k$ について $a_k=\sum_{i:\,j_i< k}r_{ik}\,a_{j_i}$ である。とくに $\operatorname{rank}A=r$ である。
  3. $P$ の第 $r+1,\dots,m$ 行は、$\{y\in K^m\mid y^{\top}A=0\}$($A$ の 左零空間、$A$ の行の間の線形関係の係数の全体)の基底である。
主列が単位ベクトルであることを使う

1:thm-ge-row-equivalence の (i)⇒(iii) により $\operatorname{Row}A=\operatorname{Row}R$ で、$R$ の $0$ の行は行空間に寄与しないので、$0$ でない行は $\operatorname{Row}A$ を張る。$0$ でない行の線形結合 $\sum_{i\le r}c_i(R\text{ の第 }i\text{ 行})$ の第 $j_t$ 成分は、主列 $\rho_{j_t}=e_t$(lem-ge-columns の 1)により $c_t$ である。よってこれが $0$ なら $c_1=\cdots=c_r=0$ であり、線形独立である。
2:$A$ と $R$ は行同値なので核が等しく、$\sum_kx_ka_k=0$ と $\sum_kx_k\rho_k=0$ は同値である。$\sum_ic_ia_{j_i}=0$ なら $\sum_ic_i\rho_{j_i}=\sum_ic_ie_i=0$ なので $c=0$ であり、$a_{j_1},\dots,a_{j_r}$ は線形独立である。主列でない $k$ について、lem-ge-columns の 4 の関係 $\rho_k-\sum_{j_i< k}r_{ik}\rho_{j_i}=0$ の係数を並べた $x$ は $Rx=0$、したがって $Ax=0$ を満たし、これは $a_k=\sum_{j_i< k}r_{ik}a_{j_i}$ ということである。よって $a_{j_1},\dots,a_{j_r}$ は列空間を張り、その基底で、列空間の次元は $r$ である。
3:$y^{\top}A=0$ は $y^{\top}P^{-1}R=0$ と同値である。$z^{\top}:=y^{\top}P^{-1}$ とおくと $z^{\top}R=\sum_{i\le r}z_i(R\text{ の第 }i\text{ 行})$ であり、1 によりこれが $0$ であることは $z_1=\cdots=z_r=0$ と同値である。よって $y^{\top}A=0$ は $y^{\top}=z^{\top}P=\sum_{i>r}z_i(P\text{ の第 }i\text{ 行})$ と書けることと同値である。$P$ は正則なのでその行は線形独立であり、第 $r+1,\dots,m$ 行は左零空間の基底である。$\square$

2 は $A$ 自身の列から列空間の基底を選べることを示しており、$R$ の列の代わりに $A$ の列を使うところが要点である($R$ の列空間は一般に $A$ の列空間と異なる。ex-ge-main では $R$ の列はすべて第 3 成分が $0$ だが、$A$ の列はそうでない)。1・2・3 はそれぞれ Bee15 の Theorem BRS(p. 175)、Theorem BCS(p. 170)、Theorem FS の 4(pp. 186–187)にあたる。3 の $\dim=m-r$ は、$A^{\top}$ についての次元定理と一致する。

計算の手数

Gauss の消去法の乗除算の回数

$A\in M_n(K)$、$b\in K^n$ とし、$(A\mid b)$ の前進消去で行の入れ替えが一度も要らない(各段の対角成分が $0$ でない)とする。前進消去で $(A\mid b)$ を上三角の形にし、後退代入で解を求めると、乗法と除法の回数の合計はちょうど
$$ \frac{n(n-1)(2n+5)}6+\frac{n(n+1)}2=\frac{n(n^2+3n-1)}3 $$
である。とくに $n$ が大きいとき、およそ $n^3/3$ 回である。

段ごとに数える

要点:前進消去の第 $k$ 段は $(n-k)(n-k+2)$ 回、後退代入で $x_k$ を求めるのは $n-k+1$ 回である。

詳しい証明を開く

前進消去の第 $k$ 段($k=1,\dots,n-1$)では、第 $k+1,\dots,n$ 行の $n-k$ 個の行のそれぞれについて、倍率 $l=a_{ik}/a_{kk}$ を 1 回の除法で求め、第 $k+1$ 列から第 $n+1$ 列(右辺)までの $n-k+1$ 個の成分を $a_{ij}-l\,a_{kj}$ に置き換える(乗法 $n-k+1$ 回)。第 $k$ 列の成分は $0$ になるとわかっているので計算しない。よって第 $k$ 段は $(n-k)(n-k+2)$ 回で、合計は $j=n-k$ とおいて $\sum_{j=1}^{n-1}j(j+2)=\frac{(n-1)n(2n-1)}6+n(n-1)=\frac{n(n-1)(2n+5)}6$ である。

後退代入では、上三角の方程式 $u_{kk}x_k+\sum_{j>k}u_{kj}x_j=c_k$ から $x_k=(c_k-\sum_{j>k}u_{kj}x_j)/u_{kk}$ を $k=n,n-1,\dots,1$ の順に求め、乗法 $n-k$ 回と除法 1 回を使う。合計は $\sum_{k=1}^n(n-k+1)=\frac{n(n+1)}2$ である。2 つを足して整理すると $\frac{n(n^2+3n-1)}3$ である。$\square$

$n=2$ なら $6$ 回、$n=3$ なら $17$ 回である。一方、Cramerの公式 は $n+1$ 個の $n$ 次行列式を使い、行列式を置換の和(Leibniz の公式)で計算すると 1 つあたり $n!$ 個の積が現れる。行列式自体も、前進消去で上三角にして対角成分の積をとれば $n^3$ 程度の手数で求まる(行列式 の記事の例「行基本変形による計算」)。

補足

行列式・逆行列との関係

正方行列 $A$ に行基本変形を施すと、行の入れ替えで行列式は $-1$ 倍、行の $c$ 倍で $c$ 倍になり、ある行に別の行の定数倍を加えても変わらない(行列式 の記事の定理「多重線形性と交代性」)。したがって掃き出し法で $R$ を得たとき、$R=I_n$ なら $\det A\ne0$ で、$\det A$ は入れ替えの回数と掛けた数から求まる。$R\ne I_n$ なら $R$ に $0$ の行があり $\det A=0$ である(正方の簡約階段形で $r=n$ なら主列が $e_1,\dots,e_n$ なので $R=I_n$)。逆行列の計算は 正則行列 の記事の定理「掃き出し法による逆行列の計算」にある。

文献

行基本変形・簡約階段形・掃き出しの手順は Bee15 Section RREF(Definition RO・REM・RREF、Theorem REMEF、pp. 20–24)、一意性は Theorem RREFU(pp. 24–27)、列空間・行空間と基底の読み取りは Section CRS(Theorem BCS、p. 170。Definition RSM・Theorem REMRS・BRS、pp. 173–175)、左零空間は Section FS(Theorem PEEF・FS、pp. 185–187)、基本行列は Section DM(Definition ELEM・Theorem EMDRO、pp. 261–262)にある。同書は複素数を成分とする行列で述べているが、本記事の証明は四則演算だけを使うので任意の体で成り立つ。

関連項目

参考文献

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