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 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告