牛顿迭代法(求平方根)
public static double sqrt(double c) {if(c<0) return Double.NaN;double err = 1e-15; //1的-15次方 科学计数法double t = c;while(Math.abs(t - c/t) > err * t) {t = (c/t + t) / 2.0;}return t;}
以上是牛顿迭代法的java实现,牛顿迭代法具体的数学公式有兴趣可以自行百度(我了解完才发现,自己的高数好像又忘记的差不多了,哈哈哈)
下面举一个例子吧,比如求 根号17
(1.0+17.0)/ 2 = 9.0
(1.8888888888888888+9.0)/ 2 = 5.444444444444445
(3.1224489795918364+5.444444444444445)/ 2 = 4.28344671201814
(3.9687665431445214+4.28344671201814)/ 2 = 4.126106627581331
(4.12010680634426+4.126106627581331)/ 2 = 4.123106716962795
(4.123104534272815+4.123106716962795)/ 2 = 4.123105625617805
(4.123105625617516+4.123105625617805)/ 2 = 4.123105625617661
(4.123105625617661+4.123105625617661)/ 2 = 4.123105625617661
(4.123105625617661+4.123105625617661)/ 2 = 4.123105625617661
(4.123105625617661+4.123105625617661)/ 2 = 4.123105625617661
随着遍历的次数越来越多,会无限接近
核心的公式其实就是 t = (c/t + t) / 2.0
牛顿迭代法(求平方根)相关推荐
- 141. Sqrt(x)【牛顿迭代法求平方根 by java】
Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...
- 经典算法:牛顿迭代法求平方根
//牛顿迭代法求平方根 1 double mysqrt(double num) 2 { 3 double x = num/2; 4 double y = 0; 5 do{ 6 x = x/2+num/ ...
- 牛顿迭代法求平方根原理
牛顿迭代法可以求解n次方的根,但这里只讨论用它来求平方根. 牛顿迭代法求平方根过程 Java代码实现 /*** 求一个数的平方根* @param number* @return*/public sta ...
- 【算法】牛顿迭代法求平方根的原理和误差分析
前言 在<算法(第四版)>中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和 ...
- 牛顿迭代法求平方根倒数
牛顿迭代法,第二次看了,发现几乎又是从头开始搜集资料,不如整理记录一下,也和大家分享一下: 牛顿迭代法的核心思想是:切线是曲线的线性逼近,通过迭代求切线最后找到函数近似解的过程.具体可以参考下面这个文 ...
- Python:牛顿迭代法求平方根
#69573 牛顿迭代法求平方根[光]-函数复用#69573 牛顿迭代法求平方根描述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson meth ...
- python牛顿迭代法求平方根_Newton迭代法求平方根
牛顿迭代法求根 (即曲线与x坐标轴交点) : 在曲线的一点P1(a, f(a)), 做切线, 切线与x轴, 相交于 A 点, A点做垂线 与曲线交于 P2(b, f(b)) 点, 在P2点继续做切线, ...
- 牛顿方法求平方根c语言,C语言之基本算法11—牛顿迭代法求平方根
//迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...
- 牛顿迭代法-求平方根
牛顿迭代法 求出根号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时极限存在, ...
最新文章
- matlab game of life,模拟器cellular auotomata元胞自动机 matlab
- kettle如何设置数据库共享
- 【连载】优秀程序员的 45 个习惯之习惯25
- mllib java怎么调用_如何准备mllib中的训练数据
- C# 字符串操作学习总结
- linux wifi修改频率,Linux Custom CRDA WiFi regulatory.bin和40MHz BW 5GHz频...
- Linux dd命令制作U盘启动盘
- jzoj4637-大鱼海棠【博弈论】
- 前端学习(3042):vue+element今日头条管理-用户退出
- backup archivelog delete input 与delete all input 区别
- Hive提取json字段信息
- c语言有结构体的200行代码,C语言——结构体(示例代码)
- Photoshop插件-HDR(二)-脚本开发-PS插件
- 80核处理器_【装机帮扶站】第338期:95元的6核心12线程处理器
- JAVA面试常考系列七
- JavaEE | 语言基础部分、对象与类
- 做销售如何有效地维护好与客户的关系
- 【Python图像处理】SciPy库
- rails官方指南--建一个简易博客
- 索尼sr621sw和索尼sr626sw规格一样吗