#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;
}
可改过来之后还是不对啊
是求一元二次方程的根?二分法只能求单调性问题,要求抛物线的极值,要用三分法,你可以百度一下三分法求极值