7.9 연습문제
연습문제 7-1
127쪽의 제곱근에서 루프 부분을 복사해서 인자 하나를 받는 mysqrt 함수로 캡슐화하자. mysqrt 함수는 적당한 값 x를 선택해서 a 제곱근의 근삿값을 반환한다.
mysqrt 함수를 테스트하기 위해 다음과 같은 표를 출력하는 test_square_root 함수를 작성하라.
a mysqrt(a) math.sqrt(a) diff
- --------- ------------ ----
1.0 1.0 1.0 0.0
2.0 1.41421356237 1.41421356237 2.22044604925e-16
3.0 1.73205080757 1.73205080757 0.0
4.0 2.0 2.0 0.0
5.0 2.2360679775 2.2360679775 0.0
6.0 2.44948974278 2.44948974278 0.0
7.0 2.64575131106 2.64575131106 0.0
8.0 2.82842712475 2.82842712475 4.4408920985e-16
9.0 3.0 3.0 0.0
첫 번째 열은 숫자 a, 두 번째 열은 mysqrt로 계산한 a의 제곱근, 세 번째 열은 math.sqrt로 계산한 제곱근, 네 번째 열은 두 추정값의 차이를 절댓값으로 바꾼 것이다.