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 相关文章推荐
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
Jan 23 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
javascript常用经典算法详解
Jan 11 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
从表单校验看JavaScript策略模式的使用详解
Oct 17 Javascript
js Proxy的原理详解
May 25 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
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
PHP中header用法小结
2016/05/23 PHP
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
学python最电脑配置有要求么
2020/07/05 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
四年大学自我鉴定
2014/02/17 职场文书
竞争上岗实施方案
2014/03/21 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
医德医风个人总结
2015/02/28 职场文书
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers