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代码,用以防止图片撑破页面
Mar 12 Javascript
JS防止用户多次提交的简单代码
Aug 01 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
Jul 21 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
将List对象列表转换成JSON格式的类实现方法
Jul 04 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
ES6通过babel转码使用webpack使用import关键字
Dec 13 Javascript
详解Vue方法与事件
Mar 09 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
vue-froala-wysiwyg 富文本编辑器功能
Sep 19 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
终于听上了直流胆调频
2021/03/02 无线电
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
Javascript typeof 用法
2008/12/28 Javascript
javascript 对象定义方法 简单易学
2009/03/22 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
js实现点击添加一个input节点
2014/12/05 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
使用Python写一个小游戏
2018/04/02 Python
python 剪切移动文件的实现代码
2018/08/02 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
家属答谢词
2015/01/05 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
python之django路由和视图案例教程
2021/07/26 Python