Описание тега mandelbrot

Множество Мандельброта представляет собой фрактал в комплексной плоскости.

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

Алгоритм

По сути, построение множества Мандельброта - это вопрос сложной математики:

  1. Сопоставьте сетку пикселей с областью комплексной плоскости
  2. Для каждой сложной точки примените формулуZn+1 = Zn + C, где:
    • C - комплексные координаты точки
    • Z0 = 0
  3. Итерируйте каждую точку до тех пор, пока точка не окажется на расстоянии более 2 от начала координат, или пока вам не надоест (часто это фиксированный предел итераций).
  4. Если пиксель не исчез, он является частью набора Мандельброта и традиционно представлен черным пикселем; в противном случае примените выбранный алгоритм раскраски, чтобы решить, в какой цвет окрасить пиксель.

Вызовы

В процессе написания не наивного плоттера множеств Мандельброта необходимо решить ряд алгоритмических и архитектурных проблем.

На глубоких зумах можно достичь предела точности doubleтип, что приводит к вопросу, как можно пойти дальше; Арифметика произвольной точности - один из ответов, в то время как некоторые смельчаки реализуют свои собственные типы с фиксированной точкой.

Создание графика - это процесс, очень интенсивно использующий процессор, поэтому оптимизация быстро становится важной, чтобы иметь возможность сгенерировать график в разумные сроки. Поскольку отдельные точки не зависят друг от друга (с большинством алгоритмов построения графиков), можно распараллелить работу, что само по себе является дополнительной проблемой.

Также возникает вопрос, взаимодействует ли пользователь с плоттером и каким образом.

дальнейшее чтение

  • В Википедии есть подробное описание фрактала, его история, псевдокод базового алгоритма и описания ряда расширений.
  • В Wolfram есть чисто математическое описание фрактала и множество ссылок на связанные работы.