Математические байки – Telegram
Математические байки
4.3K subscribers
1.44K photos
15 videos
27 files
914 links
Рассказы про разную математику.

Архив: http://dev.mccme.ru/~merzon/mirror/mathtabletalks/
Download Telegram
А вот тут уже всё честно — заменили золотое сечение на некоторое близкое α':
Математические байки
И в продолжение — вот тут картинка, которая показывает, что происходит: https://twitter.com/matthen2/status/1262249113384452096
Это не совсем то возмущение, что в статье — я тут сильно меньше увеличиваю меняемый элемент цепной дроби, чем надо; может быть, поэтому мы видим этакие "завитушки" — зато получается как раз похоже на то "закручивающееся мелькание", которое мы в анимации Мэтта Хэндерсона иногда видим.
Давайте попробуем одну из этих "завитушек" увеличить —
Видно, что спираль резко обрывается — вот её ещё увеличенная версия:
Она обрывается настолько резко, что я даже подумал, не зря ли я тут на программу наговариваю — может быть, это я чего-то не понимаю?
Но нет — всё правильно: есть 13 переставляющихся по циклу спиралей; здесь 13 это число Фибоначчи — знаменатель приближения α как 8/13 — это то самое место, где я почти-оборвал цепную дробь золотого сечения 1/(1+1/(1+1/(1+1/(...)))).
Внутри этих спиралей есть отталкивающая периодическая орбита периода 13 — с чуть большим 1 по модулю мультипликатором (производной за период):
| 0.9998485 - 0.0618222 i | = 1.001758
И, соответственно, спирали должны на неё наматываться (потому что множество Жюлиа инвариантно).
Для контроля — вот картинка, которую тут строит программа XaoS (спасибо Михаилу Раскину за наводку):
Математические байки
Photo
То есть — вот здесь, например, программа действительно делает недостаточно итераций, и под этим увеличением рисует заметно-неправильное множество.
И возникает вопрос: хорошо, а как определить, сколько ждать надо?
В этом месте должна бы начинать звучать драматическая музыка — потому что на слова "определить, сколько времени нужно ждать" одной из первых ассоциаций является алгоритмически неразрешимая проблема останова.
А именно — если мы рассматриваем компьютер (с бесконечной памятью; машину Тьюринга, чтобы формализовать слово "компьютер"), на котором будем запускать программы — то нет никакого универсального алгоритмического способа по любой программе правильно сказать, закончит ли она когда-нибудь работу, или нет.
То есть — есть очевидные случаи (скажем, если первой же командой идёт "закончить работу", или первым же делом программа сваливается в бесконечный цикл).