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 相关文章推荐
网页上的Javascript编辑器和代码格式化
Apr 25 Javascript
JQuery动画和停止动画实例代码
Mar 01 Javascript
jsonp原理及使用
Oct 28 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
chosen实现省市区三级联动
Aug 16 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
Feb 25 Javascript
JS实现打砖块游戏
Feb 14 Javascript
原生JS利用transform实现banner的无限滚动示例代码
Jun 15 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者的疑难问答(1)
2006/10/09 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
我的大学生活职业生涯规划
2014/01/02 职场文书
给同学的道歉信
2014/01/16 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
2015年库房工作总结
2015/04/30 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书