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