用牛顿迭代法求浮点数的平方根

版权申明:http://yarin.iteye.com/blog/453262

先说个例子:

比如我们要求a的平方根,首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代几次后x的值就已经相当精确了。

看下面(假设a=2,我们求2的平方根):

1.先随便猜个数,比如我猜2的平方根为7

( 7  + 2/7 ) / 2 = 3.64287514
( 3.64287514  + 2/3.64287514 ) / 2 = 2.095946017

......

......

( n+ 2/n) / 2 = 1.414....

 

下面是代码:

#define ABS(VAL) (((VAL)>0)?(VAL):(-(VAL))) //用牛顿迭代法求浮点数的平方根 float mysqrt(float x) { float g0,g1; if(x==0) return 0; g0=x/2; g1=(g0+x/g0)/2; while(ABS(g1-g0)>0.01) { g0=g1; g1=(g0+(x/g0))/2; } return g1; }

 

 

好的,就写到这里了!谢谢支持! 

 

 

 

 

 

 

 

 

牛顿迭代法之求浮点数的平方根 迭代算法也称为辗转法,是一种不断用变量的旧值递推新值的过程;与之相对应我们常用的方法是直接法(或称一次解法),即一次性 解决问题。迭代算法是计算机解决问题的一种基本方法。它可以很好的利用计算机运算速度快、适合做重复性操作的特点,让计算机一组指 令进行重复的执行,从而可以从变量 阅读详情

相关推荐

利用牛顿迭代法求平方根.pdf

详细讲述了利用牛顿迭代法求平方根的过程,值得参考。

用牛顿法计算平方根

题目描述 编写程序,用牛顿方法计算正浮点数的平方根: 3 1.73205 设x是用户输入的数。牛顿方法需要先给出x平方根的猜测值y(我们使用1)。后续的猜测值通过计算y和x/y的平均值得到。下表给出了求解3的平方根的过程。 x y x/y y和x/y的平均值 3 1 3 2 3 2 1.5 1.75 3 1.75 1.71429 1.73214 3 1.73214 1.73196 1.73205 3 1.73205 1.73205 1.7320 注意,y的值逐渐接近x的平方根。为了获得更高的精度,程序中.

半濠春水的博客 1678

平方根迭代公式

已知平方根迭代公式xn+1=(xn+a/xn)/2,设初值x=a/2。编写程序输入a值计算其平方根。迭代的结束条件是x n+1-xn<10-15,结果要求输出15位有效位数

利用牛顿迭代法求浮点数的平方根

话不多说,先上代码 class Solution { public int mySqrt(int x) { double x0 = x/2 ; double x1 = (x0 + x / x0) / 2 ; while(Math.abs(x1 - x0) > 0.01){ x0 = x1; x1 = (x0 + x / x0) / 2; } return x1;

黑脉金的博客 649

用牛顿迭代法计算整数的平方根到任意精度

这个程序展示了如何使用GMP来计算小整数的平方根并精确到任意精度,它并没有直接调用GMP的浮点函数来直接计算,而是通过牛顿迭代法逐步求精得到指定的精度。 这个程序以在VC6,VC2008和GCC下编译通过。在这个压缩包中,已经包含了GMP在windows平台的预编译lib文件和dll文件,你无需下载GMP来编译它。在Linux平台,你需要首先下载并安装GMP,然后你能编译和运行这个程序。 凭借GMP的高性能和牛顿迭代法,这个程序的性能非常好,在我的E8500CPU,计算sqrt(2)并输出(重定向到文件),当计算精度为10万/100万位有效数字时,仅需72毫秒和不到2秒。

javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】

主要介绍了javascript基于牛顿迭代法实现求浮点数的平方根,简单说明了牛顿迭代法的原理,并结合实例分析了javascript基于递归的数值运算相关操作技巧,需要的朋友可以参考下

用牛顿迭代法求浮点数的平方根(博客)

http://yarin.blog.51cto.com/1130898/379989

mysteriousAngel_love 1392

芯片设计中的STA实战:如何避免时序违例(含常见问题解析)

本文深入探讨了芯片设计中静态时序分析(STA)的实战应用,重点解析了如何避免时序违例。文章从STA的核心逻辑与约束制定出发,强调了将时序意识植入RTL编码与综合阶段的重要性,并详细介绍了后端物理实现中的时序收敛策略。同时,针对跨时钟域路径误报、多工艺角违例等常见问题提供了深度解析与调试技巧,旨在帮助IC设计工程师系统性地掌握时序分析与优化方法。

open4的博客 513

c语言用牛顿方法计算正浮点数的平方根,javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】...

javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】本文实例讲述了javascript基于牛顿迭代法实现求浮点数的平方根。分享给大家供大家参考,具体如下:今天在网上看到一则利用牛顿迭代法求浮点数的平方根的方法,发现很好,比一些语言自带的sqrt方法运行要快,在这里备份一下,以待后用,这里稍微做了些改动.首先是牛顿迭代法原理:比如我们要求a的平方根,首先随便猜一个近似值x,然后不断令x...

weixin_39837124的博客 571

STMCubeMX使用TB6612驱动编码轮并进行测速

TB6612电机驱动模块通过IN1和IN2引脚控制电机的旋转方向,并通过PWM信号的占空比调节电机速度。代码示例展示了如何使用GPIO控制电机的正反转,以及如何动态调整PWM占空比实现速度控制。系统设计中,TB6612与编码减速电机连接,STM32CubeMX用于初始化GPIO和PWM输出。编码器接口配置使用TIM3进行测速,TIM4定时器用于速度计算。Keil软件中编写的代码包括编码轮计数值获取、速度计算、电机正反转控制以及小车运动控制等功能。通过OLED显示速度,并实现电机的调试与测试。

wwivn的博客 2259

小红书私信接口与Hook技术实战:微信跳转卡片的合规与破解之道

本文深入探讨了小红书私信接口与Hook技术的实战应用,重点解析了微信跳转卡片的合规使用与破解方法。通过官方私信接口的合规玩法与Xposed框架的Hook技术对比,为开发者提供了技术选型指南和实战建议,帮助实现高效的用户跳转与转化。

weixin_30399821的博客 733

求一个浮点数的平方根——牛顿迭代法

求一个浮点数的平方根——牛顿迭代法public class CMath { private CMath() {} /** * Calculate the square root of a double floating-point number. * * @param d the double floating-point number *...

HuanCaoO的博客 2750

对称加密和非对称加密,数字签名和证书

在对称加密中,任何人都可以使用公钥进行加密。在数字签名中,任何人都可以使用公钥验证签名。数字签名,其实就是将非对称加密反过来使用。公钥私钥非对称加密发送者加密时使用接收者解密时使用数字签名验证者验证签名时使用签名者生成签名时使用谁持有密钥?只要有需要,任何人都可以持有个人持有既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密。公钥负责加密,私钥负责解密。既然是签名,那肯定是不希望有人冒充我发消息,所以只有我才能签名。私钥负责签名,公钥负责验签。

m0_70432049的博客 1409

快速求平方根

yxyx​。

dmf_fff的博客 1091

图自编码器(GAE)与变分图自编码器(VGAE)

在学习图自编码器之前先了解一下自编码器与变分自编码器。

小鱼的小窝 1万+

uniapp [全端兼容] - 实现集成配置百度语音识别转文字,长按或开启录音并将录音文件实时转换为文字,百度智能云API实现上传录音文件并转换成文字案例(苹果安卓App、微信小程序、移动端H5网页)

uniapp对接百度智能云语音识别,uniapp中实现语音识别(app+小程序),百度语音识别录音转文字_百度智能云,uniapp使用百度语音识别语音转文字,uniapp小程序调用百度语音识别,uni-app 百度语音识别文字并展示功能,uniapp配置自定义界面百度语音识别转文字和原生使用方式,uniapp使用百度语音,uni-app语音转文字功能,使用UniApp技术实现录音并将录音转换为文字,uniapp如何实现语音输入功能功能,Uniapp集成百度智能云API实现录音转文字详细教程完整示例代码dem

🏆 前端领域优质创作者 1万+

《雷神之锤 III 竞技场》快速求平方根倒数的计算探究

经过上面推导,已经求出来一个值了,这个值存在一定的误差,如果接受不了这个误差,就可以使用牛顿求根法进行一次或多次逼近以提高精度,如果能够接受这种误差便可以结束了。

dmf_fff的博客 1193

10、边缘智能学习技术解析

本文深入解析了边缘智能学习技术的四大核心方法:联邦学习、DNN拆分、迁移学习和八卦学习。文章从人类大脑的学习机制出发,引出边缘级智能的重要性,并详细阐述各类技术的架构、优势、挑战及适用场景。通过对比分析,展示了不同技术在隐私性、效率、可扩展性等方面的特性,并探讨了未来融合多种技术、软硬件协同优化及应用领域拓展的发展趋势,为边缘智能在物联网与人工智能领域的应用提供了系统性参考。

ppp33的博客 117

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

前言 在《算法(第四版)》中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和论坛,找到了一个自己感觉比较合理的解释,下文主要就简单介绍一下牛顿迭代法和其在《算法》这本书中的收敛条件设置的原因的理解。 一、牛顿迭代法求平方根原理 public static double sqrt(double c) { if(c>0) return Double.NaN......

weixin_43776810的博客 9407

[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究

上一篇文章详细讲解如何利用数据增强方法实现图像数据集的扩充,并以濒危水书作为案例讲解。这篇文章将详细讲解基于机器学习的水书图像识别方法,以图像像素统计为特征开展图像分类讲解,这是最基础的方法,也为后续深度学习图像分类描述提供支撑。基础性文章,希望对您有所帮助!让我们开始吧,且看且珍惜。

杨秀璋的专栏 989

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

牛顿迭代法求平方根倒数

牛顿迭代法,第二次看了,发现几乎又是从头开始搜集资料,不如整理记录一下,也和大家分享一下; 牛顿迭代法的核心思想是:切线是曲线的线性逼近,通过迭代求切线最后找到函数近似解的过程。具体可以参考下面这个文章,图示画的很容易理解。 牛顿迭代法求平方根(通俗易懂版)_付石头的博客-优快云博客_迭代法求平方根 既然理解和其核心思想,那么就开始进行公式推导: 对上图求f(x)的零点x0即:f(x)=0的解,由牛顿迭代的核心思想可知,是比更靠近...

fucong59的博客 1956

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: J2ME卡马克算法案例--地图滚屏(附源码)
下一篇: Android教程之android数据库编程
yarin
博客等级 码龄17年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值