C语言编程:用二分法求解X^3+1.1*X^2+0.9*X-1.4=0


越快越好!
此法是旋截法:
#include <math.h>
//定义f函数
float f(float x)
{
float y;
y=((X+1.1)*X+0.9)*X-1.4;
return(y);
}
//定义xpoint函数,求出玄与X轴的交点

float xpoint(float x,float y)
{
float y;
y= (x1*f(x2)-x2*f(x1))/慎岁拍(f(x2)-f(x1));
return(y);

}
//定义root函数,雀枣求近似根
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{
x=xpoint(x1,x2);
y=f(x);
if(y*y1>0)//f(x)与f(x1)同符号
{
y1=y;
x1=x;
}
else x2=x;

}while(fabs(y)>=0.0001);
return(x);

}
//主函数
main()
{
float x1,x2,f1,f2,x;
do
{
printf("宽羡input x1,x2:\n");
scanf("%f,%f",&x1,&x2);
f1=f(x1);
f2=f(x2);

}while(f1*f2>=0);
x=root(x1,x2);
printf("求的值为:%8.4f",x);
}
//XXX+1.1*XX+0.9X-1.4=0
//当X为1时岩纳唤,发现左式粗凯较大,所以X<1
//当X为0时,发现左式较小,所以X>0
#include<stdio.h>
#include<math.h>
void main(){
double M=1,X=1,l;
while(l=pow(X,3)+1.1*pow(X,2)+0.9*X){
if(l<1.400001&&l>1.399999)break;
M/=2;
if(l>茄纤1.4){
X-=M;
}else{
X+=M;
}
}printf("%lf %lf",X,pow(X,3)+1.1*pow(X,2)+0.9*X);
}
啥叫二分法来这?