線形方程式の反復解法 - ガウス - 詰めル反復法

  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

  

おすすめ

転載: www.cnblogs.com/guliangt/p/12119337.html