MATLAB二分法求解近似根

 二分法基本思想:

用对分区间的方法,通过判别函数f(x)在每个对分区间中点的符号,逐步将隔根区间缩小,最终求得一个具有相当精确程度的近似根。


二分法具体步骤:

令: 

(1)若,则为方程的根,跳出循环;

(2)若,令

(3)若,令

(4)为新的隔根区间,重复上述过程。

输入左右端点a,b以及精度eps,输出近似根x0及二分次数i。

function [x0,i] = dichotomy(a,b,eps)
a0 = a;
b0 = b;
x0 = (a0+b0)/2;

for i = 1:1000
    if abs((b-a)/(2^(i))) > eps
        if f(a0)*f(x0) < 0
        b0 = x0;
        x0 = (a0+b0)/2;
        elseif f(a0)*f(x0) > 0
        a0 = x0;
        x0 = (a0+b0)/2;
        elseif f(a0)*f(x0) == 0
            break
        end
    else
        break
    end
end

[x0,i]


 

 算例如下:

function y = f(x)
y = x^2-15;
% 函数仅为算例

输入命令dichotomy(-100,100,0.1),得到 -3.7109   9.0000,即精度为0.1的近似根为-3.7109,二分次数为9。进一步提高精度:

dichotomy(-4,-3,10^(-10))

得到-3.8730   32.0000,即此精度下近似根为-3.8730,二分次数为32。


误差估计:

注意二分法步骤中,第一次对分后取了对分后区间中点作为近似根,那么相当于把误差控制在整个区间的四分之一。

对分次数对分后得到近似根误差限
1x_1\tfrac{b-a}{2^2}
2x_2\tfrac{b-a}{2^3}
nx_n\tfrac{b-a}{2^{n+1}}

二分法优缺点:

优点:计算简单,方法可靠,容易估计误差;

缺点:收敛较慢,不能求偶重根,也不能求复根。

  • 12
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值