function x1=GaussSeidel(A,b,x0,epcinal)
[m,n]=size(A);
L=zeros(n);U=L;D=L;
for i=1:n
D(i,i)=A(i,i);
for j=i:n
U(min(i,n-1),min(j+1,n))=-A(min(i,n-1),min(j+1,n));
end
for j=1:i
L(min(i+1,n),min(j,n-1))=-A(min(i+1,n),min(j,n-1));
end
end
M=(D-L)\U;
b=(D-L)\b;
x1=M*x0+b;
i=1;
while max(abs(x1-x0))>epcinal
x0=x1;
x1=M*x0+b;
i=i+1;
end
fprintf('结果:\n');disp(x1);
fprintf('迭代次数:');disp(i);