问题 : 方程求零点
2017-08-11 09:39
302 查看
题目描述
设函数f(x)是在区间[a,b]内的连续函数,且f(a)f(b)<0, 根据Role定理,f(x)在区间内必存在零点。已知f(x)=x3-x-1, 输入区间端点的值,令精确度为eps=10-5, 判断是否存在零点,如果存在,输出该零点的近似值,否则输出No zero point.
输入
输入包括若干行,表示该区间端点
输出
每行对应每个区间的计算结果,如果根存在,保留5位小数。对于有根区间,如果|f(x*)|<=eps,则x*为零点的近似值。
样例输入
-1 0
0 1
1 1.5
样例输出
No zero point in area(-1.00000,0.00000)
No zero point in area(0.00000,1.00000)
The Zero Point is 1.32472 in area(1.00000,1.50000)
AC代码
设函数f(x)是在区间[a,b]内的连续函数,且f(a)f(b)<0, 根据Role定理,f(x)在区间内必存在零点。已知f(x)=x3-x-1, 输入区间端点的值,令精确度为eps=10-5, 判断是否存在零点,如果存在,输出该零点的近似值,否则输出No zero point.
输入
输入包括若干行,表示该区间端点
输出
每行对应每个区间的计算结果,如果根存在,保留5位小数。对于有根区间,如果|f(x*)|<=eps,则x*为零点的近似值。
样例输入
-1 0
0 1
1 1.5
样例输出
No zero point in area(-1.00000,0.00000)
No zero point in area(0.00000,1.00000)
The Zero Point is 1.32472 in area(1.00000,1.50000)
AC代码
#include <iostream> #include<cstdio> #include<algorithm> using namespace std; const double eps=0.00001; double f(double x){ return (x*x*x-x-1)*1.0; } int main() { double left,right; while(scanf("%lf%lf",&left,&right)!=EOF){ if(f(left)*f(right)>0){ cout<<"No zero point in area"; printf("(%.5f,%.5f)\n",left,right); }else if(f(left)==0){ printf("The Zero Point is %.5f in area(%.5f,%.5f)\n",left,left,right); }else if(f(right)==0){ printf("The Zero Point is %.5f in area(%.5f,%.5f)\n",right,left,right); }else{ double _mind=(left+right)/2.0; double l=left,r=right; while((l-r)>eps||(l-r)<-eps){ if(f(_mind)*f(l)<0){ r=_mind; _mind=(r+l)/2.0; }else if(f(_mind)*f(r)){ l=_mind; _mind=(l+r)/2.0; } } printf("The Zero Point is %.5f in area(%.5f,%.5f)\n",_mind,left,right); } } return 0; }
相关文章推荐
- Non-square Equation(数学问题方程转化)
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- 中值定理、不等式与零点问题
- 关于MySQL中时间格式和取零点的问题
- 由倒水问题引发出来的对于模线性方程与二元不定方程的思考
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- 12小时制和24小时制获取当天零点的问题探讨
- 求方程解问题
- 12小时制和24小时制获取当天零点的问题探讨
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- 从函数的零点问题到二分法的应用
- hdu 2529 shot 数学问题 解方程
- 1040: 方程求零点
- [物理学与PDEs]第2章习题3 Laplace 方程的 Neumann 问题
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- 增量式编码器计数的过零点处理问题
- 【简单的编程问题2】求一元二次方程的根
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- 1040: 方程求零点
- 不定式方程求整数解(百钱百鸡问题)(百马百货问题)