用二分法求解根

#include<stdio.h>
#include<math.h>

double func(double x);
int main(void){
    double x0;
    double x1=-10;
    double x2=10;
    double fx1,fx2,fx0;

    fx1=func(x1);
    fx2=func(x2);



   do{

    x0=(x1+x2)/2;
    fx0=func(x0);

    if(fx1*fx0<0){
        x2=x0;
        fx2=fx0;
    }
    else{
        x1=x0;
        fx1=fx0;
    }

   }while(fabs(fx0)>1e-5);

    printf("the root is %lf",x0);
}

double func(double x){
    return x*((2*x-4)*x+3)-6;
}


posted @ 2024-04-25 11:47  zhongta  阅读(33)  评论(0)    收藏  举报