Фрактал простых чисел

Фракталы, как правило, управляются довольно простыми правилами, порождая удивительную красоту. Однако я не встречал способы построения фракталов, основанных на простоте чисел. Фрактал, который получился у меня, быть может не так красив, как фрактал Мандельброта, и не содержит явного само-подобия (self-similarity), но также имеет бесконечно сложную структуру.

0211dbac55235100dc4454bb8d046c7e.png

За 4 шага я покажу, как я его получил. Будет много картинок и мало формул.

Постоянные Фейгенбаума и теория хаоса

a518d579465cfdc81ed767ec24916370.jpg

Многие уже узнали эту картинку, связанную с размножением кроликов. Пусть каждый год популяция кроликов увеличивается на a:

x_{n+1} = ax_n

Если a, коэффициент размножения больше 1, то каждый год кроликов все больше и больше. В природе так не бывает. Пусть, если x приближается к 1, то кролики начинают умирать от болезней:

x_{n+1} = ax_n(1-x_n)

Дополнительная часть уравнения как раз отвечает за смертность кроликов, а картинка вверху показывает зависимость х (в пределе многих лет) от a. Как видно, при увеличении a до 3 равновесная плотность популяции растет, а потом мы видим неожиданное: происходит бифуркация: в один год кроликов меньше, в другой больше. Впрочем, мы такое поведение природы знаем по урожаю яблок, когда урожайные годы идут через один.

При дальнейшем увеличении a возникает вторая бифуркация, потом еще и еще, все чаще и чаще, а потом настает полный хаос. По мере приближения к хаосу время как бы ускоряется, плотность событий увеличивается. Предел отношений длин отрезков L является первой константой Фейгенбаума, 4.669… и она проявляет себя для очень широкого класса систем. Даже отношения размеров 'бубликов' (кардиоидов) у множества Мандельброта тоже 4.669.

Если за L0 (см. картинку вверху) взять промежуток времени 24 февраля — 21 сентября, то следующая бифуркация будет в первых числах ноября.

Фрактал Ляпунова

Фрактал назван в память о Ляпунове, который пустил себе пулю в голову за пол века до открытия фрактала, в котором используется экспонента Ляпунова. Идея генерации фрактала заключается в том, чтобы вместо одного значения a использовать два разных, a и b, и чередовать их по какому-нибудь правилу, например, abababab…:

493c6bc0dd75cf96061672bebeb1cbe4.png

начинаем мы с x=0.5, выбираем a и b (оси x и y), и вычисляем экспоненту Ляпунова. Для других последовательностей ab картинка будет выглядеть иначе, например для aabab:

e0eb2faa7c389b8313b265cad20ad7f0.png

А теперь простые числа

Что если вместо периодической последовательности ab использовать апериодическую последовательность abbababaaa…, где a одначает что число составное, а b простое:

1-a, 2-простое, b, 3-простое b, 4- составное, a, 5 — b, 6-a, 7-b итд.

c81301f6175d33418f8a8ac5fcdba21a.png

Картинка стала резко ассиметричной (что не удивительно, простых чисел меньше), но стала смазанной и менее интересной, на мой взгляд.

Кстати, а вы заметили, что оси у нас рисуются до значения 4? Это не случайно. При величине a>4 фрактал теряет устойчивость, значения улетают в бесконечность… Как и при отрисовке фрактала Мандельброта! Что если выкинуть экспоненту Ляпунова и отрисовывать (логарифм) количества итераций до того, как модуль x превысит некоторое значение, например, 1000?

Простые числа, вторая попытка

Теперь наши оси не ограничены значением 4:

a6260ef48b4da1521f88dcfb7414d324.png

Черный цвет означает стабильность — бесконечности не получается. Это наша знакомая область до 4. А вот дальше все интереснее/ Давайте увеличим район относительной стабильности около 4:

ad289661dab33d35b9c8d99a41c9c590.png

Картинка меняется довольно сильно, если 'объявить' число 3 или 5 составным, а вот большие числа (91, например) на картинку почти не влияют.

Еще один zoom:

2ee171f83ee44add0fb89475ee28e67d.png

И еще, кусочек справа:

ea4b6858ba1e2f02f8bb94bea4c92796.png

'Прожектора', светящие в разные стороны, связаны с локальными сгущениями и разрежениями простых чисел. Просчитываются эти картинки довольно долго, 500×500 точек, для каждой надо скользить по простым числам до заданного предела (я брал 10–100 миллионов)

© Habrahabr.ru