算法题,单调函数求零点(简单的二分法)
参考回答:
#include <iostream>
#include <cstdio>
using namespace std;
double f(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()
{ double x=1.5,y=2.4; //边界条件
while(y-x>=0.0000001){ //保留到6位小数 计算到7位
double t=(x+y)/2; //二分法
if(f(x)*f(t)<=0) y=t; //解 (x,t]
else x=t; //解 (t,y)
}
printf("%.6f\n",x);
return 0;
}