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中Math.abs()方法的使用
Jun 14 Javascript
javascript实现树形菜单的方法
Jul 17 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
js实现网页收藏功能
Dec 17 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
node实现登录图片验证码的示例代码
Apr 20 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
May 15 Javascript
Vue 设置axios请求格式为form-data的操作步骤
Oct 29 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
js通过canvas生成图片缩略图
Oct 02 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面向对象——访问修饰符介绍
2012/11/08 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
理解Python中的With语句
2016/03/18 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python变量赋值的秘密分享
2018/04/03 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Python requests模块session代码实例
2020/04/14 Python
python 批量将中文名转换为拼音
2021/02/07 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
经管应届生求职信
2013/11/17 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
大跃进口号
2014/06/16 职场文书
Redis入门教程详解
2021/08/30 Redis