二分法求函数的零点
- 总时间限制:
- 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 }