首頁 >web前端 >js教程 >javascript實現求浮點數的平方根詳解

javascript實現求浮點數的平方根詳解

小云云
小云云原創
2018-02-01 09:21:032534瀏覽

本文主要介紹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

7/3  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)


當然,網路上對牛頓迭代法的演算法好像還有其他實作,讀者可以根據需要選擇適合自己理解的方法.

相關推薦:

PHP中解決浮點數運算不準確的實例分享

js浮點數精確計算

###如何解決js浮點數精確度問題### ###

以上是javascript實現求浮點數的平方根詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn