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 10件让人费解的事情
Feb 15 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
jQuery图片播放8款精美插件分享
Feb 17 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
JS实现加载时锁定HTML页面元素的方法
Jun 24 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
Mar 28 Javascript
js的新生代垃圾回收知识点总结
Aug 22 Javascript
js实现网页版贪吃蛇游戏
Feb 22 Javascript
echarts实现晶体球面投影的实例教程
Oct 10 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
5.PHP的其他功能
2006/10/09 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
React进阶学习之组件的解耦之道
2017/08/07 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
Python Socket编程详细介绍
2017/03/23 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
老总助理工作岗位职责
2014/02/06 职场文书
优良学风班总结材料
2014/02/08 职场文书
副董事长岗位职责
2014/04/02 职场文书
环保宣传标语
2014/06/12 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python