2017-11-26 14 views
0

제곱근 명령을 사용하지 않고 숫자의 제곱근을 찾는 함수를 만들려고합니다. 그건 내가 지금엡실론의 정확도를 얻으십시오

def mySqrt(b, e) : 
    sqrt = b**.5 

내가이 많은 다른 접근을 시도했지만 내가 엡실론에서 구현하는 방법을 알아낼 수있는 기본 코드가 어떤 라이브러리없이 엡실론의 정확도에 대한 답을 얻을 수 e

+1

무엇이 '엡실론에 대한 정확성으로 대답을 얻는다'는 의미입니까? –

+0

엡실론 –

+1

의 정확도에 대한 답을 얻습니다. 파이썬, 제곱근, 뉴턴 법 등의 검색 용어를 사용하십시오. 추측을해라. 정확한지 확인하십시오. 이전 추측에서 배운 것을 토대로 다른 추측을하십시오. 그것의 정확성을 확인하십시오; repeat ... – wwii

답변

3

반복적 인 방법 인 Newton's method을 구현하면 많은 방정식을 임의의 정밀도로 풀 수 있습니다.

def my_sqrt(a, e): 
    diff = e + 1 # random diff > e 
    sqrt = 1.0 # start must not be 0 
    while diff > e: 
     sqrt = sqrt - (sqrt * sqrt - a)/(2 * sqrt) 
     diff = sqrt * sqrt - a 
     if diff < 0: # make sure diff is positive without calling abs 
      diff = -1 * diff 
    return sqrt 

>>> my_sqrt(2, 0.00001) 
1.4142156862745099 

합격자는,이 resquaring 후 계정에 엡실론를 취합니다

enter image description here

또는 파이썬 코드의 제곱근에 적용되는 재귀 간다. 결과는 엡실론 안에 루트 자체를 가져 오는 것보다 실제로 더 정확합니다.

+0

어떻게하면 되겠습니까? –

+0

@nick 'abs' 호출을 제거했습니다. – schwobaseggl

+0

아쉽게도 죄송합니다.이 작업은'sqrt = sqrt - (sqrt * sqrt -a)/(2 * sqrt)' –

-1

babylonian method을 사용하여 제곱근을 찾습니다. 정확도 검사에 대해서는 표준 sqrt 함수가 필요하고 백분율 오차로 (expected-outcome)/expected을 계산하십시오.

+0

이 예를 보여줄 수 있습니까? –