代入法や加減法で連立一次方程式を解くときは、項を書き換えたり符号を慎重に追ったりする必要があります。方程式や変数の数が増えるほど、作業は煩雑になっていきます。
拡大行列は、すべての係数と定数項をひとつの対象にまとめる簡潔な表現です。この形にすると、元の方程式を書き直すことなく、行基本変形の小さなセットを適用して系を簡単化できます。
以下では、拡大行列とは何かを定義し、その作り方を示し、拡大行列で連立方程式を解く標準的な方法を説明します。
拡大行列とは?
拡大行列とは、左側に変数の係数、右側に定数項を並べ、視覚的に区切るための縦棒で分けた行列です。縦棒はあくまで見やすさのための区切りであり、計算には影響しません。
連立方程式の拡大行列表現
拡大行列を作るには、各方程式で変数の順序をそろえて係数を並べ、最後に定数項を追加の列として付け加えます。行列の各行は、元の連立方程式の各方程式に正確に対応します。
次の連立方程式を考えます。

これに対応する拡大行列は次のとおりです。
![$ \left[ \begin{array}{cc|c} 2 & 1 & 5 \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/1b43c2a81ce4d19dda05804ab649a73d.png)
見てのとおり、1 行目は第 1 方程式を、2 行目は第 2 方程式を表しています。
拡大行列が有用な理由
拡大行列は、系を記述するために必要な数値を一か所に集約します。以降の作業は、この一つの対象に対して行基本変形を直接適用するだけです。したがって、方程式を書き直し続けたり、係数と定数のリストを別々に管理したりする必要がありません。この方法は大規模な系にも素直に拡張でき、書き写しミスの可能性を減らします。
拡大行列に対する行基本変形
許される基本的な行操作は 3 つあります。各操作は、解集合を変えない代数的操作に対応します。具体的には次のとおりです。
- 任意の 2 行の入れ替え(行の交換)。
- ある 1 行のすべての要素を同じ非零定数で掛ける。
- ある 1 行の定数倍を別の行に加える(または引く)。
これらの操作は解集合を保つため、変形後の行列は同値な連立方程式を表します。なお、同様の操作は列に対しても行うことができます。
拡大行列を用いた解法
解法は次の 3 段階です。
- 連立方程式を拡大行列で表す。
- 行基本変形を適用して、より簡単な形にする。
- 簡単化した行列から解を読み取る。
目標の形は行階段形と呼ばれます。これは、各非零行の先頭要素(ピボット)が 1、各ピボットの下の要素が 0、そして下の行に進むにつれてピボットが右へ移動していく形です。行階段形まで到達すれば、後退代入によって変数の値が得られます。
拡大行列によるガウス消去法
ガウス消去法は、左から右へと各ピボットの下を系統的に 0 にしていく手続きです。目的は上三角行列を得ることです。
まず、ピボットになり得る最も左の列から始めます。必要ならピボット行をスケーリングしてピボットを 1 にし、その行の適切な定数倍を下の行に加えて、その列の下側を 0 にします。
次に、次の列に移ってまったく同じことを繰り返します。得られた三角行列は、最下行からの後退代入で解きます。
難しく聞こえても心配はいりません。この記事の後半で例を見ると、より理解しやすくなります。
既約行階段形(RREF)
既約行階段形は、行階段形をさらに一段進めた形です。
行階段形の条件に加えて、各ピボットの上の要素もすべて 0 であり、各ピボットは 1 でなければなりません。解が一意な系では、行列の左側は単位行列になります。すると右側の定数列が変数の値をそのまま与えるため、この時点では後退代入は不要です。
拡大行列を使った解法の例
次の連立方程式を考えます。

拡大行列を作ります。
![$ \left[ \begin{array}{cc|c} 2 & 1 & 5 \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/ac312dc2de2f85a82688c9822933096a.png)
第 1 行を 2 で割ります。
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 1 & -1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/c978fb965317c3958007d5104c40d970.png)
第 2 行から第 1 行を引きます。
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 0 & -\frac{3}{2} & -\frac{3}{2} \end{array} \right] $](https://media.datacamp.com/cms/d53fd90648d45966012b43e918ecbab3.png)
第 2 行に −2/3 を掛けます。
![$ \left[ \begin{array}{cc|c} 1 & \frac{1}{2} & \frac{5}{2} \\ 0 & 1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/b1f97689a2caa6be9cd6eba5bd982ba4.png)
第 1 行から、第 2 行の 1/2 倍を引きます。
![$ \left[ \begin{array}{cc|c} 1 & 0 & 2 \\ 0 & 1 & 1 \end{array} \right] $](https://media.datacamp.com/cms/ecfa74efaa9b0dd99bf4d6c0bfc5c80c.png)
この行列は既約行階段形になりました。解は x=2、y=1 です。
拡大行列と係数行列の違い
係数行列には、変数の係数だけが含まれます。上の連立方程式では次のとおりです。

拡大行列はこの右側に定数項の列を付け加え、解法で用いる完全な表現を与えます。
拡大行列と線形方程式系
拡大行列の各行は 1 本の方程式に対応しており、行列全体で連立方程式を符号化します。行基本変形を行った結果として、次の 3 通りのいずれかが起こり得ます。
- 非零ピボットの数が変数の数と同じであれば、解は一意です。
- [0 0 … 0 | c](c が 0 でない)の形の行が現れた場合、矛盾があるため解は存在しません。
- 矛盾する行がなく、ピボットの数が変数の数より少ない場合、解は無数に存在します。
まとめ
拡大行列を用いると、線形方程式系の解法を、一つの配列に対して行う明確に定義された行基本変形の手順に落とし込めます。
利用できる道具は 3 つの行基本変形で、解集合を保ったまま行列を簡単化します。この手法に慣れれば、ガウス消去法や既約行階段形を自在に扱えるようになります。これらの概念は線形代数の基礎であり、データサイエンス、最適化、数値解析、画像処理など、実にさまざまな場面で現れます。
拡大行列に関する FAQ
係数行列と拡大行列の違いは何ですか?
係数行列には変数の係数だけが含まれます。拡大行列は、元の方程式の定数項を最終列として追加します。
行基本変形によって、系の解は変わりますか?
いいえ。3 つの行基本変形(行の入れ替え、非零定数による行のスケーリング、ある行の定数倍を別の行に加える)は、解がまったく同じ同値な系を生成します。
拡大行列から、解が存在しないのか、無数にあるのかはどう判断できますか?
簡約後に [0 0 … 0 | c](c ≠ 0)の形の行が現れたら、その系は矛盾しており解は存在しません。矛盾する行がなく、ピボットの数が変数の数より少なければ、解は無数に存在します。
行階段形と既約行階段形の違いは何ですか?
行階段形では、先頭の 1 に対してその下が 0 になります。既約行階段形では、各ピボットの上も 0 になり(解が一意なとき左側は単位行列になります)、解を直接読み取れます。
拡大行列の手法は小規模な系にしか適していませんか?
いいえ。この方法は方程式や変数の数に依存せずに機能し、線形代数やデータサイエンスで大規模な線形系を解くコンピュータアルゴリズムの基盤です。