二分法的知识整理和代码的实现

 

数学方面:

  一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。

  解方程即要求f(x)的所有零点。

  先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],

  现在假设f(a)<0,f(b)>0,a<b

  ①如果f[(a+b)/2]=0,该点就是零点,

  如果f[(a+b)/2]<0,则在区间((a+b)/2,b)内有零点,(a+b)/2=>a,从①开始继续使用

  中点函数值判断。

  如果f[(a+b)/2]>0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=>b,从①开始继续使用

  中点函数值判断。

  这样就可以不断接近零点。

  通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。

  给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:

  1 确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ.

  2 求区间(a,b)的中点c.

  3 计算f(c).

  (1) 若f(c)=0,则c就是函数的零点;

  (2) 若f(a)·f(c)<0,则令b=c;

  (3) 若f(c)·f(b)<0,则令a=c.

  4 判断是否达到精确度ξ:即若┃a-b┃<ξ,则得到零点近似值a(或b),否则重复2-4.

  由于计算过程的具体运算复杂,但每一步的方式相同,所以可通过编写程序来运算。

  例:(C语言)

  方程式为:f(x) = 0,示例中f(x) = 1+x-x^3

  使用示例:

  input a b e: 1 2 1e-5

  solution: 1.32472

  源码如下:

例:C++语言[类C编写].

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值