牛顿迭代法:

x^2 = a的解,也就是函数f(x) = x^2 – a与x轴的交点。可以在x轴上先任选一点x0,则点(x0, f(x0))在f(x)上的切线,与x轴的交点为x1,它们满足切线的方程:f(x0)=(x0-x1)f’(x0),可得x1更接近最终的结果,解方程得到:x1 = (x0 + (a/x0))/2。以x1为新的x0,按照切线的方法依次迭代下去,最终求得符合精确度要求的结果值。

玄学数字:0x5f375a86 它来自一个传奇算法(求平方根倒数)。

float InvSqrt(float x)
{float mid = 0.5f * x;int i = *(int*)&x;i = 0x5f375a86 - (i>>1);x = *(float*)&i;x = x*(1.5f-mid*x*x);x = x*(1.5f-mid*x*x);x = x*(1.5f-mid*x*x);return 1/x;
}

不过这个代码有点局限性,只能用float而不能用double。。

但是这个玩意的运行效率比系统库的还快不少!!

手写sqrt 牛顿迭代法相关推荐

  1. lio-sam框架:点云匹配之手写高斯牛顿下降优化求状态量更新

    lio-sam框架:点云匹配之手写高斯牛顿优化求状态量更新 前言 代码分 前言 LIO-SAM的全称是:Tightly-coupled Lidar Inertial Odometry via Smoo ...

  2. 《视觉SLAM十四讲》手写高斯牛顿—笔记记录

    <视觉SLAM十四讲>手写高斯牛顿-笔记记录 我们的最终目的:使用高斯牛顿法,拟合参数abc 我们的实际小目标:求解增量方程得到ΔX(有了Δx就可以不停的迭代Eabc使得拟合Rabc啦) ...

  3. slam十四讲-ch6-非线性优化(包含手写高斯牛顿、使用g2o库、使用ceres库三种方法的源码详细注释)

    一.自写高斯-牛顿法 该程序是要进行一个非线性优化,对非线性函数的系数进行优化 y=exp(ax2+bx+c) 给定初始的系数 ae,be,ce(估计的) ar,br,cr(真实的) 源码如下: // ...

  4. 手写系列之手写LM(Levenberg–Marquardt)算法(基于eigen)

    紧接上次的手写高斯牛顿,今天顺便将LM算法也进行了手写实现,并且自己基于eigen的高斯牛顿进行了对比,可以很明显的看到,LM的算法收敛更快,精度也略胜一筹,这次高博的书不够用了,参考网上伪代码进行实 ...

  5. 【数学】手写开根号(牛顿迭代法 | 二分)

    题目链接 [编程题]开根号 题面 在没有任何数学库函数的情况下,求一个数 m 开 n 次方的结果. 输入描述: 每组输入只有1行,包括有一个正实数m和一个正整数n,其中1<=n<=321 ...

  6. 牛顿迭代法实现平方根函数sqrt

    转自利用牛顿迭代法自己写平方根函数sqrt 给定一个正数a,不用库函数求其平方根. 设其平方根为x,则有x2=a,即x2-a=0.设函数f(x)= x2-a,则可得图示红色的函数曲线.在曲线上任取一点 ...

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

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

  8. 用matlab写牛顿迭代法,牛顿迭代法的MATLAB实现

    20 牛顿迭代法的MATLAB实现 云 磊 (襄樊学院,湖北 襄阳 441053) 摘要:牛顿迭代法是方程求根中的一种较快捷的迭代方法,但遇到较复杂的方程时计算量较大.文章采用了MATLAB编程来实现 ...

  9. 牛顿迭代法 简单入门

    引言 牛顿迭代法是在计算机编程领域广泛用来求解方程的算法. 此算法类似于二分枚举(仅仅感觉上很类似= =) 我们每次枚举一个值 X 0 X_0 X0​,代入方程看是否为根,不是的话则将 X 0 X_0 ...

最新文章

  1. Redis数据介绍与指令大全
  2. 蚂蚁森林合种计划(2020.12.12,7天有效,每周6更新)
  3. OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大
  4. 第28讲 | 弄懂数字货币交易平台(二)
  5. Java 泛型背后的原理是什么?
  6. 用电梯服务器怎样解电梯显示E34,默纳克品牌电梯故障代码e41怎么处理
  7. LVS DR模式搭建、keepalived+LVS
  8. 【Elasticsearch】Elasticsearch高级调优方法论之——根治慢查询!
  9. 异常:org.springframework.http.converter.HttpMessageNotReadableException
  10. c盘local文件太大_win7 c盘清理的方法教程
  11. 计算机组成与设计01——计算机概要与技术
  12. 如何修改Excel2016默认的等线字体--亲测可用
  13. makefile中的隐含规则
  14. 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
  15. python xlsxwriter生成图片保存_Python Excel操作模块XlsxWriter之插入图片worksheet.insert_image()...
  16. Java的字面量和符号引用
  17. CentOS7下安装和配置MySQL5.7亲测有效(附图文)
  18. 中国云计算产业渐成熟 加速传统产业转型升级
  19. DeepFlow Large displacement optical flow with deep matching
  20. C/C++关于行末空格的控制输出

热门文章

  1. gin学习——邮箱发送验证码注册用户
  2. ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
  3. 如何选择PMP、IPMP、CPMP?
  4. java调用七鱼返回文件_网易七鱼 Android 高性能日志写入方案
  5. mysql 查询 断号_Mysql断号查询(连续数字查询中间断开的地方)
  6. PaddleSpeech TTS 设计要素 — 训练组件
  7. 项目Demo —— socket下载器
  8. 用计算机弹很多的歌,抖音用计算器弹奏音乐曲谱大全 极乐净土、体面和成都等歌曲...
  9. 【移动安全高级篇】————5、Andorid APK反逆向解决方案---梆梆加固原理探寻
  10. 余姚dns服务器位置,余姚广电dns服务器地址