group-telegram.com/compmathweekly/8
Create:
Last Update:
Last Update:
Не планировал еще одного поста так скоро, но пришел Костя Кноп и рассказал забавное:
Как быстро посчитать много знаков числа π, если есть калькулятор с тригонометрическими функциями (но без обратных тригонометрических)? Предлагается такой рецепт: начинаем с грубого приближения π≈3, а дальше делаем пару-тройку итераций x→x+sin(x).
Можно было бы не писать никакой программы — но раз уж тут канал про компьютерные эксперименты:
from mpmath import *
mp.dps = 200
def iterate(approx):
return approx+sin(approx)
mypi = 3
for k in range(4):
mypi = iterate(mypi)
diff = pi-mypi
print(k+1,":",nstr(mypi,50),
"diff:",nstr(diff,2))
Кто запустил код — может видеть, что через 4 итерации ошибка уже порядка 10^{-100} (!)
Ну и объяснить это не сложно: за итерацию мы заменяем π+t на
Еще можно заметить, что мы недалеко ушли от метода
Тему вычисления знаков π и т.п. наверное еще продолжим.
===
Я ничего не понимаю в библиотеках питона, а mpmath — то что сходу нашлось в гугле по моему запросу (чтобы можно было много цифр синуса считать и т.п.).
BY Компьютерная математика Weekly
Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260
Share with your friend now:
group-telegram.com/compmathweekly/8