Member 13987621 Ответов: 1

Нужна помощь с этим домашним заданием на Python


Домашнее Задание № 2: Быстро Испеченный Пи

Существует несколько итерационных методов вычисления числа Пи. Особенно быстрым методом является итерация:

P(1) = 3,0

П(п + 1) = р(н) + грех(П(Н))

..где P(n) - аппроксимация pi на итерации 'n'. Учитывая первую оценку P(1) pi как "3,0", эта итерация сходится к аппроксимации pi правильной до такого количества цифр точности, которое вам разрешено при вызове sin().

P(1) = 3 + sin(3) = 3.1411200...

P(2) = 3.14112 + sin(3.14112) = 3.141592654...

После второй итерации ошибка очень мала (около 1,8*10^(-11)). И на следующей итерации ошибка падает примерно до 10^(-32). Почему это работает?

Этот алгоритм является частным случаем метода, называемого итерацией с фиксированной точкой, и используется для поиска решений уравнений вида:

x = f(x) [1]



В этом частном случае мы имеем f(x) = x + sin(x), и, поскольку sin(n*pi) = 0 для любого целого числа n, любое кратное pi является решением этого уравнения.

Уравнение типа [1] может иногда (часто?) решается путем повторения формулы:

x[n+1] = f(x[n])

where x[n] is the nth approximation of the solution. There is a famous theorem which states that the method will converge to the solution if the absolute value of the derivative f'(x) is less than some number L < 1 in some interval containing the solution, and if you start with a value in that interval. The smaller the derivative is, the faster the sequence will converge. In the case of f(x) = x + sin(x), we have: f'(x) = 1 + cos(x) and, if x is close to pi, cos(x) is close to -1, and f'(x) is close to 0, which explains why the method converges rapidly. We can also notice that f"(x), the second derivative, is -sin(x), which is 0 at the root. This means that you can start in a relatively large interval about pi, and still get a very fast convergence.

Мы можем рассматривать это как небольшую модификацию метода Ньютона, примененную к решению уравнения sin(x) = 0. Метод Ньютона дает формулу: x[n+1] = x[n] - sin(x[n])/cos(x[n]) и, поскольку cos(x[n]) близок к -1, вы получаете свою формулу, заменив cos(x[n]) на -1 в приведенной выше формуле.

1. Определите, является ли метод Ньютона или метод фиксированной точки лучшим для вычисления pi (с точностью до 15 цифр), подсчитав, сколько итераций необходимо для сходимости каждой из них.

2. Определите, является ли метод Ньютона или метод фиксированной точки лучшим для вычисления числа Дотти (0.739085...), которое является единственной вещественной фиксированной точкой функции cos ().

3. Включите комментарии, в которых обсуждается ваш анализ этой проблемы.

Н. б.вы можете использовать и модифицировать код метода Ньютона из учебника. Вы должны написать функцию более высокого порядка для вычисления итеративной итерации с фиксированной точкой следующим образом.

деф fixed_point_iteration(ф, х=1.0):

Шаг = 0

в то время как не approx_fixed_point(f, x):

х = F(х)

Шаг += 1

возврат x, Шаг



def approx_fixed_point(f, x) должен возвращать True тогда и только тогда, когда f(x) очень близко (расстояние < 1e-15) к x.



Образец Выполнения:

&ГТ;&ГТ; из математики импорт грех,потому

&ГТ;&ГТ;&ГТ; печать(fixed_point_iteration(лямбда-х: Sin(х) + х, 3.0)

(3.141592653589793, 3) # фиксированная точка pi:

&ГТ;&ГТ;&ГТ; печать(newton_find_zero(лямбда-х: Sin(х) , лямбда-х: соѕ(х), 3.0)

(3.141592653589793, 3) # Пи Ньютона



&ГТ;&ГТ;&ГТ; печать(fixed_point_iteration(лямбда-х: соѕ(х), 1.0)

(0.7390851332151611, 86) # фиксированная точка Дотти

&ГТ;&ГТ;&ГТ; печать(newton_find_zero(лямбда-х: соѕ(х) - х , лямбда-х: -Sin(х)-1, 1.0)

(0.7390851332151606, 7) # Дотти Ньютона

Что я уже пробовал:

Я не знаю, с чего начать, так как не знаю, в чем заключается вопрос askig me to do

1 Ответов

Рейтинг:
1

OriginalGriff

Внимательно прочитайте вопрос.
Он очень хорошо объясняет метод, а затем задает вам вопросы:

Цитата:
1. Определите, является ли метод Ньютона или метод фиксированной точки лучшим для вычисления pi (с точностью до 15 цифр), подсчитав, сколько итераций необходимо для сходимости каждой из них.

2. Определите, является ли метод Ньютона или метод фиксированной точки лучшим для вычисления числа Дотти (0.739085...), которое является единственной вещественной фиксированной точкой функции cos ().

3. Включите комментарии, в которых обсуждается ваш анализ этой проблемы.

Н. б.вы можете использовать и модифицировать код метода Ньютона из учебника. Вы должны написать функцию более высокого порядка для вычисления итеративной итерации с фиксированной точкой следующим образом.
Если вы все еще не понимаете, с чего начать, то вам нужно поговорить со своим наставником, а не с нами.