二分法失败并导致无限循环

时间:2018-02-26 10:37:12

标签: matlab numerical-methods bisection

我试图找到等式g(x)=exp(2x)+3x-4的根。我必须使用MATLAB中的二分法进行此操作。

  • 初始间隔为(0,2)
  • 所需的准确度为1e-8

我在MATLAB中编写了一些代码,然而,我得到了错误的答案并且它不会停止计算,这似乎是一个无限循环。

首先,这是我的代码:

g = @(x) (exp(2*x)+3-4);    
xl = input('Enter the first approximation xl:');    
xu - input('Enter the first approximation xu:');    
acc = input('Enter the value of accuracy:');    
while ((g(xl)*g(xu)) > 0)    
    xl = input('Enter the value of first approximation xl:');
    xu = input ('Enter the value of first approximation xu:');    
end    
while (abs(xu-xl)>acc)    
     xm = (xl-xu)/2    
     if (g(xl)*g(xm)<0)    
        xu = xm;      
    else    
        xl = xm;    
    end    
end

现在MATLAB给了我:xm = -2,并继续给我这个价值。

如何获得xm的良好近似值?我知道它应该在0.5左右。

0 个答案:

没有答案