用MATLAB求 x^3-2*x-5=0在[0,3]的解

2024-12-12 21:06:15
推荐回答(1个)
回答1:

不管是用两数值乘积的正负来判断,还是用b-a来判断,效果是一样的。

因为在你的这段程序中,始终保持了b>a。分析如下:

  1. 最开始时,在区间[0,3]内,a=0取最小值,b=3取最大值,且fa对应的是负数,fb对应的是正数;

  2. 找到中点,x=(a+b)/2,并求出fx,当fx为正时,说明方程的根在[a,x]中间,所以,要令b=x;
    若fx为负,说明方程的根在[x,b]中间,那就要令a=x;

  3. 由第2步可知,始终都是b>a,当b与a越来越接近的时候,既可以认为(a+b)/2就是方程的根。

所以用b-a的差值做收敛判据是可以的。