Matlab實現——Jacobi Iteration and Gauss-Seidel Iteration

來源:互聯網
上載者:User

 

Use Jacobi Iteration and Gauss-Seidel Iteration to solve the following linear system with several different initial guesses for p.

x+z=2

-x+y=0

x+2y-3z=0 

下面是這兩個程式對比:


%Program 3.4 (Jacobi Iteration)function X=jacobi (A, B, P, delta, max1)% Input  - A is an N x N nonsingular matrix%        - B is an N x 1 matrix%        - P is an N x 1 matrix; the initial guess%         - delta is the tolerance for P%         - max1 is the maximum number of iterations% Output - X is an N x 1 matrix: the jacobi approximation to%           the solution of AX = BN = length(B);for k=1:max1   for j=1:N      X(j)=(B(j)-A(j, [1:j-1, j+1:N])*P([1:j-1, j+1:N]))/A(j, j);   end   err=abs(norm(X'-P));   relerr=err/(norm(X)+eps);   P=X' ;   if (err<delta)|(relerr<delta)      break   endendX=X' ;

 

%Program 3.5 (Gauss-Seidel Iteration)function X=gseid(A,B,P,delta, max1)% Input  - A is an N x N nonsingular matrix%        - B is an N x 1 matrix%        - P is an N x 1 matrix; the initial guess%    - delta is the tolerance for P%    - max1 is the maximum number of iterations% Output - X is an N x 1 matrix: the gauss-seidel approximation%           to the solution of AX = BN = length(B);for k=1:max1   for j=1:N      if j==1        X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1);      elseif j==N         X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);      else                 %X contains the kth approximations and P the (k-1)st        X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)'-A(j,j+1:N)*P(j+1:N))/A(j,j);      end   enderr=abs(norm(X'-P));   relerr=err/(norm(X)+eps);   P=X' ;   if (err<delta)|(relerr<delta)       break   endend X=X' ;

 

對於同一個初時狀態:

Utitled3.m

A=[1,0,1;    -1,1,0;    1,2,-3;];B=[2;0;0;];P=[1;2;3;];delta=10e-15;max1=200;X=jacobi (A, B, P, delta, max1)

啟動並執行結果顯示:

Jacobi Iteration 收斂,而Gauss-Seidel Iteration發散!

事實上,對P=[x0;y0;z0=1;]Gauss-Seidel Iteration收斂。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.