描述
有函数: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 <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
double sum(double x) {
return pow(x, 5) - pow(x, 4) * 15 + pow(x, 3) * 85 - pow(x, 2) * 225 + 274 * x - 121;
}
double Binary(double a1, double b1) {
double c, t = 1e-7, m;
while (fabs(b1 - a1) > t) {//保证精度在10的7次方
c = (a1 + b1) / 2;
m = sum(c);
if (fabs(m) < t) {//当m的精度比10的7次方小时直接返回
return c;
}
if (m < 0) {
b1 = c;
}
else {
a1 = c;
}
}
return a1;//此处返回a1或者b1,二者十分接近
//1.849016
}
int main()
{
double a = 1.5;
double b = 2.4;
double c = Binary(a, b);
cout << fixed << setprecision(6) << c;
return 0;
}