Advertisement
Guest User

Untitled

a guest
Oct 24th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 0.52 KB | None | 0 0
  1. function [X, xStarDiff] = GaussSeidel (A, b, x0)
  2.   s = length(b);
  3.   X(1:s, 1) = x0;
  4.   i = 1;
  5.   do
  6.     for j=1:s
  7.       if j==1
  8.         Y(1) = (b(1)-A(1,2:s)*x0(2:s))/A(1,1);
  9.       elseif j == s
  10.         Y(s) = (b(s)-A(s,1:s-1)*(Y(1:s-1))')/A(s,s);
  11.       else
  12.         Y(j) = (b(j)-A(j, 1:j-1)*(Y(1:j-1))' -A(j, j+1:s)*x0(j+1:s))/A(j,j);
  13.       endif
  14.     endfor
  15.     x0 = Y';
  16.     X(1:s, i+1) = x0;
  17.     i = i + 1;
  18.   until (norm(X(:,end-1)-X(:,end),2)<10^-6)
  19.  
  20.   xStarDiff = norm((A\b)-(X(:,end)),2);
  21.  
  22. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement