二分法求根问题,实在没发现错在哪

#include

#include

int main()
{

double x1,x2,x,y1,y2,y;
x1=10;
x2=-10;
y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
y2=2*x2*x2*x2-4*x2*x2+3*x2-6;
do
{
x=(x1+x2)*0.5;
y=2*x*x*x-4*x*x+3*x-6;
if(y>=0)
x2=x,
x1=x1;
if(y x1=x,x2=x2;
}
while(fabs(x1-x2)>=0.0001);
printf("%f",x2);
return 0;
}
这样输出之后结果是-10,求大神指点,我想知道的是我为什么错,只要纠正就好,谢谢各位大神

1.999969
http://codepad.org/baYUk6pM

 #include<stdio.h>  
#include<math.h>  
int main()
{  
    double x1,x2,x,y1,y2,y;
    x1=10;
    x2=-10;
    y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
    y2=2*x2*x2*x2-4*x2*x2+3*x2-6;
    do
    {
        x=(x1+x2)*0.5;
        y=2*x*x*x-4*x*x+3*x-6;
        if(y>=0)
            x1=x;
        if(y<0)
            x2=x;
    }
    while(fabs(x1-x2)>=0.0001);
    printf("%f",x2);
    return 0;
}

可改过来之后还是不对啊

是求一元二次方程的根?二分法只能求单调性问题,要求抛物线的极值,要用三分法,你可以百度一下三分法求极值