本文主要介紹javascript基於牛頓迭代法實現求浮點數的平方根,簡單說明了牛頓迭代法的原理,並結合實例分析了javascript基於遞歸的數值運算相關操作技巧,需要的朋友可以參考下,希望能幫助大家。
今天在網路上看到一則利用牛頓迭代法求浮點數的平方根的方法,發現很好,比一些語言自帶的sqrt方法運行要快,在這裡備份一下,以待後用,這裡稍微做了些改動.
首先是牛頓迭代法原理:
比如我們要求a的平方根,首先隨便猜一個近似值x,然後不斷令x等於x和a/x的平均數,迭代幾次後x的值就已經相當精確了。
如我們要求的數學假設為a=7, var x=a;
( 7 + 7/7 ) / 2 = 3.64287514
( 3.64287514
( 3.64287514
7/3 ( 3.64287514
..
..
下面是利用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.414
G.sqrt(100.2565)
當然,網路上對牛頓迭代法的演算法好像還有其他實作,讀者可以根據需要選擇適合自己理解的方法.
以上是javascript實現求浮點數的平方根詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!