一、二分法
假设有这样一个函数f(x)
函数与x轴有一个交点(也就是f(a)*f(b)<0,a
直接解显然不合适,那么接下来就轮到二分法出场了。
从图中可以看出4
那么我们只需要不断缩小夹板间的距离就能求出较为精确的ξ值了。
首先,我们取隔离区间的中点(a+b)/2,
如图,令e=(a+b)/2,如果f(e)=0,那么e就是我们要找的ξ值,如果f(e)和f(a)同号,那么说明这两点都在ξ的同一边,用e替换掉a,
同理,如果f(e)和f(b)同号,用e替换掉b,这样就实现了对ξ的不断逼近,循环n次后误差小于(1/(2^n))*(b-a)。
二、代码实现
废话不多说,直接上代码
1 double dichotomy(int n, double a, double b, double (*f)(double))
2 {
3 double f_a = (*f)(