1.コード
%%ガウス - 詰めル反復法 %%線形方程式M * X = B、Mは、イプシロン制御精度は、X0は初期解ベクトルであり、正方行列であります 機能GSIM = Gauss_Seidel_iterative_method(M、B、X0、イプシロン) [M、N] =サイズ(M)。 D = DIAG(M)。L =ゼロ(M、N)。Uは、ゼロ(M、N)を=。D =ゼロ(M、N)。 UB = 100; X =ゼロ(M、UB)、X(:、1)= X0; X_delta = X; X_end =ゼロ(M、1); k_end = 0; E =フロア(ABS(ログ(イプシロン)) ); M:I = 1のための J = 1:nの I> jの場合 L(i、j)は= -M(I、J)。 I <J ELSEIF U(I、J)= -M(I、J)。 私== jのELSEIF D(i、j)は= D(I)。 終わり 終わり 終わり B =(DL)\ U。 F =(DL)\ B。 UB-1:K = 1 X(:、K + 1)= B * X(:、K)+ F。 X_delta(:、K)= X(:、K + 1)-X(:、k)は、 デルタ=ノルム(X_delta(:、k)は、2)。 デルタの場合<イプシロン ブレーク 終わり 終わり DISP(「溶液及び繰り返し回数の反復があります:」)。 K GSIM = [X(:、k)は ']。 終わり
2.例
すべてクリア CLC 私は1 =用:8 8:J = 1のために 私== jの場合 M(I、J)= 2.1。 J == 1 - 私のelseif M(I、J)= 1; Jのelseif - I == 1 M(i、j)は= -1。 そうしないと M(i、j)は= 0; 終わり 終わり 終わり B = [1 2 3 4 4 3 2 1] '。 X0 = [1 1 1 1 1 1 1 1] '。 イプシロン= 1-4。 S = Gauss_Seidel_iterative_method(M、B、X0、イプシロン) M \ B