j'ai rédigé un programme de gauss seidel mais malheureseument il y a quelque chose qui ne fonctionne pas et je n'arrive pas a voir ce que c'est. Est ce que vous pouvez m'aider ? merci
function [x,succes] = GaussSeidel(A,b,x0,maxiter,tol )
Eps_cal = 0.001;
a= [-4 1 1 0 0 0 0 0;
2 -4 0 1 0 0 0 0;
1 0 -4 1 1 0 0 0;
0 1 2 -4 0 1 0 0;
0 0 1 0 -4 1 1 0;
0 0 0 1 2 -4 0 1;
0 0 0 0 2 0 -9 1;
0 0 0 0 0 2 2 -9];
b= [-1000;-500;-500;0;-500;0;-2000;-1500];
x =[480;470;440;430;400;390;370;35 0] ;
[m,n] = size(a);
S1 = 0; S2 = 0;
for k=1:8
for i=1
for j=2:n
S2 = a(1,j)*x(j,k);
S2 = S2+ S2;
end
end
coeff=1/a(i,i);
x(i,k) = coeff*(b(i)-S1-S2);
for i = 2:n
for j = 1:i-1
S1 = a(i,j)*x(j,k);
S1 = S1+ S1;
end
for j = (i+1):n
S2 = a(i,j)*x(j,k);
S2 = S2+ S2;
end
coeff=1/a(i,i);
x(i,k) = coeff*(b(i)-S1-S2);
end
end
if norm(x(:,k)-x(:,k-1)) < Eps_cal
break;
end;
x(:,k)
-----