C語言中計算平方根的巴克沙利近似法


巴克沙利近似法是一種計算非完全平方數平方根的方法。現在,讓我們回顧一下相關術語,以便更容易理解這個概念。

數字x的平方根是一個滿足以下條件的數字:y2 = x.

完全平方數是一個其平方根為整數的數。例如,16是完全平方數,因為它的平方根是4和-4。

數學上定義了多種方法來求一個數的平方根。在本教程中,我們將學習巴克沙利近似法來求一個數的平方根。

這是一種求一個數的近似根的方法。它等同於巴比倫方法的前兩步。

工作原理:

巴克沙利近似法的運作方式如下:

我們需要找到數字s的平方根。以下是找到這個近似值所需步驟和計算。

  • 找到數字s最接近的完全平方數,即n2

  • 求出數字和最接近的完全平方數的差,即d = s - n2.

  • 計算,P = d/(2n).

  • 計算,A = n + P.

  • s的平方根的近似值為(A - P2 / 2A)

示例

#include <iostream>
using namespace std;

int main(){
   float s = 12.3412;
   int perfectSqaure = 0;
   int n = 0;
   for (int i = static_cast<int>(s); i > 0; i--) {
      for (int j = 1; j<i; j++){
         if (j*j == i){
            perfectSqaure = i;
            n = j;
            break;
         }
      }
      if (perfectSqaure > 0)
      break;
   }
   float d = s - perfectSqaure;
   float P = d/(2.0*n);
   float A = n+P;
   float rootOfs = A-((P*P)/(2.0*A));
   cout<<"The square root of "<<s<<" = "<<rootOfs;
   return 0;
}

輸出

The square root of 12.3412 = 3.51327

現在這個近似平方根非常接近實際根3.51300441。所以,這種方法非常適合求給定數字的近似平方根。這種方法在小數點後幾位是正確的,因此我們可以用它來求浮點數的根。

更新於:2020年7月9日

561 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告