ガウス消去法とは|定義・手順・行列の基本操作とガウス-ジョルダン法解説

ガウス消去法の定義・手順・基本行操作からガウス–ジョルダン法まで、図解と例題でわかりやすく丁寧に解説する入門ガイド。

著者: Leandro Alegsa

数学では、ガウス消去行削減とも呼ばれる)は、一次方程式の系を解くために使用される方法である。この方法について書いた有名なドイツの数学者カール・フリードリッヒ・ガウスにちなんで命名されましたが、この方法を発明したわけではありませんでした。

ガウス除去を実行するには,線形方程式系の項の係数を用いて,拡張行列と呼ばれる種類の行列を作成します.次に,この行列を単純化するために,初歩的な行操作が用いられます.使用される行操作には、以下の3種類があります。

タイプ1:1つの行を別の行に切り替える

タイプ2: 行に0以外の数を乗算する。

タイプ3:別の行から1つの行を足したり引いたりすること。

ガウス除去の目的は,行列を行-列形式にすることです.行列が行-列形式である場合、左から右へ読むと、各行はその上の行よりも少なくとも 1 つ多くのゼロ項から始まることを意味します。ガウシアン消去の定義の中には,行列の結果が縮小された行エセロン形式でなければならないというものがあります.これは,行列が行-エヘロン形式であり,各行の唯一の非ゼロ項が 1 であることを意味します. 縮小された行-エヘロン行列の結果を生成するガウス除去は,ガウス-ヨルダン除去と呼ばれることもあります.

定義と目的の補足

ガウス消去法(Gaussian elimination)は、線形方程式系を解くために拡張行列(係数行列に定数項を付けた行列)に対して基本行操作を行い、行階段形(行エシェロン形、row-echelon form)あるいは縮約された行階段形(reduced row-echelon form)に変形する手続きです。最終的に得られる形から

  • 一意解(unique solution)、
  • 無限解(free variables を持つ場合)、
  • 矛盾(解なし)
のいずれかを判定・求解できます。行基本操作は解の集合を変えません(逆行列が存在する操作のみを行うため)。

手順(基本的なアルゴリズム)

代表的な流れは次の通りです。

  1. 係数行列と定数項から拡張行列を作る。
  2. 左上から右下へ順にピボット(先頭の非ゼロ要素)を選び、ピボットの位置がゼロであれば行交換(タイプ1)などで非ゼロ要素を持つ行を持ってくる。
  3. ピボット行をそのピボットが1になるように定数倍(タイプ2)して正規化することもできる(ただし後述の簡略化手順では最後に行う場合もある)。
  4. ピボットの下の行に対して、ピボット行の適切な倍数を引く(タイプ3)ことでその列の下側をゼロにする(前進消去/forward elimination)。
  5. 全ての列について前進消去が終わったら、行階段形が得られる。必要に応じて後退代入(back substitution)を用いて解を求める。あるいはさらに上三角もゼロにして縮約された行階段形にすることで直接解が読み取れる(これがガウス-ジョルダン法)。

行基本操作のまとめ(復習)

  • 行の交換(タイプ1):任意の2行を入れ替える。ピボットがゼロのときに用いる。
  • 行のスカラー倍(タイプ2):行全体を0でない定数で掛ける。ピボットを1にする際に使う。
  • 行の加算(タイプ3):ある行の定数倍を別の行に足す(引く)。消去操作の本体。

ガウス-ジョルダン法(Gauss–Jordan)との違い

ガウス消去は一般に前進消去と後退代入を組み合わせて解を求めますが、ガウス-ジョルダン法はさらに進めて各ピボット列の上下すべてを消去し、縮約された行階段形(reduced row-echelon form)を直接得ます。これにより、後退代入を行わずとも解が各行に一意に現れるため、未知数の表現が読み取りやすくなります。ただし計算量はやや増えます。

ピボット選択と数値安定性

実際の数値計算では、ピボットに小さな値(ほぼゼロ)を選ぶと丸め誤差の問題が発生します。そのため

  • 部分ピボット(partial pivoting):現在の列で絶対値が最大の要素をピボットとして行を交換する。
  • 完全ピボット(full pivoting):残りの行列領域全体で絶対値最大の要素を選び、行と列の両方を交換する(実装はやや複雑)。

部分ピボットは多くの用途で十分であり、数値的に安定した解を与えることが多いです。

解の判定(ランクと整合性)

拡張行列の行階段形から次が判定できます。

  • 係数行列のランクが拡張行列のランクと等しく、かつランクが未知数の数に等しい → 一意解。
  • 係数行列のランクが拡張行列のランクと等しいが、ランク < 未知数の数 → 無限に多くの解(自由変数あり)。
  • 係数行列のランク < 拡張行列のランク → 矛盾があり解なし。

計算量と応用

n×n 行列の連立一次方程式をガウス消去で解く場合、一般に計算量は O(n^3)(浮動小数点演算回数のオーダ)です。実用上以下のような応用があります。

  • 線形方程式の解法(工学・物理・統計など)
  • 行列の逆行列計算(拡張行列として単位行列を付けて消去する)
  • 行列式の計算(行交換の符号と対角要素の積から求められる)
  • 連立差分方程式や最小二乗問題への応用(正規方程式を解くなど)

簡単な例

次の連立方程式を考える:

x + 2y = 5
2x - y = 1

拡張行列は

[ [1, 2 | 5], [2, -1 | 1] ]

前進消去で第1列のピボットを使い、第2行から2倍の第1行を引く:

第1行: [1, 2 | 5]
第2行: [0, -5 | -9]

第2行を -1/5 倍して正規化すると第2行は [0, 1 | 9/5]。後退代入で第1行から2倍の第2行を引くと 第1行は [1, 0 | 1/5]。よって解は x = 1/5, y = 9/5。

注意点とまとめ

  • ガウス消去は理論的に単純で強力だが、数値計算ではピボット選択や丸め誤差に注意する必要がある。
  • 行基本操作のいずれも解集合を変えないため、操作を正しく行えば解の検出やランクの判定が確実にできる。
  • 大規模問題では直接法(ガウス消去)に代わり、反復法(共役勾配法など)が使われることも多い。

この一次方程式の系の答えを見つけることが目的だとしましょう。

2 x + y - z = 8 ( R 1 ) - 3 x - y + 2 z = - 11 ( R 2 ) - 2 x + y + 2 z = - 3 ( R 3 ) {displaystyle {b\begin{alignedat}{7}2x&&&2}2x&&&2z&2\qquad (R_{1})\\-3x&&\;-\;&&y&&\;+\;&&2z&&\;=\;&&-11&\qquad (R_{2})\\-2x&&\;+\;&&y&&\;+\;&&2z&&\;=\;&&-3&\qquad (R_{3})\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+\;&&y&&\;-\;&&z&&\;=\;&&8&\qquad (R_{1})\\-3x&&\;-\;&&y&&\;+\;&&2z&&\;=\;&&-11&\qquad (R_{2})\\-2x&&\;+\;&&y&&\;+\;&&2z&&\;=\;&&-3&\qquad (R_{3})\end{alignedat}}}

まず、システムを拡張行列に変換する必要があります。拡張行列では,各一次方程式が行になります.拡張行列の一方の面では,一次方程式の各項の係数が行列内の数値になります.拡張行列の反対側には、各一次方程式が等しくなる定数項があります。この系では,拡張行列は次のようになります.

2 1 - 1 8 - 3 - 1 2 - 11 - 2 1 2 - 3 ] {Greathe! {\displaystyle \left[{\begin{array}{ccc|c}2&1&-1&8\\-3&-1&2&-11\\-2&1&2&-3\end{array}}\right]}

そして,拡張行列を単純化するために,拡張行列に対して行演算を行います.下の表は,方程式系と拡張行列に対する行の縮小処理を示しています.

方程式系

行操作

拡張行列

2 x + y - z = 8 - 3 x - y + 2 z = - 11 - 2 x + y + 2 z = - 3 {displaystyle {begegin{alignedat}{7}2x&&&2}2x&&&&2}2x&&&&2}2x&&&&2}2x&&&&2}2x&&&2}2x&&&2}2x&&&2}2x&&&&2}2x&&&2}2x&&&2}2x&&&2\\-3x&&\;-\;&&y&&\;+\;&&2z&& \;=\;&&-11&\\-2x&&\;+\;&&y&&\;+\;&&2z&&\;=\;&&-3&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+\;&&y&&\;-\;&&z&&\;=\;&&8&\\-3x&&\;-\;&&y&&\;+\;&&2z&&\;=\;&&-11&\\-2x&&\;+\;&&y&&\;+\;&&2z&&\;=\;&&-3&\end{alignedat}}}

2 1 - 1 8 - 3 - 1 2 - 11 - 2 1 2 - 3 ] {Greathe! {\displaystyle \left[{\begin{array}{ccc|c}2&1&-1&8\\-3&-1&2&-11\\-2&1&2&-3\end{array}}\right]}

2 x + y - z = 8 1 2 y + 1 2 z = 1 2 2 y + z = 5 {Spotographograph}2x&&&&;+&&y&&&&&&\;+&&y&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{\frac {1}{2}}y&&\;+&&\;{\frac {1}{2}}z&&\;=\;&&1&\\&&&& 2y&&\;+&&\;z&&\;=\;&&5&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+&&y&&\;-&&\;z&&\;=\;&&8&\\&&&&{\frac {1}{2}}y&&\;+&&\;{\frac {1}{2}}z&&\;=\;&&1&\\&&&&2y&&\;+&&\;z&&\;=\;&&5&\end{alignedat}}}

R 2 + 3 2 R 1 → R 2 {displaystyle R_{2}+{\frac {3}{2}}R_{1}}rightarrow R_{2}}} {R_{2{\displaystyle R_{2}+{\frac {3}{2}}R_{1}\rightarrow R_{2}}
R 3 + R 1 → R 3 {displaystyle R_{3}+R_{1}rightarrow R_{3}}}\!
{\displaystyle R_{3}+R_{1}\rightarrow R_{3}}

2 1 - 1 8 0 1 / 2 1 / 2 1 / 2 1 0 2 1 5 ] {display style ¶¶left! {\displaystyle \left[{\begin{array}{ccc|c}2&1&-1&8\\0&1/2&1/2&1\\0&2&1&5\end{array}}\right]}

2 x + y - z = 8 1 2 y + 1 2 z = 1 - z = 1 {\displaystyle {begin{alignedat}{7}2x&&&\&&y;+&&&y;&&&&&&\&&&z;&&=;&&&&8&&&&&{\frac {1}{2}}y\;&&+&&\;{\frac {1}{2}}z\;&&=\;&&1&\\&&&&&&&&\;-z\;& &\;=\;&&1&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+&&y\;&&-&&\;z\;&&=\;&&8&\\&&&&{\frac {1}{2}}y\;&&+&&\;{\frac {1}{2}}z\;&&=\;&&1&\\&&&&&&&&\;-z\;&&\;=\;&&1&\end{alignedat}}}

R 3 + - 4 R 2 → R 3 {displaystyle R_{3}+-4R_{2}\rightarrow R_{3}}}。 {\displaystyle R_{3}+-4R_{2}\rightarrow R_{3}}

2 1 - 1 8 0 1 / 2 1 / 2 1 / 2 1 0 - 1 1 ] {Greathe! {\displaystyle \left[{\begin{array}{ccc|c}2&1&-1&8\\0&1/2&1/2&1\\0&0&-1&1\end{array}}\right]}

行列は行列形式になりました。これは三角形の形式とも呼ばれます。

方程式系

行操作

拡張行列

2 x + y = 7 1 2 y = 3 / 2 - z = 1 {\displaystyle {b\begin{alignedat}{7}2x&&\;+&y&y}} &&&&&{\frac {1}{2}}y\;&&&&\;\;&&=\;&&3/2&\\&&&&&&&&\;-z\;&&\;=\;&&1&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+&&y\;&&&&\;\;&&=\;&&7&\\&&&&{\frac {1}{2}}y\;&&&&\;\;&&=\;&&3/2&\\&&&&&&&&\;-z\;&&\;=\;&&1&\end{alignedat}}}

R 2 + 1 2 R 3 → R 2 {displaystyle R_{2}+{\frac {1}{2}}R_{3}}rightarrow R_{2}}} {R_{2}} {R_{3}} {R_{2}} {R_{3}} {R_{3{\displaystyle R_{2}+{\frac {1}{2}}R_{3}\rightarrow R_{2}}
R 1 - R 3 → R 1 {displaystyle R_{1}-R_{3}\rightarrow R_{1}} {R_{1}} {R_{1}} {R_{1}} {R_{3}} {R1
{\displaystyle R_{1}-R_{3}\rightarrow R_{1}}

2 1 0 7 0 1 / 2 0 3 / 2 0 0 0 - 1 1 ] {display style ¶¶left! {\displaystyle \left[{\begin{array}{ccc|c}2&1&0&7\\0&1/2&0&3/2\\0&0&-1&1\end{array}}\right]}

2 x + y = 7 y = 3 z = - 1 {\displaystyle {begegin{alignedat}{7}2x&&&\;+&&y\; &&&&;\;&&=\;7&&&&&&&&&&&y\;&&&&\;\;&&=\;&&3&\\&&&&&&&&\;z\;&&\;=\;&&-1&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}2x&&\;+&&y\;&&&&\;\;&&=\;&&7&\\&&&&y\;&&&&\;\;&&=\;&&3&\\&&&&&&&&\;z\;&&\;=\;&&-1&\end{alignedat}}}

2 R 2 → R 2 {display style 2R_{2}→R 2 {display style 2R_{2} rightarrow R_{2}}}{\displaystyle 2R_{2}\rightarrow R_{2}}
- R 3 → R 3 {displaystyle -R_{3} rightarrow R_{3}}} {displaystyle -R_{3} rightarrow R_{3}}}
{\displaystyle -R_{3}\rightarrow R_{3}}

2 1 1 0 7 0 0 1 0 3 0 0 1 - 1 ] {Greatreathe! {\displaystyle \left[{\begin{array}{ccc|c}2&1&0&7\\0&1&0&3\\0&0&1&-1\end{array}}\right]}

x = 2 y = 3 z = - 1 {\displaystyle {\begin{alignedat}{7}x&&&&;And&\; &&&&\;And&=\;2&&&&&&&y\;&&&&\;\;&&=\;&&3&\\&&&&&&&&\;z\;&&\;=\;&&-1&\end{alignedat}}} {\displaystyle {\begin{alignedat}{7}x&&\;&&\;&&&&\;\;&&=\;&&2&\\&&&&y\;&&&&\;\;&&=\;&&3&\\&&&&&&&&\;z\;&&\;=\;&&-1&\end{alignedat}}}

R 1 - R 2 → R 1 {displaystyle R_{1}-R_{2}\rightarrow R_{1}}}}。{\displaystyle R_{1}-R_{2}\rightarrow R_{1}}
1 2 R 1 → R 1 {displaystyle {\frac {1}{2}R_{1}rightarrow R_{1}}}} R_{1
{\displaystyle {\frac {1}{2}}R_{1}\rightarrow R_{1}}

1 0 0 2 0 1 0 3 0 0 1 - 1 ] {\\ style }left! {\displaystyle \left[{\begin{array}{ccc|c}1&0&0&2\\0&1&0&3\\0&0&1&-1\end{array}}\right]}

行列は縮小された行列の形になりました.この行列を読むと、この方程式系の解は x = 2, y = 3, z = -1 のときに発生することがわかります。

質問と回答

Q: ガウス消去とは何ですか?


A: ガウス消去は数学で線形方程式系を解くのに使われる方法です。

Q: 誰の名前にちなんで付けられたのですか?


A: ドイツの有名な数学者であるカール・フリードリッヒ・ガウスにちなんで名付けられました。

Q: ガウス消去はどのように行われるのですか?


A: ガウス消去は、連立一次方程式の項の係数を用いて、補強行列を作成することで行われます。その後、初歩的な行操作で行列を簡略化します。

Q: ガウス消去で使用される3種類の行操作とは何ですか?


A: ガウス消去で使用される3種類の行演算は以下の通りです: ある行と別の行を入れ替える」「ある行に0でない数を掛ける」「ある行と別の行を足したり引いたりする」です。

Q: ガウス消去の目的は何ですか?


A: ガウス消去の目的は、行列を行エシュロン形式にすることです。

Q: 行エシュロン形式とは何ですか?


A: 行エシュロン形式とは,左から右へ読むと,各行が上の行より少なくとも1つ多い0項から始まることを意味します.

Q: 縮小行エシュロン形式とは何ですか?


A: 行エシュロン形式とは、行列が行エシュロン形式で、各行の非ゼロ項が1だけであることを意味します。行エシュロン形式の行列を縮小した結果を作り出すガウス消去は、ガウス・ジョルダン消去と呼ばれることもあります。


百科事典を検索する
AlegsaOnline.com - 2020 / 2025 - License CC3