Function [x,iter]=gs(A,b,tol)
D=diag(diag(A));
L=D-tril(A);
U=D-triu(A);
x=zeros(size(b)); %从x=[0;0…]T开始
for iter=1:500
x=(D-L)\(b+U*x); %此句换为x=(D)\(b+L*x+U*x);即为Jacobi迭代
error=norm(b-A*x)/norm(b);
if(error<tol)
break;
end
end
主函数(调用程序)
A=[2,-1,0;-1,3,-1;0,-1,2];
b=[1;8;-5];
tol=1e-4;
[x,iter]=gs(A,b,tol)