프로그램 1.3.6 뉴턴 방법 (sqrt.py)
import sys import stdio EPSILON = 1e-15 c = float(sys.argv[1]) t = c while abs(t - c/t) > (EPSILON * t): # t를 t와 c/t의 평균값으로 설정한다. t = (c/t + t) / 2.0 stdio.writeln(t)
c EPSILON t |
인수 허용 오차 c의 추정 값 |
이 프로그램은 명령 줄 인수로 양의 정수 c
를 입력받고 c
의 제곱근을 소수점 15
자리까지 정확히 출력한다. 이 프로그램은 뉴턴 방법을 사용해 제곱근을 계산한다.
% python3 sqrt.py 2.0 1.414213562373095 % python3 sqrt.py 2544545 1595.1630010754388
반복 수 |
t |
c/t |
1 |
2.00000000000 |
1.0 |
2 |
1.50000000000 |
1.33333333333 |
3 |
1.41666666667 |
1.41176470588 |
4 |
1.41421568627 |
1.41421143847 |
5 |
1.41421356237 |
1.41421356237 |
c가 2.0일 때의 추적

▲ 그림 1.3.9 y = x2 - 2 그래프