Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Phương pháp Babylon tìm căn bậc hai


Giới thiệu

Phương pháp Babylon tìm căn bậc hai dựa trên một trong các phương pháp số, dựa trên phương pháp Newton-Raphson để giải phương trình phi tuyến.

Ý tưởng đơn giản: bắt đầu từ một giá trị tùy ý của x, và y = 1, ta có thể đơn giản lấy xấp xỉ tiếp theo của căn bằng cách lấy trung bình của x và y. Sau đó giá trị y sẽ được cập nhật với số / x.

Đầu vào và Đầu ra

Đầu vào: Một số: 65
Đầu ra: Căn bậc hai của 65 là: 8.06226

Thuật toán

sqRoot(number)
Đầu vào: Số thực.
Đầu ra: Căn bậc hai của số cho trước.

Begin
    x := number
    y := 1
    precision := 0.000001
    while relative error of x and y > precision, do
        x := (x+y) / 2
        y := number / x
    done
    return x
End

Ví dụ (C++)

#include <iostream>
#include <cmath>
using namespace std;

float sqRoot(float number) {
    float x = number, y = 1;  // dự đoán ban đầu là số và 1
    float precision = 0.000001;  // kết quả chính xác đến 0.000001
    while(abs(x - y)/abs(x) > precision) {
        x = (x + y)/2;
        y = number/x;
    }
    return x;
}

int main() {
    int n;
    cout << "Enter Number to find square root: "; cin >> n;
    cout << "The square root of " << n << " is: " << sqRoot(n);
}

Kết quả

Enter Number to find square root: 65
The square root of 65 is: 8.06226