추측값을 되풀이해 다듬으면 근삿값이 된다.
제곱근 프로세스는 추측값과 목표를 추측값으로 나눈 몫의 평균을 되풀이해 구한 값의 제곱을 목표에 가까이 가져갑니다.
생각해 볼 질문
한 번의 개선 규칙이 어떻게 점점 더 정확한 수치 프로세스를 만들까요?
- 추측값을 반복 한 단계의 완전한 상태로 읽기
- 뉴턴 방식으로 제곱근 추측값 개선하기
- 근삿값과 그 값을 제곱한 결과 비교하기
- 고정된 한 번의 개선 수열 관찰하기
guess가 너무 크면 x를 guess로 나눈 값은 너무 작고 반대도 마찬가지입니다. 두 값의 평균은 그 사이에 놓인 다음 추측값이 됩니다. 프로세스는 새 추측값 하나만 다음 호출로 가져갑니다.
이 프로그램들은 숨은 오차 한도 대신 개선 횟수를 고정합니다. 1.0에서 여섯 번 개선하면 √2에 대한 결정적인 관찰을 얻으며 명시적인 이력에서는 추측값 사이의 차이가 빠르게 줄어드는 모습을 볼 수 있습니다.
SICP 코드UTF-8 331 / 1,048,576바이트
예제
결과—
- 출력
- —
- 값
- —
- 진단
- —
실행 추적0 / 0 개 이벤트
첫 프로그램은 (1.414213562373095 1.9999999999999996)를 반환합니다. 두 번째 프로그램은 1.0부터 1.4142135623746899까지 추측값 다섯 개를 기록합니다.
각 refine 호출을 따라가며 몫과 평균과 남은 횟수가 바뀌는 곳을 찾으세요. 고정된 횟수는 선택한 시작값과 목표에서 이어지는 추측값을 정확히 기록합니다.
프로그램을 수정하고 결과를 비교해 보세요.
목표를 9.0으로 바꾸고 1.0에서 여섯 번 개선하세요. 실행하기 전에 근삿값과 그 제곱을 예상해 보세요.
힌트 보기
guess와 x를 guess로 나눈 값의 평균을 그대로 사용하세요. 목표만 바뀝니다.