1040: 方程求零点

1040: 方程求零点

时间限制: 1 Sec  内存限制: 128 MB
提交: 276  解决: 108
[提交][状态][讨论版]

题目描述

设函数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.000000,0.000000)
No zero point in area(0.000000,1.000000)
The Zero Point is 1.32471 in area(1.000000,1.500000)

提示

来源

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double f(double n){
 return n*n*n-n-1;
}
int main(){
 double a,b,mid,left,right;
 while(cin>>a>>b){
  left=a;
  right=b;
  while(left<right){
   mid=(left+right)/2;
      if(fabs(f(mid))<0.00005){
   cout<<"The Zero Point is "<<setiosflags(ios::fixed)<<setprecision(5)<<mid<<" in area(";
       cout<<setiosflags(ios::fixed)<<setprecision(6)<<a<<","<<b<<")"<<endl;
   break;
      }
   if(f(left)*f(mid)<0){
    right=mid;
   }else{
    left=mid;
   }
  }
  if(left>=right){
   cout<<"No zero point in area(";
      cout<<setiosflags(ios::fixed)<<setprecision(6)<<a<<","<<b<<")"<<endl;
  }
 }
 return 0;
}

时间: 2024-11-18 04:16:33

1040: 方程求零点的相关文章

关于方程求根的解决方案

对于方程求根主要的思想主要采取迭代的思想,通过条件判断,循环执行直到满足条件以后直接跳出循环输出 下面以x-cos(x)=0:为例  采用do-while 循环,输出Root: #include "stdio.h"#include "math.h"#include "stdio.h"double fun(){ double x1=0,x0; do { x0=x1; x1=cos(x0); } while(fabs(x0-x1)>=1e-6)

方程求根——牛顿迭代法

这段代码实现了牛顿切线法.简化牛顿法和牛顿下山法这三种方程求解法,由于输出结果较长,只以牛顿下山法为例写一段例题 1.代码 %%牛顿迭代法 %%method为-1时为牛顿切线法,method为0时为简化牛顿法,method为1时为牛顿下山法 %%f是表达式f(x) = 0,X0是初值,epsilon是精度,interval是包含解的区间 function NM = Newton_method(f,X0,epsilon,interval,method) Y0 = subs(f,X0); %%作图

Pell方程(求形如x*x-d*y*y=1的通解。)

佩尔方程x*x-d*y*y=1,当d不为完全平方数时,有无数个解,并且知道一个解可以推其他解. 如果d为完全平方数时,可知佩尔方程无解. 假设(x0,y0)是最小正整数解. 则: xn=xn-1*x0+d*yn-1*y0 yn=xn-1*y0+yn-1*x0 证明只需代入. 如果忘记公式可以自己用(x0*x0-d*y0*y0)*(x1*x1-d*y1*y1)=1 推. 这样只要暴力求出最小特解,就可以用快速幂求出任意第K个解. Street Numbers Time Limit: 1000MS

方程求根

一. 二分法 题目:用二分法求方程x3-2x-5=0在区间[2,3]内的一个实根,要求误差不超过0.01. 1 #include <iostream> 2 using namespace std; 3 4 double f(double x) 5 { 6 return x*x*x - 2*x - 5; 7 } 8 9 int main() 10 { 11 double left = 2.0, right = 3.0; 12 double mid; 13 while(right - left &

进一步完善之后的一元N次方程求导算法

祝大家节日快乐.......写代码就是过节.... package com.system.Tools; /** * 这个类,实现对函数的求导算法 * 最大目标  实现对任意多元函数的偏导数和全导数的求导算法 * 最小目标  实现对一元N次函数的求导算法 *  * @author Administrator */public class SystemMathTools { /* *  还不是很完善,需要进一步修改...     *      *  by comsci 2019.2.4 经过进一步的

方程求根——二分法

二分法求根主要应用了区间套定理,这一算法实现简单且结果也迭代的较好,但对于复杂函数其结果不理想 1.代码 %%二分法求根 %%f为函数表达式,interval0为初始区间,epsilon为控制精度 function RD = Roots_dichotomy(f,interval0,epsilon) x_low = interval0(1);x_up = interval0(2);x_ave = (x_low+x_up)/2; %%作图 t = x_low:(x_up-x_low)/1000:x_

方程求根——两种加速迭代法

这段代码实现了埃特金加速迭代法和斯特芬森加速迭代法,我们以斯特粉森迭代为例 1.代码 %%注意,这里的fei不再是形如f(x)=0的形式而是x=fei(x)的形式,有些fei(x)不收敛,需要寻找,X0是初始值,method取值0和1代表上述两种方法 function AIM = Accelerated_iteration_method(fei,X0,epsilon,method) %%作图 t = X0/2:X0/1000:2*X0; T = subs(fei,t); y0 = t; h=fi

相机位姿估计3:根据两幅图像的位姿估计结果求某点的世界坐标

关键词:相机位姿估计,单目尺寸测量,环境探知 用途:基于相机的环境测量,SLAM,单目尺寸测量 文章类型:原理说明.Demo展示 @Author:VShawn @Date:2016-11-28 @Lab: [email protected] 目录 <相机位姿估计0:基本原理之如何解PNP问题> <相机位姿估计1:根据四个特征点估计相机姿态> <相机位姿估计1_1:OpenCV:solvePnP二次封装与性能测试> <相机位姿估计2:[应用]实时位姿估计与三维重建相

hdoj 2899 Strange fuction【二分求解方程】

Strange fuction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4599    Accepted Submission(s): 3304 Problem Description Now, here is a fuction:  F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=