当f(x)在区间[a,b]上连续,且f(a)*f(b)<0。根据连续函数的性质可知f(x)=0在[a,b]上至少有一个根。若f(x)在区间[a,b]上单调,可知f(x)=0在[a,b]上有唯一一个根。
假设一个 flag 为正小数, 通过二分迭代法求f(x)=0方程根的简单思路如下:
(1)计算区间 [a,b] 的中点 m=(a+b)/2, 如果m的绝对值小于flag,则我们可以近似的将m看作该方程的零根。如果f(m)的绝对值大于flag,则执行(2)
(2)f(b)*f(m)>0,则 b=m ; 否则f(b)*f(m)<0,则 a=m 。继续执行(1)
注:同理可用f(a)比较
f(a)*f(m)>0,则a=m; 否则f(a)*f(m)<0,b=m
以下是用二分法求2x3-4x2+3*x-6=0 的源码
#include<stdio.h>
#include</