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 相关文章推荐
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
Dec 29 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
vue实现div拖拽互换位置
Jul 29 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
JS数组方法slice()用法实例分析
Jan 18 Javascript
你准备好迎接vue3.0了吗
Apr 28 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不用正则采集速度探究总结
2008/03/24 PHP
php中序列化与反序列化详解
2017/02/13 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
python学习数据结构实例代码
2015/05/11 Python
Python制作数据导入导出工具
2015/07/31 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python中关于浮点数的冷知识
2019/09/22 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
女子职高个人自荐书
2014/02/01 职场文书
美术毕业生求职信
2014/02/25 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
Python集合的基础操作
2021/11/01 Python
Python中的 No Module named ***问题及解决
2022/07/23 Python