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。所以,这种方法非常适合求给定数字的近似平方根。这种方法在小数点后几位是正确的,因此我们可以用它来求浮点数的根。
广告