1241.二分法求函数零点 | 浮点二分

发布时间 2023-04-22 13:20:03作者: ShinnyBlue

1241 二分法求函数的零点

题目来源

信息学奥赛一本通

题目描述

\(有函数: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>
using namespace std;
double fun(double x){
	return pow(x,5)-15*pow(x,4)+85*pow(x,3)-225*pow(x,2)+274*x-121;
}
int main(){
	
	double l=1.5,r=2.4;
	while (r-l>1e-8)
	{
		double mid=(l+r)/2;
		if(fun(mid)<0)r=mid;
		else if(fun(mid)>0) l=mid;
		else if(fun(mid)==0){
			printf("%.6lf",mid);
			return 0;
		}
	}
	printf("%.6lf",l);
	

	return 0;
}