Про дослідник множини Жулія
Ця симуляція відтворює множини Жулія в реальному часі на GPU за допомогою фрагментного шейдера WebGL. Для фіксованої комплексної константи c кожен піксель відповідає початковій точці z₀ у комплексній площині та ітерується за квадратичним відображенням z ↦ z² + c. Точки, орбіти яких залишаються обмеженими, утворюють заповнену множину Жулія і відображаються чорним кольором; точки, що виходять за межі, забарвлюються плавним неперервним значенням часу виходу, розкриваючи складну самоподібну межу фракталу.
Повзунки Re(c) та Im(c) миттєво змінюють форму фракталу при варіації константи c, а повзунок «Макс. ітерацій» дозволяє обирати між швидкістю рендерингу та деталізацією межі. Режим «Анімувати c» обертає константу по колу радіусом 0,7885, а пресети дозволяють перейти до відомих форм — дендриту, кролика та пилу Кантора. Окрім краси, множини Жулія є наріжним каменем комплексної динаміки і наочним прикладом детермінованого хаосу.
Поширені запитання
Що таке множина Жулія?
Для фіксованого комплексного числа c множина Жулія — це межа між початковими точками z₀, орбіти яких при ітерації z ↦ z² + c залишаються обмеженими, і тими, що прямують до нескінченності. Симуляція забарвлює область виходу залежно від швидкості розбіжності, залишаючи обмежену заповнену множину чорною.
Як симуляція обчислює зображення?
Кожен піксель є комплексним числом z, і шейдер GPU ітерує z = z² + c до межі «Макс. ітерацій». Якщо модуль z залишається меншим за радіус виходу 256, піксель належить множині і є чорним; інакше його відтінок визначається плавним значенням часу виходу. Виконання цих обчислень для кожного пікселя на GPU забезпечує інтерактивність рендерингу.
Що роблять повзунки Re(c) та Im(c)?
Вони задають дійсну та уявну частини константи c у діапазоні від -1 до 1 з кроком 0,001. Оскільки кожна множина Жулія визначається одним значенням c, переміщення будь-якого повзунка безперервно й у реальному часі перетворює фрактал на зовсім іншу форму.
Яке ключове рівняння лежить в основі симуляції?
Відображення має вигляд z(n+1) = z(n)² + c і застосовується послідовно до початкової точки кожного пікселя. Щоб уникнути смугастості кольорів, симуляція використовує плавний лічильник ітерацій: mu = n + 1 - log(log(|z|)) / log(2), який інтерполює між цілими значеннями часу виходу для неперервного відтінку.
Що робить кнопка «Анімувати c»?
Вона переміщує константу c по колу радіусом 0,7885 у комплексній площині — класична анімація Жулія. Оскільки форма фракталу повністю залежить від c, зображення безперервно розквітає і складається у послідовність споріднених форм по мірі руху точки по колу.
Як множина Жулія пов'язана з множиною Мандельброта?
Множина Мандельброта — це каталог усіх значень c, для яких відповідна множина Жулія є зв'язною, а не розсипаною на незв'язні пилові частки. Згідно з теоремою Дуаді та Габбарда, множина Жулія J(c) є зв'язною тоді і лише тоді, коли c належить множині Мандельброта, тому ці дві множини нерозривно пов'язані.
Що демонструють пресети?
Кожен пресет переходить до відомого значення c. Дендрит (-0,8; 0,156) — розгалужене дерево, диск Зігеля (-0,7269; 0,1889) містить область обертання, кролик (-0,4; 0,6) — кролик Дуаді, квадратичний (0,285; 0,01) дає потовщену спіраль, а пил Кантора (0,45; 0,1428) лежить поза множиною Мандельброта і розпадається на нескінченну кількість крапель.
Чому важливий повзунок «Макс. ітерацій»?
Кількість ітерацій змінюється від 50 до 1000. Точки поблизу межі множини потребують багато ітерацій, щоб з'ясувати, чи виходять вони за межі, тому мале значення розмиває тонкі нитки, а велике — загострює їх ціною швидкості рендерингу. Глибший зум зазвичай вимагає більшої кількості ітерацій для розкриття деталей.
Чи є цей рендеринг фізично або математично точним?
Так, в межах точності скінченної арифметики. Шейдер виконує точну комплексну ітерацію z = z² + c з радіусом виходу 256 і стандартною математикою плавного забарвлення. Єдині наближення — обмежена кількість ітерацій та одинарна точність числа з плаваючою комою, які обмежують глибину зуму до появи артефактів.
Чому межі множини Жулія пов'язані з хаосом?
На межі заповненої множини дві довільно близькі початкові точки можуть мати абсолютно різні долі при ітерації: одна залишається обмеженою, а інша виходить за межі. Така чутлива залежність від початкових умов у поєднанні з повністю детермінованим правилом є визначальною ознакою детермінованого хаосу.
Де застосовуються множини Жулія у реальному світі?
Окрім генеративного мистецтва, теорія ітерацій, що лежить в основі множин Жулія та Мандельброта, використовується в проєктуванні антен, стисненні зображень і сигналів, а також у моделях динамічних систем у фізиці та біології. Вони також є стандартним навчальним прикладом фрактальної геометрії, комплексного аналізу та математики хаосу.