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

简介:

比如我们要求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....

下面是代码:

 
  1. #define ABS(VAL) (((VAL)>0)?(VAL):(-(VAL)))   
  2. //用牛顿迭代法求浮点数的平方根   
  3. float mysqrt(float x) {   
  4.     float g0,g1;   
  5.     if(x==0)   
  6.         return 0;   
  7.     g0=x/2;   
  8.     g1=(g0+x/g0)/2;   
  9.     while(ABS(g1-g0)>0.01)   
  10.     {   
  11.         g0=g1;   
  12.         g1=(g0+(x/g0))/2;   
  13.     }   
  14.     return g1;   
  15. }  





本文转自 yarin 51CTO博客,原文链接: http://blog.51cto.com/yarin/379989 ,如需转载请自行联系原作者
相关文章
|
机器学习/深度学习 Python
概率论常见面试问题总结,含答案
概率论常见面试问题总结,含答案
|
存储 人工智能 物联网
FLUX第三弹:直面天命,FLUX.1-LoRA/IP-adapter「黑神话:悟空」生图实战
应近日来诸多社区开发者的学习诉求,特为大家推出一期 FLUX.1-LoRA/IP-adapter+ComfyUI +“顶流”IP「黑神话:悟空」的模型推理实战教程,玩转一把AI悟空生图 👀
|
机器学习/深度学习 人工智能 监控
一文读懂deepSpeed:深度学习训练的并行化
DeepSpeed 是由微软开发的开源深度学习优化库,旨在提高大规模模型训练的效率和可扩展性。通过创新的并行化策略、内存优化技术(如 ZeRO)及混合精度训练,DeepSpeed 显著提升了训练速度并降低了资源需求。它支持多种并行方法,包括数据并行、模型并行和流水线并行,同时与 PyTorch 等主流框架无缝集成,提供了易用的 API 和丰富的文档支持。DeepSpeed 不仅大幅减少了内存占用,还通过自动混合精度训练提高了计算效率,降低了能耗。其开源特性促进了 AI 行业的整体进步,使得更多研究者和开发者能够利用先进优化技术,推动了 AI 在各个领域的广泛应用。
如何用牛顿法求一个数的平方根
(一)导数与导函数 导数 设函数y=f(x)在点x0的某个邻域内有定义,当自变量x在x0处有增量Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量Δy=f(x0+Δx)-f(x0);如果Δy与Δx之比当Δx→0时极限存在,则称函数y=f(x)在点x0处可导,并称这个极限为函数y=f(x)在点x0处的导数记作①f'(x0) ;②y'│x=x0 ;③ │x=x0, 即 导函数 如果函数y=f(x)在开区间内每一点都可导,就称函数f(x)在区间内可导。
4356 1
|
算法 开发工具 数据安全/隐私保护
密码学系列之:IDEA
密码学系列之:IDEA
密码学系列之:IDEA
|
安全 物联网 数据安全/隐私保护
深入理解AMBA总线协议(AXI总结篇)
深入理解AMBA总线协议(AXI总结篇)
2239 1
|
存储 算法 程序员
RISC-V 基础学习:RISC-V 指令介绍
RISC-V 基础学习:RISC-V 指令介绍
1355 0
|
芯片 内存技术
嵌入式学习:Cortex-M系列芯片介绍
以意法半导体芯片为例子:Cortex-M0:主频在48M,一般用于低功耗;Cortex-M3:主频为72M,是现在市面上最为流行的芯片之一,一般用于工业等部分控制功能; Comtex-M4:主频为168M,一般用于电源管理控制
嵌入式学习:Cortex-M系列芯片介绍
|
机器学习/深度学习 人工智能 智能设计
生成式重排在内容推荐中的应用实践
生成式重排在内容推荐中的应用实践
1976 0
生成式重排在内容推荐中的应用实践