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 相关文章推荐
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
浅析jquery的js图表组件highcharts
Mar 06 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
详解AngularJS 模态对话框
Apr 07 Javascript
json定义及jquery操作json的方法
Sep 29 Javascript
layui动态加载多表头的实例
Sep 05 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
es6数组includes()用法实例分析
Apr 18 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
Vue.js中使用Vuex实现组件数据共享案例
Jul 31 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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP实现的日历功能示例
2018/09/01 PHP
jquery 经典动画菜单效果代码
2010/01/26 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python如何访问字符串中的值
2020/02/09 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
大学生职业生涯规划书
2014/03/14 职场文书
年度考核自我鉴定
2014/03/19 职场文书
家长会演讲稿
2014/04/26 职场文书
爱护花草树木的标语
2014/06/11 职场文书
群众路线教育实践活动学习心得体会
2014/10/30 职场文书
初中语文教学研修日志
2015/11/13 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书