वर्गमूल ज्ञात करने की बेबीलोनियन विधि एक संख्यात्मक विधि पर आधारित है, जो गैर-रैखिक समीकरणों को हल करने के लिए न्यूटन-रैफसन पद्धति पर आधारित है।
विचार सरल है, एक्स के एक मनमाना मूल्य से शुरू होता है, और y 1 के रूप में, हम बस x और y के औसत का पता लगाकर रूट का अगला सन्निकटन प्राप्त कर सकते हैं। फिर y मान को संख्या / x के साथ अपडेट किया जाएगा।
इनपुट और आउटपुट
Input: A number: 65 Output: The square root of 65 is: 8.06226
एल्गोरिदम
sqRoot(number)
इनपुट: वास्तविक संख्या।
आउटपुट: दी गई संख्या का वर्गमूल।
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
उदाहरण
#include<iostream>
#include<cmath>
using namespace std;
float sqRoot(float number) {
float x = number, y = 1; //initial guess as number and 1
float precision = 0.000001; //the result is correct upto 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);
} आउटपुट
Enter Number to find square root: 65 The square root of 65 is: 8.06226