编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代区间为 [1, 3]。

一、二分法
任取两点x1和x2,判断(x1,x2)区间内有无一个实根。如果f(x1)和f(x2)符号相反,说明(x1,x2)之间有一个实根。取(x1,x2)的中点x,检查f(x)与f(x1)是否同符号,如果不同号,说明实根在(x,x1)区间,这样就已经将寻找根的范围减少了一半了。然后用同样的办法再进一步缩小范围。再找x1与x2(x2=x)的中点“x”,并且再舍弃其一半区间。如果f(x)与f(x1)同号,则说明根在(x,x2)区间,再取x与x2的中点,并舍弃其一半区间。用这个办法不断缩小范围,直到区间相当小为止。

public class liuzhuangsb {//用来精确7位小数public static final double p = 1e-7;//方程表达式public static double func(double x){return x*x*x-3*x-1;}public static void main(String[] args) {// TODO Auto-generated method stubdouble max = 3;double min = 1;double mid = (max+min)/2;if(func(mid) == 0) {;}else {while(Math.abs(func(mid)) > p) {if(func(mid)*func(min) > 0) {min = mid;}else {max = mid;}mid = (max+min)/2;}}System.out.println("近似结果"+mid);System.out.println("2cos20 "+2*Math.cos((Math.PI)/9));//注意cos的传入值是弧度制//System.out.println("与2cos20比 "+(mid-2*Math.cos((Math.PI)/9)));}
}

二、牛顿迭代法:

用牛顿迭代法求f(x)=0在x0附近的一个实根的方法是
(1) 选一个接近于x的真实根的近似根x1;
(2) 通过x1求出f(x1)。在几何上就是作x=x1,交f(x)于f(x1);
(3) 过f(x1)作f(x)的切线,交x轴于x2。可以用公式求出x2。由于故
(4) 通过x2求出f(x2);
(5) 再过f(x2)作f(x)的切线交x轴于x2;
(6) 再通过x3求出f(x3),…一直求下去,直到接近真正的根。当两次求出的根之差|xn+1-xn|≤ε就认为 xn+1足够接近于真实根。
牛顿迭代公式是:

public class liuzhuangsb {public static void main(String[] args) {// TODO Auto-generated method stubdouble a,b,c,d=2;do {c = d;a = 3*c*c-3;b = c*c*c-3*c-1;d = c-b/a;}while(Math.abs(c-d)>p);System.out.println(d);}
}

分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根相关推荐

  1. 1、编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代

    二分法: #include<stdio.h> #include<math.h> void main() {     double x,x1=1,x2=3,f1,f2,f;    ...

  2. 二分法和简单迭代法的优缺点_二分法和牛顿迭代法求解方程的比较.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp理学 二分法和牛顿迭代法求解方程的比较.doc5页 本文档一共 ...

  3. 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)

    题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...

  4. 3.牛顿迭代法求解方程的根

    牛顿迭代法求解方程的根 引题:用牛顿迭代法求下列方程在值等于x附近的根: 2 x 3 − 4 x 2 + 3 x − 6 = 0 2x^3-4x^2+3x-6=0 2x3−4x2+3x−6=0 输入: ...

  5. matlab用牛顿迭代法求解方程,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  6. 二分法和牛顿迭代法求平方根(Python实现)

    求一个数的平方根函数sqrt(int num) ,在大多数语言中都提供实现.那么要求一个数的平方根,是怎么实现的呢? 实际上求平方根的算法方法主要有两种:二分法(binary search)和牛顿迭代 ...

  7. python用牛顿迭代法求平方根_Python编程实现二分法和牛顿迭代法求平方根代码

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. python迭代法求解方程_第一部分:趣味算法入门;第六题牛顿迭代法求一元三次方程的根...

    100个不同类型的python语言趣味编程题 在求解的过程中培养编程兴趣,拓展编程思维,提高编程能力. 第一部分:趣味算法入门:第六题SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键 ...

  9. 算法分析与设计-迭代法求解方程(组)的根(详解)

    算法分析设计课之期末考试前的重要算法复习总结... 以下内容大多都摘抄自上课的课件的内容,但是课件没有解方程的完整代码,于是自己又写了写代码,仅供参考. 首先,迭代法解方程的实质是按照下列步骤构造一个 ...

最新文章

  1. List集合add使用过程中出现的错误
  2. 测试三相无刷电机驱动器 XXD2212 电调
  3. Android之在BaseAdapter源码中了解观察者模式
  4. 2.1.5 梯度检验
  5. android smack源码分析——接收消息以及如何解析消息
  6. 详解C调用lua脚本效率测试
  7. ubuntu14.0.4下安装pycharm
  8. BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
  9. 【BZOJ3631】松鼠的新家 树链剖分
  10. cocos2dx[3.x](11)——拖尾渐隐效果MotionStreak
  11. 程序员必看电影片单,高分烧脑假期必备!
  12. 万网(.net.cn)域名注册查询代码
  13. EXCEL解析:使用poi解析xlsx和xls后缀的excel文件
  14. 【ROOT from CERN】——TCanvas绘制画布
  15. PDF转长图片怎么转?不妨试试这个方法
  16. 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
  17. matlab 残差 dw,Eviews中的自相关检验与修正操作(一):残差图与DW检验
  18. 2023.1. Stimulsoft 报告和仪表板的新版本:Crack
  19. silhouette_matlab
  20. 灵隐寺招聘:没有KPI、佛系上班、一切随缘

热门文章

  1. 基于SkyEye的CAN总线通信测试
  2. Java Font 居中 反锯齿效果
  3. Mac5款高效实用软件,值得推荐
  4. 商务日语邮件规范和技巧
  5. 景观-活性污泥生态系统的构建及 氮磷转移规律的定量分析
  6. jQuery学习笔记03---CSS样式、jQuery事件
  7. Oracle 快速备份某张表
  8. 【verilog学习】HDLBits:Four Wires
  9. Ubuntu18.04 LTX RTX3080 安装驱动以及编译安装pytorch
  10. 2022-2028全球与中国汽车座舱空气质量传感器市场现状及未来发展趋势