Gauss Seidel
Gauss Seidel
Gauss Seidel
% GAUSS-SEIDAL APPROACH.
% FOR THE CODE TO WORK, THE INPUT MATRIX 'a' SHOULD SATISFY FOLLOWING
% CONDITIONS:
clc
clear
%--------------------------------------------------------------------------
% INPUTS
%a=input('Enter Matrix starting from 1st row to 1st column')
% -------------------------INPUTS -----------------------------------------
a = [3.5 0.5 1; 2 -7 -1; -2 5 1]
n = length(a);
b = [1;2;1];
stopcrit=0.00001; % STOPPING CRITERION
divcrit=10000; % STOPPING IN CASE OF DIVERGENCE
%--------------------------------------------------------------------------
if fail==1
disp('MATRIX A IS NOT DIAGONALLY DOMINANT, CONVERGENCE CONDITIONS ARE NOT
SATISFIED')
disp('CONVERGENCE OF RESULTS CANNOT BE GUARENTEED')
exception=input('Press 1 to continue, 0 to abort: ')
end
if exception ==1
%----------INTRODUCING INITIAL VALUES-------------------------------
for i = 1:n
xp(i)=1;
xn(i)=1;
end
%-----------------BASIC ITERATION CODE-------------------------------
while (maxerr > stopcrit)&& (maxerr < 1000)
count = 1 + count;
for i=1:n
xpp = b(i);
for j=1:n
if j~=i
xpp = xpp-a(i,j).*xp(j);
end
end
xn(i)=xpp/a(i,i);
err(i)=abs(xp(i)-xn(i));
xp(i)=xn(i);
end
maxerr = max(err);
end
count
maxerr
xn
end