题目描述
有函数:f(x) = x5 − 15x4 + 85x3 − 225x2 + 274x − 121
已知 f(1.5) > 0, f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5, 2.4] 有且只有一个根,请用二分法求出该根。
输入格式
无
输出格式
该方程在区间 [1.5, 2.4] 中的根,要求四舍五入到小数点后 6 位。
输入样例
无
输出样例
无
题解
实数二分:
#include <cstdio>
using namespace std;
double l = 1.5, r = 2.4;
const double eps = 1e-7;
double check(double x)
{
return x*x*x*x*x - 15*x*x*x*x + 85*x*x*x - 225*x*x + 274*x - 121;
}
int main()
{
while(r - l > eps)
{
double mid = (l + r) / 2;
if(check(mid) < 0) r = mid;
else l = mid;
}
printf("%.6lf\n", l);
return 0;
}