本文實例講述了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) : 結果為4G.sqrt(2) : 結果為1.414G.sqrt(100.2565)
當然,網上對牛頓迭代法的算法好像還有其他實現,讀者可以根據需要選擇適合自己理解的方法.
PS:這里再為大家推薦幾款計算工具供大家進一步參考借鑒:
在線一元函數(方程)求解計算工具:
http://tools.Vevb.com/jisuanqi/equ_jisuanqi
科學計算器在線使用_高級計算器在線計算:
http://tools.Vevb.com/jisuanqi/jsqkexue
在線計算器_標準計算器:
http://tools.Vevb.com/jisuanqi/jsq
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript數組操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript操作DOM技巧總結》及《JavaScript字符與字符串操作技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答
圖片精選