首页 > 代码库 > 二分求函数零点

二分求函数零点

二分法求函数的零点

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

有函数:

f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121

已知 f(1.5) > 0 , f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5,2.4] 有且只有一个根,请用二分法求出该根。

输入
无。
输出
该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。
样例输入
样例输出
不提供
‘四舍五入’
【代码】
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cmath>
 5 using namespace std;
 6 double f(double);
 7 int main()
 8 {
 9     double l=1.5,r=2.4,mid;
10     while(r-l>=1e-7)//1*10的7次方 
11     {
12          mid=l+(r-l)/2;
13         if(f(l)*f(mid)<0)r=mid;//零点在左区间 
14         else
15         l=mid;//否则零点位置缩小在右区间 
16     }
17     printf("%.6lf",mid+0.0000005);//精确到后六位 
18 }
19 double f(double x)
20 {
21     double ans;
22     ans=pow(x,5)-15*pow(x,4)+85*pow(x,3)-225*pow(x,2)+274*x-121;
23     return ans;
24 }

 

二分求函数零点