sicp.io
1.1.6 · 반복해서 개선하기

추측값을 되풀이해 다듬으면 근삿값이 된다.

제곱근 프로세스는 추측값과 목표를 추측값으로 나눈 몫의 평균을 되풀이해 구한 값의 제곱을 목표에 가까이 가져갑니다.

생각해 볼 질문

한 번의 개선 규칙이 어떻게 점점 더 정확한 수치 프로세스를 만들까요?

  • 추측값을 반복 한 단계의 완전한 상태로 읽기
  • 뉴턴 방식으로 제곱근 추측값 개선하기
  • 근삿값과 그 값을 제곱한 결과 비교하기
  • 고정된 한 번의 개선 수열 관찰하기

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로 나눈 값의 평균을 그대로 사용하세요. 목표만 바뀝니다.

    이 수업 완료하기

    이 장의 총 18개 수업 중 0개 완료0%