简介:牛顿迭代法,又称为牛顿-拉夫逊方法,它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

求n的平方根,即计算x^2= n的解,令f(x)=x^2-n,相当于求解f(x)=0的解。
1.首先取猜测x0(例如可以设初次猜测值为x/2),如果x0不是解,做一个经过(x0,f(x0))这个点的切线,与x轴的交点为x1。 同理,如果x1不是解,做一个经过(x1,f(x1))这个点的切线,与x轴的交点为x2。 以此类推。 以这样的方式得到的xi会无限趋近于f(x)=0的解。

2.判断xi是否是f(x)=0的解有两种方法: 第一种是直接计算f(xi)的值判断是否为0,第二种是判断前后解xi和xi-1是否无限接近(在本题目要求二者差值小于0.000000001)。经过(xi, f(xi))这个点的切线方程为f(x) = f’(xi)(x - xi)+f(xi) ,其中f’(x)为f(x)的导数。(本例中为2x。)令切线方程等于0,即可求出x(i+1)=xi - f(xi) / f’(xi)。在此题中,化简可得到迭代公式x(i+1)=xi - (xi^2 - n) / (2xi)

C++代码如下:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{double x0,x1,n;cin>>n;x0=n/2;x1=x0-(x0*x0-n)/(2*x0); while(abs(x0-x1)>=1e-9) //abs是指取绝对值的意思{x0=x1;x1=x0-(x0*x0-n)/(2*x0);}cout<<x1;return 0;
}

在这里只用f(x)=x^2作为例子,还可以求解项数较少的多项式(比如说一元三次方程式的根)

牛顿迭代法求平方根(C++)相关推荐

  1. 141. Sqrt(x)【牛顿迭代法求平方根 by java】

    Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...

  2. 经典算法:牛顿迭代法求平方根

    //牛顿迭代法求平方根 1 double mysqrt(double num) 2 { 3 double x = num/2; 4 double y = 0; 5 do{ 6 x = x/2+num/ ...

  3. 牛顿迭代法求平方根原理

    牛顿迭代法可以求解n次方的根,但这里只讨论用它来求平方根. 牛顿迭代法求平方根过程 Java代码实现 /*** 求一个数的平方根* @param number* @return*/public sta ...

  4. 【算法】牛顿迭代法求平方根的原理和误差分析

    前言 在<算法(第四版)>中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和 ...

  5. 牛顿迭代法求平方根倒数

    牛顿迭代法,第二次看了,发现几乎又是从头开始搜集资料,不如整理记录一下,也和大家分享一下: 牛顿迭代法的核心思想是:切线是曲线的线性逼近,通过迭代求切线最后找到函数近似解的过程.具体可以参考下面这个文 ...

  6. Python:牛顿迭代法求平方根

    #69573 牛顿迭代法求平方根[光]-函数复用#69573 牛顿迭代法求平方根描述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson meth ...

  7. python牛顿迭代法求平方根_Newton迭代法求平方根

    牛顿迭代法求根 (即曲线与x坐标轴交点) : 在曲线的一点P1(a, f(a)), 做切线, 切线与x轴, 相交于 A 点, A点做垂线 与曲线交于 P2(b, f(b)) 点, 在P2点继续做切线, ...

  8. 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根

    //迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...

  9. 牛顿迭代法-求平方根

    牛顿迭代法 求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了.  例如,我想求根号2等于多少.假如我猜测的结果为4,虽然错的离谱,但 ...

  10. 如何用牛顿迭代法求平方根

    设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量Δy=f(x0+Δx)-f(x0):如果Δy与Δx之比当Δx→0时极限存在, ...

最新文章

  1. Git-分布式版本控制系统
  2. Linux下WPS自主设置快捷键,电脑wps的word怎么自主设定快捷键
  3. JAVA入门级教学之(数据类型)
  4. Discuz常见小问题-如何取消登陆发帖验证码
  5. 鸿蒙系统下载 绿色,PGWARE PcMedik
  6. Unexpected exception 'Cannot run program '的解决
  7. aix查看oracle用户密码,AIX详细查看用户/进程使用内存
  8. 简单易懂源码解析字符串拼接
  9. 怎么删除w7桌面计算机图标,w7桌面图标箭头怎么去掉?w7桌面图标箭头去掉方法...
  10. JVM学习04-垃圾回收概念与算法
  11. 2010年VMware中国获奖总结(1/2)
  12. 中国房地产总市值与GDP的比例
  13. 能否用计算机证明数学定理大全,那些教材中未给出证明的定理,到底能否使用?...
  14. python numpy 版本问题:error module compiled against API version 0xc but this version of numpy is 0xb
  15. 24.多线程(等待唤醒机制,volatile,CAS 算法,线程池,定时器,设计模式)
  16. 纪录片《出路》揭露残酷现实:父母越不努力,孩子越没出路
  17. EBS之Dataload常用命令
  18. SAP服务器文件上传和下载
  19. Flutter高仿微信-第58篇-扫一扫
  20. Binder、IBinder 和 IInterface 的关系

热门文章

  1. 短信为各行业提供营销方案
  2. html如何设置div的边框颜色
  3. 1.Python版本及其虚拟环境管理:pyenv和pyenv-virtualenv
  4. virtualenv 环境迁移
  5. 斯蒂芬·沃尔夫勒姆 | 圣塔菲研究所的初创故事
  6. 疫情下“停课不停学”的钉钉被刷一星差评,“在线求饶”的钉钉到底做错了什么?
  7. 麒麟980可以升级鸿蒙吗,这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?
  8. 基于AT89C52和DS18B20的空调温度精准控制系统
  9. 华为荣耀5cvs华为v9play_荣耀v9play和荣耀V9有什么区别?华为荣耀v9 play和荣耀V9区别对比评测...
  10. 80端口封了怎么办,80端口被屏蔽解决方法