Computer >> Máy Tính >  >> Lập trình >> C ++

Phép tính gần đúng Bakhshali cho tính toán căn bậc hai trong chương trình C

Xấp xỉ Bakhshali là một phương pháp tính căn bậc hai của một số không phải là một bình phương hoàn hảo. Bây giờ, hãy sử dụng các thuật ngữ liên quan đến bàn chải để dễ dàng hiểu khái niệm này.

Căn bậc hai của một số x là một số thỏa mãn điều kiện sau, y 2 =x.

Hình vuông hoàn hảo là một số có căn bậc hai là w. Ví dụ 16 là hình vuông hoàn hảo vì các căn của nó là 4 và 4.

Có nhiều phương pháp được định nghĩa về mặt toán học để tìm căn bậc hai của một số. Trong hướng dẫn này, chúng ta sẽ tìm hiểu về phép xấp xỉ Bakhshali để tìm căn bậc hai của một số.

Nó là một phương pháp để tìm các gốc gần đúng của một số. nó tương đương với hai bước đầu tiên của phương pháp Babylon.

đang làm việc -

Phép gần đúng Bakhshali hoạt động theo cách sau,

Chúng ta phải tìm căn bậc hai của một số s . Dưới đây là các bước và tính toán cần thiết để tìm giá trị gần đúng này.

  • tìm bình phương hoàn hảo gần nhất của số s, tức là. n 2 .

  • Tìm hiệu của số và hình vuông hoàn hảo gần nhất, tức là d =s - n 2 .

  • Tính, P =d / (2n).

  • Tính, A =n + P.

  • Giá trị gần đúng của căn bậc hai của s sẽ là (A - P 2 / 2A) .

Ví dụ

#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;
}

Đầu ra

The square root of 12.3412 = 3.51327

Bây giờ căn bậc hai gần đúng này rất gần với căn thực tế với là 3,51300441. Vì vậy, phương pháp này khá tốt để tìm căn bậc hai gần đúng của một số đã cho. Đến một vài chỗ, phương pháp này đúng nên chúng tôi có thể sử dụng nó để tìm gốc của các giá trị dấu phẩy động.