经典算法:牛顿迭代法求平方根
//牛顿迭代法求平方根 1 double mysqrt(double num) 2 { 3 double x = num/2; 4 double y = 0; 5 do{ 6 x = x/2+num/(2*x); 7 y = x*x-num; 8 if(y<0) y = -y; 9 } while(y>0.0001); 10 return x; 11 } 12 int main(int argc, char* argv[]) 13 { 14 printf("%.3f",mysqrt(2));//1.414 15 return 0; 16 }
下面这段解释是从别的地方摘过来的,为了方便查看转了过来:
这种算法的原理很简单,我们仅仅是不断用(x,f(x))的切线来逼近方程x^2-a=0的根。根号a实际上就是x^2-a=0的一个正实根,这个函数的导数是2x。也就是说,函数上任一点(x,f(x))处的切线斜率是2x。那么,x-f(x)/(2x)就是一个比x更接近的近似值。代入f(x)=x^2-a得到x-(x^2-a)/(2x),也就是(x+a/x)/2。
转载于:https://www.cnblogs.com/jwk000/p/4285058.html
经典算法:牛顿迭代法求平方根相关推荐
- 【算法】牛顿迭代法求平方根的原理和误差分析
前言 在<算法(第四版)>中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和 ...
- 牛顿迭代法求平方根原理
牛顿迭代法可以求解n次方的根,但这里只讨论用它来求平方根. 牛顿迭代法求平方根过程 Java代码实现 /*** 求一个数的平方根* @param number* @return*/public sta ...
- 141. Sqrt(x)【牛顿迭代法求平方根 by java】
Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...
- 牛顿迭代法求平方根倒数
牛顿迭代法,第二次看了,发现几乎又是从头开始搜集资料,不如整理记录一下,也和大家分享一下: 牛顿迭代法的核心思想是:切线是曲线的线性逼近,通过迭代求切线最后找到函数近似解的过程.具体可以参考下面这个文 ...
- Python:牛顿迭代法求平方根
#69573 牛顿迭代法求平方根[光]-函数复用#69573 牛顿迭代法求平方根描述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson meth ...
- 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根
//迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...
- python牛顿迭代法求平方根_Newton迭代法求平方根
牛顿迭代法求根 (即曲线与x坐标轴交点) : 在曲线的一点P1(a, f(a)), 做切线, 切线与x轴, 相交于 A 点, A点做垂线 与曲线交于 P2(b, f(b)) 点, 在P2点继续做切线, ...
- 牛顿迭代法-求平方根
牛顿迭代法 求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了. 例如,我想求根号2等于多少.假如我猜测的结果为4,虽然错的离谱,但 ...
- 如何用牛顿迭代法求平方根
设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量Δy=f(x0+Δx)-f(x0):如果Δy与Δx之比当Δx→0时极限存在, ...
最新文章
- jdbc 日期时间相关的类型
- python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作
- 数据结构与算法 | 循环队列
- oracle linux rdac,redhat 6.4 安装RDAC
- rabbin负载均衡
- CSS样式表的规划与组织
- Redis整合Springboot实现数据共享
- 的产品很好为什么卖不好?
- OCR图文识别工具Mac版:iText
- Linux ubuntu centos Shell命令大全
- C# 利用NPOI 实现Excel转html
- 数据丢失与重复_面试官:如何保证消息的可靠性传输?如何处理消息丢失的问题?...
- 常见的宏观经济指标介绍
- Springboot实现多数据源整合的两种方式
- 【python】我用30行代码实现了小米新logo的制作
- 我和后端因为接口吵起来啦,还列了 5 锅罪
- APP手机测试-理论
- 完成领导交代的任务并及时反馈,才叫真的完成任务
- 如何比较好的规避拼多多纠纷退款的技巧?天创速盈来说
- JAVA与PLC通讯读取数据(两种方式)
热门文章
- 《2022博客之星拉票专用帖》
- hdu1589(枚举+并查集)
- 【译】Construction of a Plasma Chain 0x1
- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- Caffe 初识,揭开面纱
- ICLR 2017 | Attention 和 Memory Networks
- Hyperledger Fabric 排序服务核心原理和工作过程
- java 浮点数精度_Java中浮点数精度问题
- ubuntu14.04,安装JDK1.8(JAVA程序需要的开发、运行环境)
- Qt5 中 关于Widget Mapper的简单应用