Ваша задача - вычислить квадратный корень из 2, используя метод Ньютона - с легким поворотом. Ваша программа должна рассчитать итерацию, используя метод Ньютона, и вывести исходный код для следующей итерации (которая должна быть в состоянии сделать то же самое).
Метод Ньютона довольно исчерпывающе описан в Википедии
Чтобы вычислить квадратный корень 2, используя метод Ньютона, вы:
- определять
f(x) = x^2 - 2
- определять
f'(x) = 2x
- Определить
x[0]
(начальная догадка)= 1
- определять
x[n+1] = x[n] - (f[n] / f'[n])
Каждая итерация будет перемещать x [n] ближе к квадратному корню из двух. Так -
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]
и удовлетворять тем же критериям этого вопроса. - В первой строке исходного кода должен быть результат вычисления, правильно закомментированный. Если источнику требуется что-то конкретное (например, шебанг) в первой строке, результат может быть помещен во вторую строку.
Обратите внимание, что
- Ваша программа должна использовать первоначальное предположение
x[0] = 1
- В стандартных лазейки применяются
- Любые встроенные функции power, square root или xroot запрещены
- Ваша программа не должна принимать какие-либо данные. Он должен быть полностью автономным.
Ваша оценка - это размер вашей начальной программы в байтах UTF-8. Самый низкий балл побеждает.
x = x-(x*x-2)/(2*x)
?