有函数:
已知f(1.5)>0,f(2.4)<0 且方程f(x)=0 在区间[1.5,2.4] 有且只有一个根,请用二分法求出该根。 提示:判断函数是否为0,使用表达式 fabs(f(x)) < 1e-7
输入格式:
无。
输出格式:x
该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。。
输入样例:
无
结尾无空行
输出样例:
无
结尾无空行
注释:在math.h里面定义的pow()函数。调用方法为pow(底数,指数); 底数、指数、返回值都是double型的。如计算 9 的3/4次方:y = pow ( 9.0 , 3/4 );
且用二分法
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
double Math_re(double x)
{
return pow(x, 5) - 15*pow(x, 4) + 85*pow(x, 3) - 225*pow(x, 2) + 274*x -121;
}
double Find(double a, double b)
{
double x = (a+b)/2.0;
double res = Math_re(x);
if(fabs(res)<1e-7)
{
printf("%.6f",x);
return 0;
}
if(res>0)
Find(x,b);
if(res<0)
Find(a,x);
}
int main()
{
double re=Find(1.5, 2.4);
//cout<<fixed<<setprecision(6)<<re<<endl;
return 0;
}