Мандельбульба (Mandelbulb)

Май 2, 2010, 02:24

Совсем-совсем недавно (меньше года назад!), был открыт очень интересный новый фрактал — Мандельбульба (Mandelbulb). Открыли его два математика: Даниэль Уайт (Daniel White) и Поль Ниландер (Paul Nylander). Они использовали гиперкомплексную алгебру, основанную на сферической системе координат. Алгебра оперирует трёхэлементными числами, соответствующими координатам точки в трехмерном пространстве. Для этих чисел (вида ) определены операции возведения в степень:

где

И операция поэлементного сложения.

С помощью этих двух операций можно построить трехмерный аналог множества Мандельброта, воспользовавшись известной формулой , где и — числа в нашей алгебре. Трехмерная точка принадлежит множеству, если процесс для остается ограниченным (не «улетает» в бесконечность). При реализации следует обратить внимание, что для вычисления необходимо использовать двухаргументную функцию atan2(a,b), которая есть практически в любом распространенном языке программирования.

Ниже приведена моя картинка для мандельбульбы 8-го порядка () при 5 итерациях, нарисована с помощью очень простого трассировщика лучей:

Mandelbulb, Мандельбульба

Кручёнка

Февраль 16, 2010, 04:44

Параметрические поверхности страсть как хороши!

параметрическая поверхность

Обои для рабочего стола с этой картинкой

Специально для фанатов математики, формула этой поверхности:

(далее...)

Простые числа. Решето Эратосфена

Декабрь 13, 2006, 05:35

Это статья посвящена простым числам и эффективным способам их вычисления. Сразу скажу, что те алгоритмы, которые тут приведены, являются весьма и весьма нетривиальными и самому мне не давались довольно долго, но в итоге я их всё-таки придумал, написал и спешу поделиться со всеми вами. Исходные тексты в статье будут приведены на языках C# и Haskell.

Простое число – это натуральное число больше единицы, которое имеет ровно два делителя: единицу и само это число.

Решето Эратосфена – древний, но при этом весьма эффективный и до сих пор широко используемый алгоритм поиска всех простых чисел не превосходящих некоторого N.

Запишем подряд все числа от 2 до N. Дальше вычеркнем из этого списка все числа кратные 2, исключая саму двойку, потом вычеркнем все числа кратные 3, исключая само число 3, число 4 уже вычеркнуто, вычеркиваем числа кратные 5 и т.д. Продолжаем этот процесс, пока квадрат очередного числа не превысит N.

Самая простая программная реализация этого алгоритма выглядит следующим образом:

(далее...)
Сергей Лымарь © 2005-2011, Все права защищены. Сайт реализован на языке Haskell