我试图找出当我在枫树中运行割线迭代达到一定容差时需要多少次迭代。但是,我收到了一个错误代码,所以如果有人能指出我的代码中的错误所在,我将不胜感激。
亲切的问候。
x0 = 1.22, x1 = 0.8843478306, 容差 1*e-6 > abs(x1-x0) 多少次迭代才能达到容差?
restart;
secant:=proc(f,x0,x1)
local k,x;
x[0]:=x0;
x[1]:=x1;
print(0,x[0]);
print(1,x[1]);
for k from 2 to 1e-6 > abs(x1-x0) do
x[k]:=x[k-1]-f(x[k-1])*(x[k-1]-x[k-2])/(f(x[k-1])-f(x[k-2]));
print(k,x[k]);
end do;
return x;
end proc;
f1:= x -> 3.0*exp(-1.0*x)-(4.1)*x^2;
y := secant(f1, 1.22, 0.8843478306)
Error, (in secant) final value in for loop must be numeric or character