Просто о сложном: Фрактал Мандельброта - расчет на пальцах
Я уже неоднократно писала о потрясающих свойствах фракталов. Но знаете ли вы, что даже само построение фрактала осуществляется не обычным (привычным для нас) образом?
Возьмем самый известный фрактал, построенный по множеству Мандельброта.
источник
Видим привычную нам координатную плоскость и видим весьма простую функцию:
Fc = z^2+c.
Из курса математики мы помним, что для получения графического отображения функции необходимо найти значения координат точек (х;у) и по ним строить график.
Но мы же говорим о фракталах! А в них есть всё, кроме обычного…
Я расскажу вам, как происходит формирование фрактала и почему не хватит целой жизни для того, чтобы просчитать фрактал Мандельброта полностью.
источник
Дело в том, что для построения фрактала исследуют каждую точку координатной плоскости. Каждую! А сколько точек содержит плоскость размером, допустим, 2х2? Бесконечно много…
И тем точнее будет фрактал, чем больше точек мы будем исследовать.
Теперь о самом интересном – об исследовании точек. В понятие нашего исследования входит ряд повторяющихся вычислений (итераций), в результате которых точка либо останется в пределах Вселенной Мандельброта, либо покинет ее. Вселенной Мандельброта условно называют определенную область на плоскости.
Чтобы было понятно, о чем речь, давайте еще раз взглянем на формулу и немного посчитаем:
Z = z^2+c
В качестве начального значения для вычислений возьмем z=0 и с=1. Подставим эти значения в формулу:
Z = 0^2+1=1
Первый шаг: Z = 1^2+1=2
Второй шаг: Z = 2^2+1=5
Третий шаг: Z = 5^2+1=26
Четвертый шаг: Z = 26^2+1=677
Пятый шаг: Z = 677^2+1=458330
Обратите внимание на то, с какой скоростью полученные числа «улетают» в бесконечность!
И если на плоскости начертить условные границы Вселенной Мандельброта, то числа, покидающие ее, можно окрасить в белый цвет, а находящиеся внутри – в черный.
Но остается еще одна сложность – количество шагов (итераций) теоретически может быть бесконечным. Поэтому мы ограничим их количество тем числом повторов, которое будет оптимальным для конкретного случая.
Это второй показатель, влияющий на точность фрактала. Больше итераций – точнее фрактал.
Для упрощения восприятия представлю это наглядно. Возьмем плоскость с небольшим количеством точек: каждая ячейка – это точка с определенными координатами.
Ограничим количество итераций двумя. Соответственно, у нас будет всего два цвета – черный и белый.
Не буду «грузить» уважаемых читателей алгоритмом расчета, с ним вы можете ознакомиться вот тут.
Получим вот такой результат:
Точки, окрашенные в белый цвет, «покидают» Вселенную Мандельброта уже на первом шаге.
Увеличим количество итераций (и соответственно цветов) до трех:
Точки белого цвета «покидают» Вселенную на первом шаге, синего цвета – на втором, черного цвета – остаются внутри и при третьем шаге.
Увеличив количество точек и итераций, получим тот самый фрактал Мандельброта.
источник
И это тоже он:
источник
И это:
Для получения относительно точного фрактала необходимо как минимум 100 итераций и матрица 81х81, это 6561 точек (ячеек).
Если вы хорошо набьете руку и будете проводить вычисления одной итерации за 10 секунд, на исследование одной точки вам понадобится приблизительно 16,5 минут. А на исследование 6561 точек – 1822,5 часа или примерно 76 дней.
Источники, использованные в процессе изучения темы:
http://litresp.ru/chitat/ru/%D0%9A/klark-artur/prizrak-ispolina/8
https://elementy.ru/posters/fractals/Mandelbrot#nop
https://elementy.ru/posters/fractals/how_to_draw
Вики
http://fractalworld.xaoc.ru/Mandelbrot_set_and_Julia_set
http://zhekuskov.ru/mandelbrot/#color=desert&scale=0.004&x=-0.5&y=-0.05