当满足条件时,二等分并不会恢复原状

时间:2019-05-11 19:29:22

标签: matlab octave

使用二等分法来查找根,我在使代码返回根后就期望这样做,但是不是,我也不知道为什么。

想要返回我给定间隔的根。

这是在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)

0 个答案:

没有答案