Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

제곱근을 구하는 바빌론 방법


제곱근을 구하는 바빌로니아 방법은 비선형 방정식을 풀기 위한 Newton-Raphson 방법을 기반으로 하는 수치 방법 중 하나를 기반으로 합니다.

아이디어는 간단합니다. 임의의 x 값에서 시작하여 y를 1로 하여 x와 y의 평균을 찾아 루트의 다음 근사값을 간단히 얻을 수 있습니다. 그러면 y 값이 number / 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