javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根【遞歸原理】
本文實(shí)例講述了javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根。分享給大家供大家參考,具體如下:
今天在網(wǎng)上看到一則利用牛頓迭代法求浮點(diǎn)數(shù)的平方根的方法,發(fā)現(xiàn)很好,比一些語(yǔ)言自帶的sqrt方法運(yùn)行要快,在這里備份一下,以待后用,這里稍微做了些改動(dòng).
首先是牛頓迭代法原理:
比如我們要求a的平方根,首先隨便猜一個(gè)近似值x,然后不斷令x等于x和a/x的平均數(shù),迭代幾次后x的值就已經(jīng)相當(dāng)精確了。
如我們要求的數(shù)學(xué)假設(shè)為 a=7, var x=a;
( 7 + 7/7 ) / 2 = 3.64287514
( 3.64287514 + 7/3.64287514 ) / 2 = ?
..
..
下面是利用JavaScript實(shí)現(xiàn)
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){ //用來(lái)減少循環(huán)次數(shù) break; } this.result=x; document.body.innerHTML+="this.result-->"+this.result+"-->X:"+x+"<br/>"; } } };
運(yùn)行
G.sqrt(16)
: 結(jié)果為4
G.sqrt(2)
: 結(jié)果為1.414
G.sqrt(100.2565)
當(dāng)然,網(wǎng)上對(duì)牛頓迭代法的算法好像還有其他實(shí)現(xiàn),讀者可以根據(jù)需要選擇適合自己理解的方法.
PS:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript操作DOM技巧總結(jié)》及《JavaScript字符與字符串操作技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JavaScript實(shí)現(xiàn)算術(shù)平方根算法-代碼超簡(jiǎn)單
- 在JavaScript中使用開(kāi)平方根的sqrt()方法
- js浮點(diǎn)數(shù)保留兩位小數(shù)點(diǎn)示例代碼(四舍五入)
- js判斷輸入是否為正整數(shù)、浮點(diǎn)數(shù)等數(shù)字的函數(shù)代碼
- js浮點(diǎn)數(shù)精確計(jì)算(加、減、乘、除)
- javascript將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)的三個(gè)方法
- 深入理解JavaScript中的浮點(diǎn)數(shù)
- javaScript實(shí)現(xiàn)浮點(diǎn)數(shù)轉(zhuǎn)十六進(jìn)制字符
- Javascript中浮點(diǎn)數(shù)相乘的一個(gè)解決方法
- JavaScript浮點(diǎn)數(shù)及運(yùn)算精度調(diào)整詳解
- JavaScript檢查數(shù)字是否為整數(shù)或浮點(diǎn)數(shù)的方法
相關(guān)文章
當(dāng)鼠標(biāo)移出灰色區(qū)域時(shí)候,菜單項(xiàng)怎么隱藏起來(lái)
當(dāng)鼠標(biāo)移出灰色區(qū)域時(shí)候,菜單項(xiàng)怎么隱藏起來(lái)...2007-11-11ant-design-pro?的EditableProTable表格驗(yàn)證調(diào)用的實(shí)現(xiàn)代碼
這篇文章主要介紹了ant-design-pro?的EditableProTable表格驗(yàn)證調(diào)用,這里的需求是點(diǎn)擊外部的保存要對(duì)整個(gè)表單進(jìn)行驗(yàn)證,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06layui在form表單頁(yè)面通過(guò)Validform加入簡(jiǎn)單驗(yàn)證的方法
今天小編就為大家分享一篇layui在form表單頁(yè)面通過(guò)Validform加入簡(jiǎn)單驗(yàn)證的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS實(shí)現(xiàn)動(dòng)態(tài)表格的添加,修改,刪除功能(推薦)
這篇文章主要介紹了JS實(shí)現(xiàn)動(dòng)態(tài)表格的添加,修改,刪除功能(推薦)的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06JavaScript中.min.js和.js文件的區(qū)別講解
今天小編就為大家分享一篇關(guān)于JavaScript中.min.js和.js文件的區(qū)別講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02js+css實(shí)現(xiàn)導(dǎo)航效果實(shí)例
這篇文章主要介紹了js+css實(shí)現(xiàn)導(dǎo)航效果,實(shí)例分析了下拉菜單導(dǎo)航的js實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02JavaScript實(shí)現(xiàn)圖片懶加載(Lazyload)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片懶加載(Lazyload)的相關(guān)資料,需要的朋友可以參考下2016-11-11