牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。

计算公式

设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。

解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。

已经证明,如果是连续的,并且待求的零点是孤立的,那么在零点周围存在一个区域,只要初始值位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。

例题:华为OJ

求解立方根

题目描述

•计算一个数字的立方根,不使用库函数

详细描述:

•接口说明

原型:

public static double getCubeRoot(double input)

输入:double 待求解参数

返回值:double  输入参数的立方根

输入描述:

待求解参数 double类型

输出描述:

输入参数的立方根 也是double类型

输入例子:

216

输出例子:

6.0

1 #include "iostream"

2 #include "string"

3 #include "vector"

4 #include "algorithm"

5 #define E 0.005

6

7 using namespacestd;8

9 double getCubeRoot(doublenum)10 {11 doublex0, x1;12 x0 =num;13 x1 = x0 - (x0*x0*x0 - num) / (2 * x0*x0);14 while (x1 - x0 > E || x1 - x0 < -E)15 {16 x0 =x1;17 x1 = x0 - (x0*x0*x0 - num) / (2 * x0*x0);18

19 }20 returnx1;21

22 }23

24 intmain()25 {26 doublen;27 cin >>n;28 cout<

30 }

java牛顿法求方程根_牛顿迭代法 求方程根相关推荐

  1. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序

    function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% %牛顿迭代法(切线法)求解方程f_name = ...

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

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

  3. python牛顿法解非线性方程组_牛顿迭代法解非线性方程组(MATLAB版)

    牛顿迭代法,又名切线法,这里不详细介绍,简单说明每一次牛顿迭代的运算:首先将各个方程式在一个根的估计值处线性化(泰勒展开式忽略高阶余项),然后求解线性化后的方程组,最后再更新根的估计值.下面以求解最简 ...

  4. 牛顿法计算平方根java_利用牛顿迭代法求平方根(转)

    求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2-通过有效次迭代后即可求出n的平方根,Xk+1 先让我们来验证下这个巧妙的方法准确性,来算下2的平 ...

  5. java牛顿法求方程根_C程序习题-用牛顿迭代法求方程的根[6.12]

    用牛顿迭代法求下面方程在1.5附近的根.2X3– 4X2+3X- 6 = 0 看到这个题目,我便开始百度,看什么是牛顿迭代法.看了上面的解释,我还是一头雾水.无从下手.不知所云.看着上面写的推到公式, ...

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

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

  7. 用c语言编制牛顿法程序,求解试用newton法求函数,YTU 2405: C语言习题 牛顿迭代法求根...

    2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec  内存限制: 128 MB 提交: 562  解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...

  8. 牛顿迭代法 求方程根

    牛顿迭代法 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程 ...

  9. C语言学习之用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0

    用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0 在本题中 f(x) = 2x³-4x²+3x-6 可以写成以下形式:f(x) = ((2x-4)x+3)x-6 同样,f´(x) ...

  10. 用牛顿迭代法求方程的根

    用牛顿迭代法求方程的根(C语言) 题目要求:牛顿迭代法是一种重要的基本的求方程根的方法.现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附 ...

最新文章

  1. 报名 | 2019全球AI文创大赛开启项目征集!
  2. uva1025城市里的间谍
  3. Centos:mysql的安装和使用:yum方式
  4. Spring BeanDefinition加载
  5. Go语言 命令行解析(一)
  6. JSP中get和post请求方式的区别及乱码解决方法
  7. 有两个python怎么停用其中一_python3.X 复学(2)-----开始了就不要停止
  8. 【Python】对象、类、元类
  9. 这个保守的 RNA motif是病毒侵染的关键
  10. 在.Net中使用log4Net
  11. SQL Server 自动化运维系列
  12. 餐饮小票在线生成_意大利电子小票发送截止日即将来临
  13. [北京昌平] 企名片寻找合适的伙伴,一起做数据,让数据不再难找难应用,做全球企业数据服务商...
  14. opencv2.4.9中HoughlinesP源码中的疑问解析!
  15. ACM学习历程—HDU1584 蜘蛛牌(动态规划 状态压缩 || 区间DP)
  16. 谷歌开源“穷人版”摘要生成NLP模型:训练成本低,只要1000个样本就能打败人类...
  17. 一文简要了解词义消歧与实体消歧
  18. 于的繁体字有几种写法_“人”字繁体字有几种写法?
  19. 虚拟机无法通过dhcp获取到IP地址
  20. Recent Advances in Open Set Recognition A survey全文翻译精校

热门文章

  1. SLAM导航机器人零基础实战系列:(七)语音交互与自然语言处理——2.机器人语音交互实现...
  2. 儿童python编程教程-儿童编程python入门
  3. html的坐标怎么表示,经纬度怎样表示
  4. 写论文word生成目录
  5. 家谱排版一般用什么软件
  6. 解决同一办公环境局域网下无法添加打印机的情况
  7. MTK 修改ro.hardware 获取cpu 和固件版本号方法
  8. 手机邮箱设置qq服务器,手机设置qq邮箱
  9. 企业公众号如何申请开通模板消息功能?
  10. 如何在excel中将数据转置