Фрактал мальденброта что это
Бенуа Мандельброт – его фракталы и их применение в форекс анализе
Оглавление. Жми для простмотра
Технический анализ всевозможных числовых последовательностей, к которым относятся и котировки активов за определенный период, осуществляется разнообразными математическими методами. Ни один из них не является универсальным, а каждый их них эффективен лишь при определенных условиях. Далее рассмотрим свойства фрактала Мандельброта и его применение в анализе на форекс.
Лучший брокер
Бенуа Мандельброт и его фракталы
Обладая уникальным пространственным мышлением Б. Мандельброт даже не получив среднее образование сумел поступить в политехническую школу и затем сумел получить высшее образование (ему дали докторскую степень). Во время работы в IBM он изучал разнообразные прикладные задачи математики, в том числе, в области экономики. Именно тогда он увидел, что любые ценовые колебания можно описать определенным математическим методом, который не соответствовал стандартным геометрическим кривым.
Обнаружил такой феномен он во время изучения ценовой динамики на хлопок за несколько десятилетий. Хотя движения цен и были очень похожи на случайные, но определенный порядок в них Мандельброт сумел разглядеть. В частности, он обнаружил одинаковую симметричность длительных и кратковременных колебаний.
Для объяснения такого нового свойства ценовой динамики Мандельброт применил рекурсивный метод. В упрощенном виде, этот метод описывается формулой, в которой каждый последующий член рассчитывается как сумма квадрата предыдущего члена и постоянной величины. В качестве термина для таких множеств ввел понятие «фрактал».
Применив созданную фрактальную геометрию для объяснения ценовых движений, Мандельброт сумел с высокой степенью точности спрогнозировать возникновение многих рыночных состояний, которые не было возможно предсказать другими средствами анализа. Поэтому в дальнейшем фрактальная аналитика начала очень стремительно развиваться.
Как описывается рынок фракталами Мандельброта
Существует множество иных генераторов фракталов, которые в общем случае, могут состоять из любого количества инициаторов.
Фракталы Мандельброта в МТ4
В торговом терминале MetaTrader инструмент фрактального анализа называется Fractals и расположен он в меню «Вставка-Индикаторы-Билла Вильямса». Объясняется это тем, что именно Б. Вильямс разработал наиболее полную теорию фрактального анализа.
Почему множество Мандельброта устроено так, как оно устроено
О чём вообще речь
Множество Мандельбро́та — это «множество таких точек C на комплексной плоскости, для которых рекуррентное соотношение при
задаёт ограниченную последовательность» (вики).
Иными словами, на каждом шаге число возводится в квадрат и к нему добавляется константа. Начальное значение всегда (0, 0i), варьируется именно константа. Если за определенное число шагов последовательность осталась в заданных пределах, то значение константы принадлежит множеству. Выглядит это так:
Фиг.1 Множество Мандельброта в координатах — реальная и мнимая части константы. Отсюда.
Чаще действуют по другому — фиксируют радиус и для каждого значения константы подсчитывают число итераций, за которое последовательность до него добралась. Это позволяет раскрасить пограничные области множества, не принадлежащие, впрочем, самому множеству.
Фиг.2 Типичная цветовая схема
И откуда же всё это берется?
Нельзя просто так вот взять и ответить на этот вопрос.
Начнём с малого, изучим простую казалось бы операцию — возведение в квадрат.
Основа, 
Итак, что же это за возведение в квадрат комплексного числа, ведь именно оно лежит в основе наблюдаемой магии?
Комплексные числа будем рассматривать как двумерный вектор из реальной и мнимой части (что бы это ни означало) либо в полярных координатах как пару длина — угол.
Формула Муавра утверждает, что возведение комплексного числа в квадрат приводит к возведению длины в квадрат, угол при этом удваивается.
Фиг.3 Стартуем с угла 0.001 рад
Вот первые 12 итераций возведения в квадрат комплексного числа с длиной 1 и углом — 0.001 рад, где угол отсчитывается от действительной единицы против часовой стрелки. Когда угол превышает 2π, используется остаток от деления. Отрицательные углы тоже в деле.
Какие особенности есть у последовательности ?
Фиг.4 Последовательности для начальных углов в π/3, π/5, π/7, π/11
Забавно, циклы для π/n образуются по углам правильного n-угольника с одним из углов в стационарной точке (1,0i), но этот угол не посещается. Это проистекает из того, что, например, () не может породить 0, а только лишь числа от 1 до 12.
Но это всё простые делители. Попробуем что-нибудь непростое и нечётное.
Фиг.5 Последовательности для начальных углов в π/9, π/15, π/21.
Фиг.6 Последовательность с началом в 0.001 рад
Здесь показаны первые 500 и 5000 точек из уже знакомой последовательности, начинающейся с угла 0.001 радиана.
Отлично видно проявившуюся кардиоидо-подобную структуру. Происхождение её очевидно, если поделить единичный круг на 8 секторов
Фиг.7 Сектора
то в силу удвоения угла,
точки из сектора 1 могут попасть только в сектор 2 (или остаться в 1)
точки из сектора 2 могут попасть в сектора 3 и 4
точки из сектора 3 могут попасть в сектора 5 и 6
точки из сектора 4 могут попасть в сектора 7 и 8
К слову сказать, чтобы получить последовательность из 5000 адекватных значений, пришлось работать с точностью до 2000 значащих цифр. Фактически, каждая итерация последовательности приводит (грубо, за счет использования остатка от деления угла) к потере одного старшего разряда и подтягиванию одного разряда снизу, из “великого ничто”. Понятно, в “великом ничто” точность неограниченна, нам же приходится работать с конечными объемами данных.
Малые возмущения
Сейчас немного отойдём от чистого в сторону исходной задачи. На каждой итерации станем подмешивать константу. Правда, стартовая точка будет не в начале координат, а на единичной окружности. В результате можно работать с очень маленькими константами, ведь в этом случае не требуется вытаскивать последовательность на окружность для демонстрации нетривиального поведения.
Константа — это просто вектор из начала координат. В зависимости от того, где находится текущая итерация последовательности на единичной окружности, константа действует по-разному. Иные точки она “задувает” внутрь “кратера”, другие “сдувает” наружу. От баланса этих воздействий зависит, удержится ли последовательность в окрестностях единичной окружности или же безвозвратно уйдёт с дистанции.
Начнём со знакомой точки 0.001 радиана.
Фиг.8 Траектории при малых реальных отклонениях от 0.001 рад
Всего 58 итераций потребовалось, чтобы сойти с единичного круга и стремиться в бесконечность в случае константы (0, i*1e-15). При константе (0, i*-1e-15), последовательность ушла в 0 на 62 шагу.
Фиг.9 Окрестность 0 константы для стартовой точки 0.001 рад
Здесь показано, на какой итерации последовательность пересекла круг с радиусом 2 в зависимости от величины комплексной константы. Шаг . Отметим следующее:
Здесь показан старт последовательности с точки с углом 1⅓π, это одна из точек цикла со стартом в π/3. Цикл состоит из двух точек — ⅔ и 1⅓π. Казалось бы, константа должна разнонаправленно действовать на эти точки, нивелируя саму себя. Но нет, никакой интриги и тут не видно. Куда направлен вектор константы по отношению к первой точке последовательности, туда и “сдувает” траекторию.
Пожалуй, на этом мы закончим с ,
в следующий раз займёмся центральной кардиоидой.
Сегодня мы уже встречались с кардиоидой, есть ли между ними связь или просто совпадение?
А может это сигнал «для тех кто понимает»?
Множество Мандельброта
не уходит в бесконечность.
Содержание
Расширенное определение
Таким образом, вышеуказанная последовательность может быть раскрыта для каждой точки на комплексной плоскости следующим образом:
Если переформулировать эти выражения в виде итеративной последовательности значений координат комплексной плоскости и
, т. е. заменив
на
, а
на
, мы получим:
История множества Мандельброта
Впервые множество Мандельброта было описано в 1905 году Пьером Фату (Pierre Fatou), французским математиком, работавшим в области аналитической динамики комплексных чисел. Фату изучал рекурсивные процессы вида
Начав с точки на комплексной плоскости, можно получить новые точки, последовательно применяя к ним эту формулу. Такая последовательность точек называется орбитой
при преобразовании
Фату нашел, что орбита при этом преобразовании показывают достаточно сложное и интересное поведение. Существует бесконечное множество таких преобразований — своё для каждого значения
. В те времена компьютеров ещё не было, и Фату, конечно, не мог построить орбиты всех точек плоскости, ему приходилось всё делать вручную. Основываясь на своих расчётах, он доказал, что орбита точки, лежащей на расстоянии больше 2 от начала координат, всегда уходит в бесконечность.
Фату никогда не видел изображений, которые мы сейчас знаем как изображения множества Мандельброта, потому что необходимое количество вычислений невозможно провести вручную. Профессор Бенуа Мандельброт был первым, кто использовал для этого компьютер.
Фракталы были описаны Мандельбротом в 1975 году в его книге «Les Objets Fractals: Forme, Hasard et Dimension» («Фрактальные объекты: форма, случайность и размерность»). В этой книге Мандельброт впервые использовал термин «фрактал» для обозначения математического феномена, демонстрирующего столь непредсказуемое и удивительное поведение. Эти феномены рождались при использовании рекурсивного алгоритма для получения какой-либо кривой или множества. Множество Мандельброта — один из таких феноменов, названный по имени своего исследователя.
Взаимодействие с множеством Жюлиа
Фрагмент множества Мандельброта, лежащий в районе его границы
Отсюда понятно, что интересные варианты множества Жюлиа соответствуют точкам, лежащим на границе множества Мандельброта. Точки глубоко внутри образуют простые геометрические фигуры, а внешние выглядят как пыль, окружающая цветные пятна. Некоторые программы, например, Fracint, позволяют пользователю прямо на экране указать точку, для которой необходимо построить соответствующее множество Жюлиа, упрощая поиск красивых изображений.
Множество Мандельброта и само содержит структуры, напоминающие множество Жюлиа: для любого область множества Мандельброта около
напоминает центр множества Жюлиа с параметром
.
Построение множества
Было доказано, что как только модуль окажется больше 2 (или в терминах действительной и мнимой частей
2\!>» />), последовательность станет стремиться к бесконечности. Сравнение
с этим числом (в англоязычной литературе его называют «bail-out») позволяет выделять точки, не попадающие внутрь множества. Для точек, лежащих внутри множества, последовательность не будет иметь тенденции к бесконечности и никогда не достигнет этого числа, поэтому после определённого числа итераций расчёт необходимо принудительно завершить. Максимальное число итераций, после которых число считается попавшим внутрь множества, задается в программе.
Изображение, полученное таким способом, является лишь приближением к реальному множеству Мандельброта. Более качественные результаты можно получать, увеличивая максимальное количество итераций, однако при этом пропорционально вырастает и время расчётов.
Добавление цвета
Строго математически, изображения множеств Мандельброта и Жюлиа должны быть чёрно-белыми. Точка либо попадает внутрь множества, либо нет. Несмотря на это, с помощью компьютера мы можем построить и цветные изображения. Самым распространённым способом является раскрашивание точек снаружи множества в цвет, равный количеству итераций, за которое точка уходит в «бесконечность» или, с точки зрения программы, на определённое расстояние от нуля.
Порядок определения, попадает ли точка внутрь множества (традиционно закрашиваемого чёрным цветом) или нет (закрашивается цветом, зависящим от скорости движения к бесконечности) следующий: на каждой итерации для
вычисляется значение модуля
, которое затем сравнивается с «границей бесконечности» (обычно берётся значение, равное 2). Здесь важно обратить внимание, что уже на данном этапе можно ввести определённую оптимизацию вычислений, если сравнивать не
2>» />, а
4\!>» />, что значительно снизит время расчётов.
Таким образом, если при любом числе итераций, то цвет точки чёрный, в противном случае он зависит от последнего значения
. Значение
, фактически, обозначает скорость движения
в бесконечность, и может быть просто индексом в таблице цветов, или использоваться как параметр в более сложном алгоритме.
Итак, мы получили алгоритм определения, лежит ли точка снаружи множества Мандельброта — это происходит, если она удаляется больше чем на 2 от начала координат. Каким же образом определить, что она лежит внутри множества? Это не так просто и для этого есть много способов. В этом суть проблемы. Если бы всё было по-другому, у нас бы не было столь большого количества разнообразных алгоритмов для построения множества Мандельброта. Самое простое решение — ограничить максимальное количество итераций. Если точка не вышла за указанную границу, можно считать, что она находится внутри множества.
Теоретически, точкам около границы множества нужно больше итераций для ухода в бесконечность, поэтому такие области рисуются заметно дольше. На расстоянии от множества скорость ухода выше, и, соответственно, требуется меньше итераций.
Оптимизация
Таким образом, для точки необходимо вычислить
,
,
.
Если то точка
попадает внутрь множества и закрашивается чёрным цветом, а итеративные вычисления можно пропустить.
Чтобы избежать большого количества итераций для других точек множества, можно применить дополнительную проверку, не попала ли точка в значение, достигнутое ранее другой точкой, что означает повторение её пути и также принадлежность к множеству.
На практике наибольшее уменьшение объёма вычислений даёт трассировка границы: если есть некоторая замкнутая кривая, не пересекающая ось абсцисс, каждая точка которой уходит за предел bailout за одинаковое число итераций или наоборот принадлежит множеству Мандельброта, то любая точка внутри этой кривой будет обладать тем же свойством, и следовательно вся область внутри границы закрашивается одинаковым цветом.
Применение множества Мандельброта в искусстве
Поиск красивых изображений множества Мандельброта — интересное хобби для очень многих людей. Они собирают коллекции таких изображений, причём каждое из них может быть описано небольшим количеством параметров, например, просто координатами центра.
Есть большое количество программ для рисования фракталов, но, несмотря на это, многие люди пишут свои программы для большей гибкости при экспериментах.
Вариации множества Мандельброта
Зачастую, под названием «Множество Мандельброта» понимается только множество, описанное выше. Но на самом деле, любая функция комплексной переменной имеет соответствующее множество Мандельброта, которое также характеризуется наличием или отсутствием связного множества Жюлиа.
.
Для каждого значения ищется соответствующее связное множество Жюлиа, и при его наличии считается, что
попадает внутрь множества Мандельброта.
Эти утверждения можно обобщить и на множества Жюлиа, определяемые больше, чем двумя числами. Например, множество Жюлиа, определяемое тремя действительными числами, имеет соответствующее трёхмерное множество Мандельброта.
Математические факты о множестве Мандельброта
Число итераций очень близко к логарифму электрического потенциала, который возникает, если зарядить множество Мандельброта. Точнее, предел совпадает с этим потенциалом.
Если сильно увеличить множество Мандельброта в граничной точке c и тоже самое проделать с множеством Жюлиа для этого же значения c и в этой же точке, то картины будут асимптотически стремиться друг к другу при все больших увеличениях.
Как устроено множество Мандельброта. Хвост
Хвостом будем считать череду структур к западу от центральной кардиоиды вдоль по отрицательной части вещественной оси. В этой области таится целая бездна деталей. А в деталях, как известно, кроется дьявол … и его малютки.
Данная статья продолжает серию об устройстве множества Мандельброта.
Большой довесок
Так будем называть круг множества Мандельброта с центром в точке (-1, i*0) и радиусом ¼.
Фиг.1 большой довесок
Точка (-1, i*0) забавная, после возведения в квадрат превращается в (1, i*0), после добавления константы становится (0, i*0). На второй итерации возвращается в исходное положение.
Попробуем провернуть тот же трюк, что удался при исследовании центральной кардиоиды — посмотрим куда сходятся траектории, начинающиеся с приграничных точек.
Фиг.2 финальные точки траекторий, стартующих с периметра “большого довеска”
starting circle — круг с центром в (-1, 0 i) и радиусом 0.2495. Честный радиус — 0.25, но точки с него сходятся крайне медленно.
final — по две точки на каждую стартовую. Обладают центральной симметрией относительно точки (-0.5, 0 i). Между углами в исходном круге и param разница в .
Показана только половина соединяющих линий. Шаг — полтора градуса.
param — экспериментально полученная параметрическая кривая , сдвинутая на (-0.5, 0 i).
Вообще, кривая param имеет четыре лепестка — два в вещественной области и два в мнимой. Это звучит странно т.к. мы уже находимся в комплексной плоскости.
Для начала проверим что две чисто вещественные точки переходят друг в друга.
Возьмём минимальную точку (-1¼, 0 i)
В этой области отрицателен. Пусть
.
Тогда param:.
Фактически, мнимые лепестки развернулись и легли поверх действительных.
Если бы не это, пришлось бы ломать голову, почему при мы попадаем на вещественные лепестки, а при
нет.
Есть всё же в этом какая-то натяжка. Осталось ощущение очень мелкой возни и упущенной общей картины. Но по крайней мере теперь у нас в наличии есть оба элементарных блока из которых построено всё множество — круг и кардиоида. Осталось научиться смешивать их в нужных пропорциях.
Малые довески
А что происходит в интервале [-2:-1.25]?
Пройдёмся по этому отрезку и нарисуем предельные траектории, полученные с точек на нём. Поскольку мнимая часть на этом отрезке (для всех точек траектории) отсутствует, получается вполне наглядное представление — стартовая точка против финальных траекторных.
Финальными траекторными будем считать точки, полученные с помощью следующей эвристики.
Здесь для наглядности приведена часть множества Мандельброта в том же масштабе, соответствующая рассматриваемому отрезку.
Имеем дело с бифуркационной диаграммой для последовательности .
Фиг.4 фрагмент бифуркационной ддиаграммы
Каждый раз, когда мы видим на диаграмме “прогалину”, ей соответствует не просто окружность, а миниатюрная копия множества Мандельброта, со своей кардиоидой, большим и малыми довесками…
Фиг.5 фрагмент множества Мандельброта,
центр (-1,4171. 0), длина стороны 0.002668…
Как такое возможно?
Что объединяет все такие структуры?
Чем они отличаются от “довесков”?
Здесь наглядности, стоит привести бифуркационный “спектр” — зависимость длины предельного цикла от константы. Спектр получен с помощью эвристики и имеет значение только для оценки общей картины.
Фиг.6 бифуркационный спектр c шагом в 0.001
Фиг.7 спектр с разными шагами
Чем меньше шаг, тем больше выявляется циклов разной длины. Обратим внимание на характерные “лесенки” — удвоения периодов не только в изначальном каскаде бифуркаций, но и во всех “прогалинах/окнах периодичности”. Глядя на них невозможно не упомянуть теорему Шарковского
Фиг.8 порядок Шарковского
Оператор x y означает, что если существует цикл длины x, обязан быть и цикл длины y. Нижняя строка соответствует начальному каскаду бифуркаций.
Лесенки у окон периодичности — столбцам вплоть до последней строки. С первой строкой, похоже, придётся повозиться.
Но вернёмся к бифуркационной диаграмме.
Вцелом картина неясна, поэтому зацепимся за что-нибудь, поддающееся осмыслению, потянем за эту ниточку и потихоньку распустим весь клубок.
Удачный кандидат быть такой ниточкой — самое большое окно за “горизонтом событий” — [-1.7684:-1.75] с длиной цикла 3. Взглянем поближе на все три непустых фрагмента этого окна.
Фиг.9 Центральная часть большого окна.
Фиг.10 Верхняя часть
Фиг.11 Нижняя часть
Фиг.12 Наложение полинома на бифуркационную диаграмму
Фиг.14 Фазовая диаграмма траекторий циклов длины
3, по X — предыдущее значение, по Y — текущее.
‘pp3center’ — проходит через 0
‘pp3start’ — максимальное значение диапазона, тоже длины 3,
‘pp3fin’ — за пределами диапазона цикл расщепился до длины 24.
Движение везде по часовой стрелке.
Лирическое отступление. Есть такое устойчивое выражение “period three implies chaos” (в порядке Шарковского всё начинается именно с трёх), то что мы наблюдаем проливает свет, почему именно 3.
В самом деле, из этих трёх два являются “обязательной программой” — 0 и начальное значение константы. Любое наблюдаемое окно периодичности содержит (центральную, основную, базовую?) траекторию, проходящую через 0. Почему, это отдельный вопрос, постараемся ответить на него позже. Но где есть 0, на траектории будет и начальная константа. А без этой парочки 3 превращается в 1, меньше которой уже и нет ничего. Т.е. есть циклы длины 1 и 2, которые мы видели и до “горизонта событий” в регулярной части бифуркационной диаграммы. Причем, цикл длины 2 сам является “обязательной программой”, а длины 1 — ещё и вырожденной оной.
А как насчет циклов большей длины? Судя по бифуркационной диаграмме с наложенными модами, если требуется найти цикл длины n, стоит поискать 0 для функции . Это довольно просто проверить, для этого
Фиг.15 возможный фрактал, соответствующий одному из корней моды
Надо еще кстати умудриться попасть в нужный фрактал, там ими всё буквально испещрено. Ведь мод бесчисленное количество и у каждой есть корни, число которых растёт по экспоненте с ростом номера моды. К счастью, размер фракталов при этом уменьшается.
И всё же, как это работает, почему когда мода пересекает 0, появляются фрактальные структуры?
Стартовые константы получены вышеописанным образом из gnuplot.
Фиг.16 Фазовая диаграмма траекторий циклов длины 4, в названии стартовая константа
‘pp4-1,3107’ получен двойной бифуркацией и находится до ‘горизонта событий’.
‘pp4-1.9408’ обход по часовой стрелке
Фиг.17 Фазовая диаграмма траекторий циклов длины 5
Забавно, ‘pp5-1.98542’ получается из ‘pp4-1.9408’ изломом одной грани.
Фиг.18 Фазовая диаграмма траекторий циклов длины 6
‘pp6-1.77289’ получен расщеплением цикла длины 3.
‘pp6-1.99638’ получен дальнейшим изломом грани в ‘pp5-1.99638’
‘pp6-1.75488’ порождает цикл длины 3 т.к. попадает в окно с периодичностью 3, которое имеет приоритет.
Далее мы не будем смотреть на все имеющиеся циклы, с ростом периода число корней моды растёт экспоненциально, да и степени в полиномах возникают такие, что как-то становится тревожно за точность gnuplot. Просто поглядим на субъективно интересное.
Фиг.19 само-непересекающиеся циклы длины 3. 7
Эти циклы разного размера, но имеют близкую родственную связь. Заключается она в том, что всё это циклы с минимальным корнем соответствующей моды.
Аналогичный цикл длины больше 7 отловить не удалось из-за нарастающей потери точности в вычислениях.
Фиг.20 Еще одна серия траекторий с ростом длины циклов по единице.
Это, кстати, вторые снизу минимальные корни.
По-видимому, это (+1) вполне популярная история. Возможно, стоит продолжить.
Фиг.21 Третьи снизу корни мод.
В принципе логика понятна.
Фиг.22 Фазовая диаграмма траектории длины 11.
Здесь хорошо видно, как нарастает число “зубьев”, а также то, что точки фазовой диаграммы находятся на параболе, что логично, учитывая их происхождение.
Однако, и это еще не всё. Встречаются и вот такие жемчужины:
Фиг.23 цикл длины 9 — утроение цикла.
До сих пор мы встречали только удвоение циклов, например, “pp6-1.77289” из “pp3-1.755”.
Фиг.24 удвоение и утроение цикла 3.
Фиг.25 Бифуркационный “спектр” в интересующем нас интервале.
Невозможно не отметить, насколько этот кусочек спектра похож на полный спектр, приведенный выше (Фиг.7). Что еще раз указывает на фрактальную природу происходящего.
Фиг.26 Расщепление цикла 3 на 4, 5, 6 частей
И до кучи, вот так выглядит попадание мимо окна периодичности (если вообще можно попасть мимо окна периодичности), либо очень большой цикл, что в общем то одно и то же.
Фиг.27 псевдо-хаотическое поведение, длинный цикл.
Подводя итоги, нельзя не отметить что данная статья поднимает больше вопросов, чем даёт ответов.
Чем всё же определяется форма и размер больших и малых довесков?
Как связаны между собой моды?
Неужели мы забыли, что у полиномов есть не только вещественные корни?
Не торчат ли здесь уши сферических функций?