function Gauss_Seidel(A,b,n,x0,E,N)
k=1
x=zeros(n,1)
k=1
x=zeros(n,1)
fprintf('/n**********start**************/n',k);
for k=1:N
for k=1:N
fprintf('%d/t',k);
%calculate x(1)
x(1)=b(1)/A(1,1);
for j=2:n
x(1)=x(1)-A(1,j)*x0(j)/A(1,1);
end
fprintf('%f/t',x(1));
%calculate x(1)
x(1)=b(1)/A(1,1);
for j=2:n
x(1)=x(1)-A(1,j)*x0(j)/A(1,1);
end
fprintf('%f/t',x(1));
%calculate x(i)
for i=2:n-1
x(i)=b(i)/A(i,i);
for j=1:i-1
x(i)=x(i)-A(i,j)*x(j)/A(i,i);
end
for j=i+1:n
x(i)=x(i)-A(i,j)*x0(j)/A(i,i);
end
fprintf('%f/t',x(i));
end
for i=2:n-1
x(i)=b(i)/A(i,i);
for j=1:i-1
x(i)=x(i)-A(i,j)*x(j)/A(i,i);
end
for j=i+1:n
x(i)=x(i)-A(i,j)*x0(j)/A(i,i);
end
fprintf('%f/t',x(i));
end
% calculate x(n)
x(n)=b(n)/A(n,n);
for j=1:n-1
x(n)=x(n)-A(n,j)*x(j)/A(n,n);
end
fprintf('%f/t',x(n));
if norm(x-x0)<E
break;
else
k=k+1;
x0=x;
end
fprintf('/n');
x(n)=b(n)/A(n,n);
for j=1:n-1
x(n)=x(n)-A(n,j)*x(j)/A(n,n);
end
fprintf('%f/t',x(n));
if norm(x-x0)<E
break;
else
k=k+1;
x0=x;
end
fprintf('/n');
end
fprintf('/n***********end*************/n',k);
x0
x
fprintf('/n***********end*************/n',k);
x0
x