ガウス・ザイデル法は、任意に選択された精度の線形代数方程式のシステムに近似解を見つけるための反復手順です。この方法は、対角要素にゼロ以外の要素がある正方行列に適用され、行列が対角的に支配的である場合、収束が保証されます。
カールフリードリヒガウス(1777-1855)によって作成されました。彼は1823年に生徒の1人に私的なデモを行いました。後に1874年にフィリップルートヴィヒフォンザイデル(1821-1896)によって正式に発行されたため、この名前は両方の数学者の。
図1. Gauss-Seidel法は、高速に収束して連立方程式の解を取得します。出典:F. Zapata。
この方法を完全に理解するには、各行の対角要素の絶対値がその同じ行の他の要素の絶対値の合計以上である場合に、行列が対角的に支配的であることを知る必要があります。
数学的には次のように表現されます:
簡単なケースで説明
ガウスザイデル法の構成要素を説明するために、XとYの値が以下に示す線形方程式の2×2系で見つかる単純なケースを取り上げます。
5X + 2Y = 1
X-4Y = 0
従うべき手順
1-そもそも、収束が安全かどうかを判断する必要があります。最初の行では最初の係数が最初の行の他の係数よりも絶対値が高いため、実際には、これは対角線的に支配的なシステムであることがすぐにわかります。
-5->-2-
同様に、2行目の2番目の係数も斜めに支配的です。
--4->-1-
2-変数XとYがクリアされます。
X =(1-2Y)/ 5
Y = X / 4
3-「シード」と呼ばれる任意の初期値が配置されます:Xo = 1、I = 2。
4-反復が始まります。最初の近似X1、Y1を取得するために、シードがステップ2の最初の方程式に代入され、結果がステップ2の2番目の方程式に代入されます。
X1 =(1-2 I)/ 5 =(1-2×2)/ 5 = -3/5
Y1 = X1 / 4 =(-3/5)/ 4 = -3/20
5-同様の方法で、連立方程式の解の2番目の近似を取得します。
X2 =(1-2 Y1)/ 5 =(1-2x(-3/20))/ 5 = 13/50
Y2 = X2 / 4 =(13/50)/ 4 = 13/200
6- 3回目の繰り返し:
X3 =(1-2 Y2)/ 5 =(1-2(13/200))/ 5 = 87/500
Y3 = X3 / 4 =(87/500)/ 4 = 87/2000
7-この例示的なケースの最後の反復としての4番目の反復:
X4 =(1-2 Y3)/ 5 =(1-2(87/2000))/ 5 = 913/5000
Y4 = X4 / 4 =(913/5000)/ 4 = 913/20000
これらの値は、他の解決方法で見つかったソリューションと非常によく一致しています。読者はオンラインの数学プログラムの助けを借りてそれをすばやく確認できます。
メソッドの分析
ご覧のように、Gauss-Seidel法では、同じステップで前の変数について得られた近似値を、次の変数に代入する必要があります。これは、Jacobi法などの各ステップが前のステージの近似を必要とする他の反復法とは異なります。
Gauss-Seidel法は並列手順ではありませんが、Gauss-Jordan方法は並列手順です。ガウスザイデル法の収束がヨルダン法よりも少ないステップで高速になるのもこのためです。
対角的に支配的な行列条件に関しては、これは常に満たされるわけではありません。ただし、ほとんどの場合、条件が満たされるには、元のシステムから行を交換するだけで十分です。さらに、対角支配条件が満たされない場合でも、この方法はほとんど常に収束します。
ガウスザイデル法の4回の反復によって得られた前の結果は、10進数形式で記述できます。
X4 = 0.1826
Y4 = 0.04565
提案された方程式系の正確な解は、次のとおりです。
X = 2/11 = 0.1818
Y = 1/22 = 0.04545。
したがって、わずか4回の反復で、1000分の1の精度(0.001)で結果が得られます。
図1は、連続する反復がどのようにして正確な解に急速に収束するかを示しています。
用途
ガウスザイデル法は、2×2の連立線形方程式のみに限定されません。前の手順を一般化して、n個の未知数を持つn方程式の線形システムを解くことができます。これは、次のような行列で表されます。
A X = b
ここで、Aはnxn行列であり、Xは計算されるn変数のベクトルnコンポーネントです。そしてbは独立した項の値を含むベクトルです。
実例となるケースでnxnシステムに適用される反復のシーケンスを一般化するには、そこから変数Xiを計算する必要があるため、次の式が適用されます。
この方程式では:
-kは、反復kで取得された値のインデックスです。
-k + 1は、以下の新しい値を示します。
最終的な反復回数は、反復k + 1で取得された値が直前に取得された値と、正確に望ましい精度である量εだけ異なる場合に決定されます。
ガウスザイデル法の例
-例1
近似解のベクトルを計算することを可能にする一般的なアルゴリズムを書くXの係数A、独立した用語のベクトルの行列が与えられると、NXN方程式の線形システムをB、反復の数(I TER)と初期値または「シード「ベクトルXの。
解決
アルゴリズムは2つの「To」サイクルで構成されます。1つは反復数用、もう1つは変数数用です。次のようになります。
k For
私のために∊
X:=(1 / A)*(b-∑ j = 1 n(A * X)+ A * X)
-例2
WindowsおよびAndroidで利用できる無料で自由に使用できる数学ソフトウェアSMath Studioのアプリケーションを使用して、以前のアルゴリズムの動作を確認します。例として、Gauss-Seidel法の説明に役立つ2×2行列の場合を考えます。
解決
図2. SMath Studioソフトウェアを使用した2 x 2の例の連立方程式の解。出典:F. Zapata。
-例3
Gauss-Seidelアルゴリズムを次の3×3の連立方程式に適用します。これは、以前に対角線の係数が支配的な(つまり、同じ行):
9 X1 + 2 X2-X3 = -2
7 X1 + 8 X2 + 5 X3 = 3
3 X1 + 4 X2-10 X3 = 6
ヌルベクトルをシードとして使用し、5つの反復を検討します。結果についてコメントします。
解決
図3.計算された例3の連立方程式の解、SMath Studioを使用。出典:F. Zapata。
同じシステムで5回ではなく10回の反復を使用すると、次の結果が得られます。X1 = -0.485; X2 = 1.0123; X3 = -0.3406
これは、5反復で小数点以下3桁の精度を得るのに十分であり、メソッドがすぐに解に収束することを示しています。
-例4
上記のGauss-Seidelアルゴリズムを使用して、以下の4×4連立方程式の解を求めます。
10 x1-x2 + 2 x3 + 0 x4 = 6
-1 x1 + 11 x2-1 x3 + 3 x4 = 25
2 x1-1 x2 + 10 x3-1 x4 = -11
0 x1 + 3 x2-1 x3 + 8 x4 = 15
メソッドを開始するには、このシードを利用します。
x1 = 0、x2 = 0、x3 = 0およびx4 = 0
10回の反復を検討し、反復数11と比較して、結果の誤差を推定します。
解決
図4. SMath Studioを使用した、解決済みの例4の連立方程式の解。出典:F. Zapata。
次の反復(番号11)と比較すると、結果は同じです。2つの反復間の最大の違いは2×10 -8のオーダーです。これは、表示されるソリューションの精度が小数点以下7桁であることを意味します。
参考文献
- 反復解法。ガウスザイデル。回復:cimat.mx
- 数値法。ガウスザイデル。から回復:test.cua.uam.mx
- 数値:Gauss-Seidel法。回収元:aprendeenlinea.udea.edu.co
- ウィキペディア。ガウスザイデル法。から回復:en。wikipedia.com
- ウィキペディア。ガウスザイデル法。回復元:es.wikipedia.com