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。所以,這種方法非常適合求給定數字的近似平方根。這種方法在小數點後幾位是正確的,因此我們可以用它來求浮點數的根。
廣告