使用二等分法来查找根,我在使代码返回根后就期望这样做,但是不是,我也不知道为什么。
想要返回我给定间隔的根。
这是在Octave中,我根据推荐的书完成了该方法的全部代码。 结果不是预期的。
当代表我正在使用的函数的图像的变量为零时,当变量= 0时,if条件未返回根。
我也为此方法基于youtube视频制作了其他脚本,并且效果很好,并且每次迭代都提供接近根的值。这也让我感到奇怪,为什么我不给。
tol=input('insert the tolerance')
a=input('left interval: ');
b=input('rigth interval: ');
Niter=input('iteration: ');
i=1;
FA=f(a);
while i<=Niter
p=a+(b-a)/2;
FP=f(p);
if FP=0 or (b-a)/2<tol
root=p;
break
endif
i=i+1;
if FA*FP>0
a=p;
FA=FP;
else b=p;
break
endif
endwhile
In the if condition when FP=0 or (b-a)/2<2 i expect to have a root if the function actual has. (The function i'm using has, it's trigonometric function)