Skip to main content
線形代数数学計算ツール連立方程式

ガウスの消去法計算機:連立一次方程式をステップバイステップで解く

·14 min read·Solvify Team

ガウスの消去法計算機は、拡大係数行列に行基本変形を施して行階段形へ変形し、そこから後退代入によって各変数の値を求めることで、連立一次方程式を解きます。宿題の答え合わせをしているときも、線形代数の証明を検証しているときも、未知数が 3 つ以上ある工学的な連立方程式を解いているときも、計算機の背後にある手法を理解しておけば、計算ミスに気づき、結果を自信を持って解釈できるようになります。この記事では、行基本変形のルール、2×2 と 3×3 の 2 つの完全な計算例、ピボット選択の戦略、よくあるミス、そして練習問題までを順に解説します。手計算で連立方程式を解くときにも、計算機の出力を検証するときにも役立つ内容です。

ガウスの消去法とは?

ガウスの消去法とは、連立一次方程式を拡大係数行列として書き表し、行基本変形を使って行階段形——各行が 1 つ上の行よりも多くの先頭ゼロを持つ、三角形状に並んだ形——へ簡約することで解を求める方法です。行列がこの形になると、最後の方程式には変数が 1 つしか含まれないため直接解くことができ、そこから上の行へと順に値を代入していきます。この過程を後退代入と呼びます。この手法はカール・フリードリヒ・ガウスにちなんで名づけられていますが、その原型はおよそ 2000 年も前の中国の数学書『九章算術』にすでに現れています。2 本の方程式でも 20 本の方程式でも、あらゆる規模の連立方程式に適用できるため、ほとんどの計算機や数式処理システムが内部で使っているアルゴリズムがこれであり、多くの場合 LU 分解と呼ばれる変種の形で実装されています。宿題を超えた応用としては、構造工学における荷重計算、キルヒホッフの法則を用いた回路解析、コンピューターグラフィックスの変換処理、そして統計学や機械学習で使われる最小二乗法によるフィッティングなど、同じ行簡約の技法が基盤になっています。

行階段形とは、すべての先頭要素(各行で最初に現れる 0 でない数)が 1 つ上の行の先頭要素よりも厳密に右側にあり、かつ先頭要素の下にあるすべての要素が 0 である状態を指します。

ガウスの消去法計算機はどのように動作するのか?

ガウスの消去法計算機は、学生が手計算で進める 4 つの段階をそのまま自動化しますが、計算ミスを起こしません。この違いは、分数を含む場合や変数が 3 つ以上ある場合にとりわけ大きな意味を持ちます。計算機は入力された方程式から拡大係数行列を作り、行基本変形によって各ピボットの下にある要素をすべて 0 にし、ピボットが 0 のときは行の入れ替えが必要かどうかを判定し、最後に三角形になった結果から後退代入で解を読み取ります。優れた計算機は、解が存在しない場合(0 = 5 のような矛盾した行が現れる場合)や、解が無限に存在する場合(すべて 0 の行が現れる場合)にも警告を出してくれます。手計算では途中でやめてしまうとこれらを見落としがちです。また、ほとんどの計算機は内部で既定として部分ピボット選択——各列で絶対値が最大の要素を常にピボットに選ぶ方法——を使っています。人間なら気にせず小さくて扱いにくいピボットを使ってしまう場面でも、この方法なら丸め誤差を小さく抑えられるからです。

1. ステップ 1:拡大係数行列を書く

各方程式から変数の係数を取り出して行列に並べ、定数項を縦線の右側に置きます。x, y, z に関する 3 本の方程式からなる連立方程式は、3×4 の拡大係数行列になります。

2. ステップ 2:前進消去

左から右へ列ごとに作業を進め、行基本変形を使って現在のピボットより下にあるすべての要素を 0 にします。これによって上三角形の行階段形が得られます。

3. ステップ 3:後退代入

最下行(この時点で変数が 1 つしか残っていません)から始めてその変数を解き、その値を 1 つ上の行に代入して次の変数を求め、すべての変数が判明するまで繰り返します。

4. ステップ 4:代入して検算する

求めたすべての値を元の方程式に代入し直します。すべての方程式が成り立てば解は正しいということです——このたった 1 つの確認作業で、ガウスの消去法の誤りの大半を発見できます。

ガウスの消去法計算機の価値は、手法そのものを置き換えることではありません——手計算で行った行基本変形が同じ三角行列を導いたことを確認し、最終的な答えを信頼できるようにすることにあります。

ガウスの消去法を手計算でどう進めるのか?

ガウスの消去法は、たった 3 種類の行基本変形だけに基づいており、行列に対する正当な操作はすべてこの 3 つの動きの組み合わせで作られます。順序を間違えても手法が破綻することはありませんが、行の一部にしか操作を適用しないという誤りは、最も多いミスの原因です。操作は縦線の右側にある定数項も含めて、行全体に適用しなければならないからです。役に立つ考え方として、各行を「バラバラの数の並び」ではなく「1 本の方程式」として捉えるとよいでしょう。方程式の片側に対して行ったことは全体に対して行う——行列の 1 行としてではなく、元の x + y + z = 6 という形の方程式を操作しているときとまったく同じように扱うということです。

1. 操作 1:2 つの行を入れ替える(Ri ↔ Rj)

2 本の方程式の位置を交換しても、連立方程式の解は変わりません——順番が違うだけで同じ方程式だからです。この操作は、ピボットの要素が 0 のときのピボット選択に使われます。

2. 操作 2:行を 0 でない定数倍する(kRi → Ri)

1 本の方程式のすべての項を同じ 0 でない数 k で掛けても、それを満たす x, y, z の値は変わりません。行を簡単にしたり、消去の準備をしたりするために使います。

3. 操作 3:ある行の定数倍を別の行に加える(Ri + kRj → Ri)

これはガウスの消去法の主力となる操作です:ある行を、その行自身に別の行の定数倍を足したもので置き換えます。このとき定数は、目標とする要素が 0 になるように選びます。これがピボットより下のすべての行から変数を消去する方法です。

目安:操作 3 の乗数 k は、ピボットの係数に k を掛けたものが、消去したい要素を打ち消すように選びます。ピボットが 2 で、その下にある 6 を 0 にしたいなら、k = −3 を使います。

計算例:2×2 の連立方程式をガウスの消去法で解く

次の連立方程式を解きます:2x + 3y = 8 と 4x − y = 2。この例では、3 変数へ拡張する前に、最も単純なケース——2 本の方程式と 2 つの未知数——で全体の流れを確認します。

1. ステップ 1:拡大係数行列を書く

[ 2 3 | 8 ] [ 4 −1 | 2 ]

2. ステップ 2:行 2 から x を消去する

行 1 のピボットは 2 です。行 2 の 4 を 0 にするために R2 → R2 − 2R1 を使います。行 2 は次のようになります:(4 − 2×2), (−1 − 2×3), (2 − 2×8) = (0, −7, −14)。行列は次のようになります: [ 2 3 | 8 ] [ 0 −7 | −14 ]

3. ステップ 3:y を求める

行 2 は −7y = −14 を表しているので、y = −14 ÷ −7 = 2 です。

4. ステップ 4:後退代入で x を求める

行 1 は 2x + 3y = 8 を表しています。y = 2 を代入すると:2x + 3(2) = 8 → 2x + 6 = 8 → 2x = 2 → x = 1。

5. ステップ 5:解を検算する

x = 1, y = 2 を元の 2 本の方程式に代入します。式 1:2(1) + 3(2) = 2 + 6 = 8 ✓。式 2:4(1) − 2 = 4 − 2 = 2 ✓。解 (x, y) = (1, 2) は正しいことが確認できました。

解:x = 1, y = 2。ガウスの消去法計算機なら同じ組み合わせを瞬時に返しますが、手計算で進めることで、なぜその答えが正しいのかが明確になります。

計算例:3×3 の連立方程式をガウスの消去法で解く

次の連立方程式を解きます:x + y + z = 6、2x − y + z = 3、x + 2y − z = 2。ここからがガウスの消去法の本領です——変数が 3 つになると代入法や単純な加減法は扱いにくくなりますが、行基本変形による方法はきれいに規模を拡張できます。

1. ステップ 1:拡大係数行列を書く

[ 1 1 1 | 6 ] [ 2 −1 1 | 3 ] [ 1 2 −1 | 2 ]

2. ステップ 2:行 2 と行 3 から x を消去する

ピボットは行 1 の 1 です。R2 → R2 − 2R1 により (2−2, −1−2, 1−2 | 3−12) = (0, −3, −1 | −9) となります。R3 → R3 − 1R1 により (1−1, 2−1, −1−1 | 2−6) = (0, 1, −2 | −4) となります。行列: [ 1 1 1 | 6 ] [ 0 −3 −1 | −9 ] [ 0 1 −2 | −4 ]

3. ステップ 3:行 3 から y を消去する

ピボットは行 2 の −3 になりました。R3 → R3 + (1/3)R2 により (0, 1 + (1/3)(−3), −2 + (1/3)(−1) | −4 + (1/3)(−9)) = (0, 0, −7/3 | −7) となります。行列: [ 1 1 1 | 6 ] [ 0 −3 −1 | −9 ] [ 0 0 −7/3 | −7 ]

4. ステップ 4:z を求める(後退代入の開始)

行 3 は −(7/3)z = −7 を表しているので、z = −7 ÷ (−7/3) = −7 × (−3/7) = 3 です。

5. ステップ 5:y を求める

行 2 は −3y − z = −9 を表しています。z = 3 を代入すると:−3y − 3 = −9 → −3y = −6 → y = 2。

6. ステップ 6:x を求める

行 1 は x + y + z = 6 を表しています。y = 2, z = 3 を代入すると:x + 2 + 3 = 6 → x = 1。

7. ステップ 7:解を検算する

x = 1, y = 2, z = 3。式 1:1+2+3 = 6 ✓。式 2:2(1)−2+3 = 2−2+3 = 3 ✓。式 3:1+2(2)−3 = 1+4−3 = 2 ✓。3 本すべての方程式が成り立ちます。

解:(x, y, z) = (1, 2, 3)。パターンに注目してください:各消去ステップは現在のピボットより下の行にしか触れません。これこそが、連立方程式が大きくなっても計算量が爆発しない理由です。

なぜ部分ピボット選択が必要なのか?

ガウスの消去法は、0 のピボットで割ろうとした瞬間に破綻します。また、ピボットが 0 に非常に近い小さな数のときは、厳密には誤りではないものの信頼できなくなります。ほぼ 0 の値で割ると丸め誤差が増幅されてしまうからです。部分ピボット選択は、消去の前に現在の行を、ピボット列の絶対値がより大きい下の行と入れ替えることで、この 2 つの問題をどちらも解決します。厳密な分数で解く宿題の問題では、行の入れ替えが必須になるのはピボットが 0 のときだけです。しかし計算機が小数で処理する場合、0.0001 のようなピボットでも丸め誤差が膨れ上がり、最終的な答えが目に見えて間違うことがあります。ソフトウェアが「最初に見つかった 0 でない要素」ではなく「利用可能な最大の要素」を常にピボットに選ぶのは、このためです。

1. ステップ 1:0 または小さいピボットを特定する

たとえば、ピボット行として使おうとしている行の 1 列目が 0 だとします。0x + 2y − z = 3、x − y + 2z = 4、3x + y − z = 8 という連立方程式がその例です。この 0 で割ることはできません。

2. ステップ 2:0 でない(またはより大きい)要素を持つ行と入れ替える

行 1 と行 3 を入れ替えます。行 3 は x の列に 3 を持っており、これが利用可能な中で絶対値が最大です。行 1 ↔ 行 3 により:3x + y − z = 8、x − y + 2z = 4、0x + 2y − z = 3 となります。これで 3 をピボットとして通常どおり消去を進められます。

3. ステップ 3:通常どおり消去を続ける

0 でないピボットが用意できたら、操作 3 を適用してその下の列を 0 にし、次の列に移ってピボットの確認を繰り返します。

部分ピボット選択のルール:各ステップで、現在のピボット列の絶対値が最大である行を入れ替えて持ってきます。これは、まともなガウスの消去法計算機や数値線形代数ライブラリのすべてで採用されている標準的な手法です。

ガウスの消去法でよくあるミスは?

ガウスの消去法での誤りのほとんどは、手法そのものの誤解ではなく、繰り返し起こりがちな数種類のうっかりミスから生じます。何に注意すべきかを知っておけば、問題を最初からやり直す回数を減らせます。また、計算機の出力を信頼する前にこのリストを確認しておく価値があります。連立方程式を計算機の入力欄に書き写すときにも、同じうっかりミスが起きるからです。

1. 操作を行全体に適用し忘れる

R2 → R2 − 2R1 を計算するとき、−2R1 という乗数は行 1 のすべての要素——縦線の後ろにある定数項も含めて——に適用されます。定数列を飛ばしてしまうのが、単独で最も多いミスです。

2. 行を引くときの符号ミス

R2 − 2R1 は、行 1 の各要素の 2 倍を引くという意味です——ピボットや行の要素が負だと、マイナス記号を落としやすくなります。各要素を計算する前に操作を R2 + (−2)R1 と書き直しておくと、符号のミスが減ります。

3. 行を入れ替えずに 0 のピボットで割ってしまう

現在のピボットが 0 なら、その行を使ってその列を消去することはできません——上のピボット選択の例で示したとおり、まず 0 でない要素を持つ行と入れ替える必要があります。

4. 行階段形と簡約行階段形を混同する

行階段形が要求するのは各ピボットの下が 0 であることだけです。簡約行階段形(ガウス・ジョルダンの消去法で使われる形)では、さらに各ピボットの上も 0 であることと、ピボットが 1 であることが要求されます。標準的なガウスの消去法は行階段形で止め、代わりに後退代入で仕上げます。

5. 分数を早い段階で丸めてしまう

消去の途中で −7/3 のようなピボットの分数を小数に変換すると、丸め誤差が入り込み、後の行でそれが積み重なっていきます。最終的な答えが出るまで厳密な分数のまま保つか、計算機に分数のまま扱わせましょう。

最後の検算(解を元のすべての方程式に代入し直すこと)が合わない場合、誤りはほぼ必ず前の段階の行基本変形にあります。手法全体が間違っていたと考える前に、一つひとつの操作を見直しましょう。

ガウスの消去法と他の手法の比較:いつ使うべきか?

代入法や単純な加減法は 2 変数の連立方程式なら問題なく機能しますが、未知数が 3 つ以上になると、複数の代入を同時に追いかけることになるためミスが起きやすくなります。行列式を使うクラメルの公式は 2×2 や 3×3 の連立方程式にはエレガントですが、規模の拡張性に乏しい手法です——連立方程式が大きくなると行列式の計算コストがガウスの消去法よりはるかに速く増大するため、手計算でもソフトウェアでも、小規模な連立方程式を超えて使われることはほとんどありません。

1. 代入法を使う場面

方程式が 2 本あって、そのうち 1 本がすでにある変数について解かれている場合や、1 つの変数について解くのが簡単な場合(たとえば x = y + 3 のような場合)です。

2. クラメルの公式を使う場面

2×2 または 3×3 の連立方程式で、1 つの変数の値だけが必要な場合です。クラメルの公式なら、他の変数を解かずに 1 つの変数だけを計算できます。例:2x + 3y = 8 と 4x − y = 2(先ほど解いたのと同じ連立方程式)の場合、係数行列式は D = (2)(−1) − (3)(4) = −2 − 12 = −14 です。x の列を定数項で置き換えると Dx = (8)(−1) − (3)(2) = −8 − 6 = −14 となるので、x = Dx/D = −14/−14 = 1 となり、ガウスの消去法の答えと一致します。3×3 の連立方程式では、この同じ行列式のアプローチに 1 つではなく 3 つの 3×3 行列式が必要になり、しかも 3×3 行列式 1 つにつき 6 回の掛け算が必要です。変数が 3 つを超えるとこの手法が実用的でなくなるのは、このためです。

3. ガウスの消去法を使う場面

変数が 3 つ以上ある場合、すべての変数の値が必要な場合、あるいは予測可能な形で規模を拡張できる手法が欲しい場合です——これは行列計算機や工学系ソフトウェアが内部で使っている手法でもあり、多くの場合 LU 分解として実装されています。

4. 逆行列を使う場面

同じ連立方程式(同じ係数行列)を、定数ベクトルだけを変えて繰り返し解く必要がある場合です——逆行列を一度計算しておくほうが、毎回消去をやり直すより効率的です。

変数が 4 つ以上の連立方程式では、ガウスの消去法が事実上唯一の実用的な手計算の方法です——クラメルの公式のような行列式ベースのアプローチは、その規模に達するかなり手前で非現実的になります。

練習問題:ガウスの消去法の理解度を試そう

上で説明した行基本変形の手法を使って、次の 3 つの連立方程式を解き、答えを確認してみましょう。まずは鉛筆と紙で、適用したすべての行基本変形を書き留めながら解き、その後で計算機と照らし合わせてください——この順序こそが、単に最終的な数値を確認するのではなく、実際に力を身につける方法です。3 番目の問題はそれ自体として認識しておく価値のある特殊なケースで、計算の仕方だけでなく、行階段形の結果が何を意味するのかを理解しているかを試す問題になっています。

1. 問題 1(2×2 の連立方程式)

解いてください:3x + 2y = 16 と x − y = 2。解答:拡大係数行列は [3 2 | 16; 1 −1 | 2] です。都合のよいピボットを得るために行を入れ替えてもよいですし、直接消去してもかまいません:R1 → R1 − 3R2 により (3−3, 2+3 | 16−6) = (0, 5 | 10) となるので、y = 2 です。x − y = 2 に代入すると x = 4。解:(x, y) = (4, 2)。検算:3(4)+2(2) = 12+4 = 16 ✓、4−2 = 2 ✓。

2. 問題 2(3×3 の連立方程式)

解いてください:x + y + z = 4、2x − y + z = 8、x + 2y − z = −3。解答:(x, y, z) = (2, −1, 3)。検算:2−1+3 = 4 ✓、2(2)−(−1)+3 = 4+1+3 = 8 ✓、2+2(−1)−3 = 2−2−3 = −3 ✓。

3. 問題 3(特殊なケース——解が無限に存在する)

解いてください:x + y = 2 と 2x + 2y = 4。解答:R2 → R2 − 2R1 により (2−2, 2−2 | 4−4) = (0, 0 | 0) となり、行全体が 0 になります。これは 2 本目の方程式が 1 本目を 2 倍しただけのものであることを意味し、解は単一の (x, y) の組ではなく、直線 x + y = 2 上に無限に存在します。もし代わりに R2 が (0, 0 | 3) に簡約されていたなら、それは解がまったく存在しない矛盾した連立方程式であることを示しています。この 2 つの結果を見分けられることは、きれいな数値の答えを計算できることと同じくらい重要であり、宿題や試験問題を Solvify のステップバイステップ解答ツールで確認するとき、ガウスの消去法計算機が自動的に知らせてくれるのがまさにこの点です。

左側がすべて 0 で右側の定数が 0 でない行(0 = k, k ≠ 0)は、解が存在しないことを意味します。両側ともすべて 0 の行(0 = 0)は、解が無限に存在することを意味します。
タグ:
線形代数数学計算ツール連立方程式

関連記事

関連する数学ソルバー

📸

スマートスキャン解答ツール

連立一次方程式や行列の問題を写真に撮るだけで、ガウスの消去法によるステップバイステップの解答が即座に得られます。

📝

ステップバイステップ解答

拡大係数行列から後退代入、最後の検算まで、すべての行基本変形を明示的に表示します。

🎓

AI 数学チューター

ピボット選択、行階段形、なぜその連立方程式に解が存在しないのかなど、あなたの問題に合わせた回答で追加の質問に答えます。

関連科目

今すぐ宿題ヘルプを入手

数百万人の学生が利用するAI数学ソルバーに参加しましょう。数学の問題の即時解決、ステップバイステップの説明、24時間365日の宿題サポートを受けられます。

iOSおよびAndroidデバイスで利用可能