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 相关文章推荐
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
Oct 01 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
node.js中的fs.linkSync方法使用说明
Dec 15 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
javascript事件处理模型实例说明
May 31 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
Jul 01 Javascript
Angular中ng-options下拉数据默认值的设定方法
Jun 21 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
小程序ios音频播放没声音问题的解决
Jul 11 Javascript
解决vue页面渲染但dom没渲染的操作
Jul 27 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手册及PHP编程标准
2006/12/17 PHP
php mysql索引问题
2008/06/07 PHP
php session处理的定制
2009/03/16 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
自己的js工具 Event封装
2009/08/21 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
python重试装饰器示例
2014/02/11 Python
深入理解Python变量与常量
2016/06/02 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
工业设计毕业生自荐信
2014/04/13 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
MySQL里面的子查询的基本使用
2021/08/02 MySQL
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android