你好,我写这个是为了用牛顿法确定一个根。该算法有效。我还尝试实施收敛 EOC 的实验顺序。它也有效,但我得到的结果是牛顿法的收敛阶是 1,而实际上它是 2。
function [x,y,eoc,k]=newnew(f,df,x0,xe,eps,kmax)
x = x0;
y = feval(f,x);
for m=1:kmax
z = -y/feval(df,x);
x = x + z;
y = feval(f,x);
k = m;
for n=m
Ek=abs(x-xe);
end
for n=m+1
Ekp=abs(x-xe);
end
eoc=log(Ek)/log(Ekp);
if abs(y)<eps
return
end
end
disp('no convergence');
end
怎么了?