二分法求方程的根

二分法的原理其实还是零点定理的应用。
首先必须要有一个初试区间,而且区间端点的函数值异号,由零点定理可以知道在次区间内至少存在一个零点。然后取区间的中间值,这样就把一个区间分成了两个区间,再运用零点定理判断零点存在与哪个区间中,再在含有零点的区间取中间值,就以这样一次一次的取中间值,判断零点是否存在,当区间两端点的差的绝对值符合精度是即可停止。

//————————————————————
//二分法求近似的方程根
#include <stdio.h>
#include <math.h>

double  funY(double x);
int main(){
    double x1 = -10, x2 = 10;//初试区间[-10,10]
    double x;
    double y1, y2,y;
    y1 = funY(x1);
    y2 = funY(x2);
    while (y1*y2 < 0 && fabs(x2 - x1) >= 1e-6)  {
        x = (x1 + x2) / 2;
        y = funY(x);
        if (y*y1 < 0) {
            x2 = x;
            y2 = y;
        }   
        else if (y*y2 < 0) {
            x1 = x;
            y1 = y;
        }
        else if (y == 0) 
            break;  
        printf("%lf\n", x);
    }

}

double  funY(double x) {
    double y;
    y = 2 * x*x*x - 4 * x*x + 3 * x - 6;
    return y;
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值