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语句可以不以;结尾的烦恼
Mar 08 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
页面内容排序插件jSort使用方法
Oct 10 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
Javascript继承机制详解
May 30 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
在Vant的基础上封装下拉日期控件的代码示例
Dec 05 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
Mar 15 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
类的另类用法--数据的封装
2006/10/09 PHP
网站当前的在线人数
2006/10/09 PHP
由php if 想到的些问题
2008/03/22 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
python 反向输出字符串的方法
2018/07/16 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
岗位职责定义及内容
2013/11/08 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
班组建设经验交流材料
2014/05/12 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
学校工作推荐信范文
2014/07/11 职场文书
三严三实学习心得体会
2014/10/13 职场文书
导师工作推荐信
2015/03/27 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书