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


Posted in Javascript onSeptember 28, 2017

本文实例讲述了javascript基于牛顿迭代法实现求浮点数的平方根。分享给大家供大家参考,具体如下:

今天在网上看到一则利用牛顿迭代法求浮点数的平方根的方法,发现很好,比一些语言自带的sqrt方法运行要快,在这里备份一下,以待后用,这里稍微做了些改动.

首先是牛顿迭代法原理:

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

如我们要求的数学假设为 a=7, var x=a;

( 7  + 7/7 ) / 2 = 3.64287514
       ( 3.64287514  + 7/3.64287514 ) / 2 = ?
..
..

下面是利用JavaScript实现

var G={
 result:0
 ,sqrt:function(a){
  var x=a;
  for(var i=0;i<=Math.floor(a);i++)
  {
  x=(x+a/x)/2;
  if(x-this.result===0){ //用来减少循环次数
   break;
  }
  this.result=x;
  document.body.innerHTML+="this.result-->"+this.result+"-->X:"+x+"<br/>";
  }
 }
};

运行

G.sqrt(16)  : 结果为4
G.sqrt(2) : 结果为1.414
G.sqrt(100.2565)

当然,网上对牛顿迭代法的算法好像还有其他实现,读者可以根据需要选择适合自己理解的方法.

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
IE与firefox下Dhtml的一些区别小结
Dec 02 Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
BootStrap Fileinput的使用教程
Dec 30 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
微信小程序Getuserinfo解决方案图解
Aug 24 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 #Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 #Javascript
angular4自定义组件详解
Sep 28 #Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 #Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 #Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 #Javascript
node.js学习之断言assert的使用示例
Sep 28 #Javascript
You might like
DC动漫人物排行
2020/03/03 欧美动漫
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
python实现决策树分类(2)
2018/08/30 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
python实现马丁策略的实例详解
2021/01/15 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
给水工程专业毕业生自荐信
2014/01/28 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
房地产广告词大全
2014/03/19 职场文书
经营理念口号
2014/06/21 职场文书
领导班子四风表现材料
2014/08/23 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2014年班干部工作总结
2014/11/25 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL