Вы находитесь на странице: 1из 2

8/1/15 8:55 PM C:\Users\LENOVO\Musi...\SOLVED_GAUSS_SEIDAL_METHOD.

m 1 of 2

% "NUMERICAL METHODS IN COMPUTING LAB"


% AMMAR HASSAN
% 2016-ME-529
% MECHANICAL ENGINEERING DEPARTMENT

function SOLVED_GAUSS_SEIDAL_METHOD
syms x

A = [8 -3 2;4 11 -1;6 3 12]; %input('ENTER THE SQUARE MATRIX : \n')


[n, m] = size(A);
b =[20;33;35;]; %input('ENTER THE RIGHT SIDE MATRIX : \n')
C = -A;
xo = [0;0;0]; %input('ENTER THE VALUE TO START : ')
N = 10;
tol = 0.0000001;
%xold = xo;

for k = 1 : n
C( k , k )=0;
end
for k = 1 : n
C( k , : )= C( k , : ) / A( k , k );
end
for k = 1 : n
d( k , 1 ) = b( k ) / A( k , k );
end
i = 1;
fprintf('----------------------------------------------------------------------------------------------\n')
fprintf(' x1 x2 x3\n')
fprintf('----------------------------------------------------------------------------------------------\n')
while( i <= N )
xold = xo;
x1 = C(1,:) * xold + d(1,1);

xold(1,1)=x1;
x2 = C(2,:)*xold +d(2,1);
xold(2,1)=x2;
x3 = C(3,:)*xold +d(3,1);
xold(3,1)=x3;

%xnew = [x1;x2;x3];
fprintf(' %f %f %f\n',xold)
if abs( xold - xo ) <= tol
x = xold;

disp('GAUSS SEIDAL METHOD CONVERGED');


fprintf('TOTAL ITERATIONS DONE = %g \n',i)
return;
else
xo = xold;

end
8/1/15 8:55 PM C:\Users\LENOVO\Musi...\SOLVED_GAUSS_SEIDAL_METHOD.m 2 of 2

i = i + 1;

end
disp(' Jacobi method did not converge ');
disp(' results after maximum number of iterations ');

end

Вам также может понравиться