당신의 임무는 약간의 비틀림과 함께 뉴턴의 방법을 사용하여 2의 제곱근을 계산하는 것입니다. 귀하의 프로그램은 Newton의 방법을 사용하여 반복을 계산하고 다음 반복에 대한 소스 코드를 출력합니다 (동일하게 수행 할 수 있어야 함).
뉴턴의 방법은 Wikipedia 에 상당히 철저하게 설명되어 있습니다.
뉴턴 방법을 사용하여 제곱근 2를 계산하려면 다음을 수행하십시오.
- 밝히다
f(x) = x^2 - 2
- 밝히다
f'(x) = 2x
- 정의
x[0]
(초기 추측)= 1
- 밝히다
x[n+1] = x[n] - (f[n] / f'[n])
각 반복은 x [n]을 2의 제곱근에 더 가깝게 이동합니다. 그래서-
x[0] = 1
x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5
x[2] = x[1] - f(x[1])/f'(x[1]) = 1.5 - (1.5 ^ 2 - 2) / (2 * 1.5) = 1.416666667
x[3] = x[2] - f(x[2])/f'(x[1]) = 1.416666667 - (1.416666667 ^ 2 - 2) / (2 * 1.416666667) = 1.414215686
- 등등
당신의 프로그램은 :
- 계산은
x[n]
어디에서n
프로그램이 실행 된 시간의 양입니다 x[n+1]
이 질문의 동일한 기준을 계산 하고 만족시켜야하는 동일한 언어로 유효한 프로그램에 소스 코드를 출력하십시오 .- 소스 코드의 첫 줄은 계산 결과 여야하며 적절하게 주석 처리되어야합니다. 소스가 첫 번째 행에 특정 항목 (예 : shebang)이 필요한 경우 두 번째 행에 결과가 표시 될 수 있습니다.
참고
- 프로그램은 초기 추측을 사용해야합니다
x[0] = 1
- 표준 허점이 적용
- 모든 빌드 전원, 제곱근 또는 xroot 기능은 금지되어 있습니다
- 프로그램은 어떤 입력도 받아 들여서는 안됩니다. 그것은 완전히 독립적이어야합니다.
점수는 UTF-8 바이트 단위의 초기 프로그램 크기입니다. 가장 낮은 점수가 이깁니다.
x = x-(x*x-2)/(2*x)
있습니까?