Su tarea es calcular la raíz cuadrada de 2 utilizando el Método de Newton, con un ligero giro. Su programa es calcular una iteración utilizando el Método de Newton y generar el código fuente para la siguiente iteración (que debe ser capaz de hacer lo mismo).
El método de Newton se describe de manera bastante exhaustiva en Wikipedia.
Para calcular la raíz cuadrada 2 utilizando el método de Newton, usted:
- Definir
f(x) = x^2 - 2
- Definir
f'(x) = 2x
- Definir
x[0]
(la suposición inicial)= 1
- Definir
x[n+1] = x[n] - (f[n] / f'[n])
Cada iteración moverá x [n] más cerca de la raíz cuadrada de dos. Asi que -
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
- y así
Tu programa:
- Calcule
x[n]
dónden
es la cantidad de veces que se ejecutó el programa - Envíe el código fuente a un programa válido en el mismo idioma que debe calcular
x[n+1]
y satisfacer los mismos criterios de esta pregunta. - La primera línea del código fuente debe ser el resultado del cálculo, debidamente comentado. Si la fuente requiere algo particular (como un shebang) en la primera línea, el resultado puede colocarse en la segunda línea.
Tenga en cuenta que
- Su programa debe usar una conjetura inicial de
x[0] = 1
- Se aplican las lagunas estándar
- Cualquier poder incorporado, raíz cuadrada o funciones xroot están prohibidas
- Su programa no debe aceptar ninguna entrada. Debe ser completamente autónomo.
Su puntaje es el tamaño de su programa inicial en bytes UTF-8. El puntaje más bajo gana.
x = x-(x*x-2)/(2*x)
?