Babylonian method to find the square root

Misc AlgorithmsData StructureAlgorithms

The Babylonian method to find square root is based on one of the numerical method, which is based on the Newton- Raphson method for solving non-linear equations.

The idea is simple, starting from an arbitrary value of x, and y as 1, we can simply get next approximation of root by finding the average of x and y. Then the y value will be updated with  number / x.

Input and Output

Input:
A number: 65
Output:
The square root of 65 is: 8.06226

Algorithm

sqRoot(number)

Input: The number in real.

Output: Square root of given 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

Example

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

Output

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


raja
Published on 12-Jul-2018 10:43:14
Advertisements