按这张图上的代码写的,测试结果除了迭代次数k=8之外别的都和图上一样,是哪里出问题了?
function[x,k,index]=Jacobi(A,b,ep,it_max)
%求解线性方程组的Jacobi迭代法
%x为方程组的解, k为迭代次数, index=0表示迭代失败, index=1表示迭代成功
%A为方程组系数矩阵;b为方程组右端项;ep为精度要求,缺省值为1e-5;it_max为最大迭代次数,缺省值为100
n=size(A,1);
if nargin<4
it_max=100;
end
if nargin<3
ep=1e-5;
end
k=0;x=zeros(n,1);y=zeros(n,1);index=1;
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10||k==it_max
index=0;return;
end
y(i)=y(i)/A(i,i);
end
k=k+1;
if norm(y-x,inf)<=ep
break;
end
x=y;
end