/*搜索方程f(x)=x*exp(x)-1=0,在[0,1]内的一个实根所在的小区间*/
#include//逐步扫描法,搜索解区间
#include
double fun(double x)//函数
{
double f,e=2.7183;
f=x*pow(e,x)-1;
return f;
}
void main()
{
double a,b;
double h;
double s;
int flag;
cout<
cout<
//1.
cin>>a>>b>>h;//a=0,b=1,h=0.1
//2.
flag=1;
for(;;)
{
//3.
s=fun(a);
//4.
if(a+h<=b&&s*fun(a+h)>0)
{
a=a+h;
}
else break;
}
//5.
if(a+h>b)
{
flag=0;
}
else
{
b=a+h;
}
//6.
if(flag==1)
{
cout<
cout<
}
else
{
cout<
}
}
/*
1.输入a,b,h
2.1->flag
3.f(a)->s
4.a+h<=b和s*f(a+h)>0?
是,a+h->a,转3.
否,转5.
5.a+h>b?
是,0->flag,转6.
否,a+h->b,转6.
6.flag=1?
是,输出a,b, stop
否,输出flag, stop
*/