is_реклам:

пошук, категорії та ін. показати ▼

Динамічні фрактали

Динамічні фрактали
автор опубліковано

Для утворення динамічних фракталів використовують нелінійні відображення, які належать до дискретних динамічних систем, тому далі будемо користуватися термінологією динамічних систем: фазовий портрет, атрактор тощо. Відомо, що нелінійні динамічні системи володіють кількома стійкими станами (або, як кажуть, атракторами), причому кожний стійкий стан має деяку область початкових станів, з яких система потрапляє у ці стійкі стани, тобто фазовий простір розбивається на області притягання атракторів. Якщо фазовий простір є двовимірним, то, зафарбовуючи області притягання різними кольорами, можна одержати кольоровий фазовий портрет цієї системи. Змінюючи алгоритм вибору кольору можна одержати складні фрактальні структури з надзвичайними візерунками. Але аналіз нелінійних відображень супроводжується значними труднощами - це можна помітити навіть на прикладі простіших нелінійних відображень, якщо подати його у вигляді одного комплексного відображення.

Одновимірні комплексні відображення породжують найбільш популярні фрактали Жуліа, Мандельброта, Ньютона та ін., які можуть бути побудовані за допомогою примітивних алгоритмів.

У 1918 р. Гастон Жуліа опублікував мемуари про комплексні відображення, але оскільки в цій роботі були відсутні зображення, то робота Жуліа не використовувалася десь півстоліття.

За останні роки інтерес до таких відображень зріс, завдяки, зокрема, красивим графічним зображенням множин Жуліа, побудованих за допомогою примітивних алгоритмів.

Множини Жуліа

одержуються за формулою
z_{k+1}=z^2_k+c, k=0,1,2,...(z=x+iy, c=a+ib, i=sqrt{-1})
де z0<> 0 – різні точки комплексної площини C, с – певна фіксована комплексна точка.

Фрактал Мандельброта

одержується за тією ж ітераційною формулою
z_{k+1}=z^2_k+c, k=0,1,2,...(z=x+iy, c=a+ib, i=sqrt{-1})
але з фіксованим початковим значенням z0= 0 і при різних значеннях с. Ітерації виконуються для кожної стартової точки c прямокутної або квадратної області.

Як відомо, множини Жуліа описуються рекурентним співвідношенням
z_{k+1}=z^2_k+c, k=0,1,2,...(z=x+iy, c=a+ib, i=sqrt{-1})
яке після виділення дійсної та уявної частини перепишеться в вигляді:
\begin{cases}x_{k+1}=x^2_k-y^2_k+a\\y_{k+1}=2x_ky_k+b,k=0,1,2,3,..\end{cases}
відображення при різних a і b дає множину фракталів, які відповідають множині Жуліа.

при клацанні на зображення, можна скачати цю програму

Як видно з формули, фрактали Жуліа симетричні відносно початку координат, якщо b=0, то вони симетричні відносно двох осей (цей факт потрібно використати при написанні програм).

Фрактали Жуліа дають багато чудових графічних зображень, особливо коли при їх побудові використати колір. При побудові кольорових фракталів використовується умова наближення орбіти до атрактора (для фракталів Жуліа – в нескінченність). Колір кожної точки на екрані визначається кількістю ітерацій, потрібних орбіті, щоб наблизитися до атрактора. Якщо використовувати 16 кольорів, то номер кольору можна визначати, наприклад, ще за формулою n mod 16, де n – кількість проведених ітерацій. Оскільки для наближення до атрактора орбіті може бути потрібна велика кількість ітерацій, то в програмі необхідно задати деяке граничне значення кількості ітерацій Kmax, при якому вважаємо, що орбіта підійшла до атрактора.

Такого роду фрактали можна розділити на дві групи: зв'язні та незв'язні. В іншому випадку фрактал Жуліа являє собою незчисленну множину дискретних точок (фрактали такого типу називають "порох Фату" – за ім'ям математика Фату). Якщо фрактал зв'язаний, то він складається з набору ліній, інколи – з єдиної замкнутої кривої, інколи з петель всередині петель тощо.

Зв'язність для фракталів Жуліа залежить від значень параметрів a, b. Мандельброт вказав, як знайти множину параметрів на площині (а,b), для якого фрактал Жуліа зв'язний. Ключ для такої перевірки є таким: потрібно перевірити, чи орбіта, що виходить з точки(а,b), прямує в нескінченність. Якщо ця орбіта прямує в нескінченність, то (а,b) – незв'язний. Множина всіх точок(а,b), для яких орбіта не прямує в нескінченність, складається множину Мандельброта.

Графічна інтерпретація множини Мандельброта дивовижно красива і багатоманітна. Границею цієї множини є фрактал Мандельброта, тому що в границі наявні фрагменти, подібні усьому фракталу.


Фрактали Жюліа та Мандельброта – не єдині динамічні фрактали. Змінивши ітераційну формулу, і написавши відповідну програму, отримаємо інші фрактали. На мові Delphi написана програма для побудови фрактальної множини для ітеративної формули
z_{k+1}=z^3_k+c, k=0,1,2,...(z=x+iy, c=a+ib, i=sqrt{-1})

Початкове значення z0=0 – фіксоване, c – різні точки комплексої площини. Ітерації виконуються для кожної стартової точки c прямокутної або квадратної області. Причому, стартові значення координат точки c – це координати точки зображення.

Після виділення дійсної та уявної частин в першій формулі отримаємо:
\begin{cases}x_{k+1}=x^3_k - 3x_ky^2_k+a \\y_{k+1}= 3x^2_ky_k-y^3_k+b,     k=0,1,2,3,..\end{cases}

при клацанні на зображення, можна скачати цю програму

Побудова фрактальної множини для ітеративної формули
z_{k+1}=z^4_k+c, k=0,1,2,...(z=x+iy, c=a+ib, i=sqrt{-1})

Після виділення дійсної та уявної частин в першій формулі отримаємо:
\begin{cases}x_{k+1}=x^4_k - 6x^2_ky^2_k+y^4_k+a \\y_{k+1}=4x^3_ky_k-4xy^3+b,k=0,1,2,3,..\end{cases}

при клацанні на зображення, можна скачати цю програму

До речі, якщо трохи пофантазувати і в коді змінити формули обчислення координат, отримаємо такі зображення:

x := sin(sqr(xt)) - sqr(yt) + a;
y := 2 * xt * yt + b;

при клацанні на зображення, можна скачати цю програму

x := sin(sqr(xt)) - sin(sqr(yt))/cos(xt) + a;
y := 2 * xt * sin(yt) + b;  

при клацанні на зображення, можна скачати цю програму

P.S. Всі програми розроблені автором, тому за необхідності Ви можете використати коментарі або пишіть через форму зворотнього звязку, щоб отримати додаткову інформацію, наприклад: код прикладів, що наведено на рисунках .

схоже за тегами

Коментарів 2

  1. Роман пише: Відповіcти

    Красота : )

Залишити коментар:

Яндекс цитирования UA TOP Bloggers