Щоб знайти корінь функції f(z), метод Ньютона ітерує
z ← z − f(z)/f′(z). Коли z — комплексне
число, те саме правило прокладає шлях по площині. Для більшості
стартових точок шлях по спіралі сходиться до одного з коренів
полінома.
Басейни притягання
Басейн кореня — це множина всіх стартових точок, які зрештою
сходяться до нього. Кожному кореню ми даємо окремий колір і
забарвлюємо кожен піксель за басейном, до якого він належить, роблячи
його яскравішим за швидкої збіжності (мало ітерацій) і темнішим за
повільної.
Фрактальна межа
Там, де басейни зустрічаються, картина ніколи не заспокоюється:
скільки завгодно близько до точки, що прямує до кореня A, є точки, що
прямують до коренів B та C. Ця межа — фрактал із вражаючою
властивістю: кожна її точка дотикається до всіх басейнів
одночасно.
Задача Келі
У 1879 році Артур Келі розв'язав випадок z² − 1 (межа
басейнів — просто уявна вісь), але виявив, що z³ − 1
"становить значну складність". Ця складність і є фракталом —
структурою, яку неможливо було побачити, доки комп'ютери не навчилися
забарвлювати мільйони пікселів.
Релаксація та хаос
Над- або недорелаксований метод Ньютона використовує
z ← z − a·f(z)/f′(z). За a = 1 маємо
класичний Ньютон; зсуваючи a від 1 (або обираючи поліном
на кшталт z³ − 2z + 2 з притягальними циклами), збіжність
руйнується і відкриваються хаотичні області, що ніколи не сходяться.
Про фрактал методу Ньютона
Метод Ньютона, застосований до комплексних поліномів, породжує одну з найкрасивіших фрактальних структур у математиці. Починаючи від будь-якого комплексного числа z₀, ітерація z ← z − a·f(z)/f′(z) (де a — параметр релаксації, за замовчуванням 1) збігається до кореня f(z) = 0. Забарвлення кожної початкової точки відповідно до того, до якого кореня вона потрапила — і тонування за швидкістю збіжності — розкриває діаграму басейнів притягання. Для степеня n ≥ 3 межі між басейнами є фракталами — множинами Жюліа раціонального відображення N(z) = z − f(z)/f′(z), нескінченно складними і самоподібними на кожному масштабі.
Обирайте між кількома поліномами (включно з «хаотичним» z³ − 2z + 2, що має притягальні 2-цикли), налаштовуйте параметр релаксації та кількість ітерацій, а клацання в будь-якому місці дозволяє наближати вибрану точку. Прогресивний рендерер рядок за рядком оновлює полотно по мірі завершення смуг, щоб ви бачили, як зображення будується в реальному часі. Збережіть улюблений вид фракталу як PNG за допомогою кнопки в панелі керування.
Часті запитання
Як працює метод Ньютона в комплексній площині?
Ітерація Ньютона z ← z − f(z)/f′(z) розроблена для дійсних чисел, але однаково добре працює для комплексних — алгебра ідентична, тільки з комплексною арифметикою. Починаючи з комплексного початкового наближення z₀, послідовність зазвичай спіраллю наближається до одного з коренів полінома. Приголомшлива знахідка полягає в тому, що множина початкових точок, які збігаються до даного кореня (басейн притягання), має фрактальну межу при степені полінома 3 і більше.
Що робить z³ − 2z + 2 «хаотичним»?
Поліном z³ − 2z + 2 має три корені поблизу z ≈ −1,769, 0,885 ± 0,590i, але відображення Ньютона N(z) для цього полінома має притягальні 2-цикли — точки, де ітерація нескінченно перескакує між двома значеннями, не збігаючись до жодного кореня. Ділянки комплексної площини, захоплені цими циклами, виглядають як темні незбіжні зони, а межі між збіжними і незбіжними областями особливо заплутані.
Що робить параметр релаксації a?
Релаксований метод Ньютона використовує z ← z − a·f(z)/f′(z). При a = 1 — це стандартний метод Ньютона з квадратичною збіжністю. Значення a < 1 сповільнюють збіжність, але можуть приборкати розбіжність. Значення a > 1 прискорюють збіжність для деяких точок, але збільшують хаотичну межу, де жоден корінь не досягається. При великому відхиленні a від 1 виникають зовсім нові фрактальні структури.
Що таке корені одиниці і чому вони так часто використовуються?
Корені одиниці n-го степеня — це n розв'язків рівняння zⁿ = 1, рівномірно розташованих на одиничному колі під кутами 2πk/n. Вони є зручними тестовими випадками, бо мають прості точні значення, похідна f′(z) = n·z^{n−1} легко обчислюється, а n-кратна симетрія обертання робить фрактал симетричним. Зміна повзунка степеня від 3 до 9 додає більше коренів і басейнів, збільшуючи складність фракталу.
Чому зображення рендериться прогресивно рядками?
Кожен піксель потребує до maxIter кроків Ньютона (до 80 у цій симуляції), а полотно 480×360 містить ~172 800 пікселів — потенційно мільйони операцій з плаваючою комою. Щоб не блокувати інтерфейс браузера, рендерер обробляє 12 рядків на кадр анімації й передає керування між пакетами. Ви бачите, як фрактал з'являється зверху вниз; зміна будь-якого налаштування скасовує поточний рендер і запускає новий.
Як працює наближення при клацанні?
Кожне клацання перецентровує вигляд комплексної площини на клацнуту точку і вдвічі зменшує масштаб (scale × 0,5), подвоюючи збільшення. Вигляд визначається центром (centerX + centerY·i) і шириною (масштаб у комплексних одиницях). На кожному рівні збільшення та сама ітерація Ньютона виконується з вищою роздільною здатністю — фрактальна структура повторюється на всіх масштабах, оскільки математика є масштабно інваріантною на межі фракталу.
Які кольорові палітри доступні і як вони працюють?
Пропонуються чотири палітри. «Vivid» використовує насичені кольори HSL з відтінками, розподіленими по колірному колі, по одному відтінку на басейн. «Pastel» — менша насиченість для м'якшого вигляду. «Neon» — 100% насиченість для ефекту свічення. «Mono» — відтінки сірого з невеликими зсувами кольору. В усіх паліграх пікселі зі швидшою збіжністю яскравіші, тому межа фракталу — де збіжність найповільніша — виглядає темною і заплутаною.
Який зв'язок між фракталами Ньютона і множинами Жюліа?
Відображення Ньютона N(z) = z − f(z)/f′(z) є раціональною функцією степеня 2n−2 для полінома степеня n. Його множина Жюліа — межа між басейнами притягання — є точно тим фрактальним кордоном, видимим на зображенні фракталу Ньютона. Для z³ − 1 ця множина Жюліа має вимірність Хаусдорфа приблизно 1,29. Множину Мандельброта можна розглядати як параметризацію того, які множини Жюліа є «гарними» (зв'язними) чи «пилоподібними» (типу Кантора).
Чи можна зберегти зображення фракталу?
Так — кнопка «Зберегти PNG» експортує поточний вміст полотна у внутрішній роздільній здатності рендера (до 560×420 пікселів). Зображення захоплює точні кольори пікселів, обчислені ітерацією Ньютона при поточному вигляді, поліномі, палітрі та налаштуваннях релаксації. Для експорту у вищій роздільній здатності потрібно збільшити RW і RH у вихідному коді і дочекатися довшого рендеру.
Метод Ньютона — це класичний алгоритм пошуку коренів рівняння.
Застосований до комплексного многочлена f(z), кожен піксель
на полотні розглядається як стартове наближення z₀ у комплексній
площині, і ітерація виконується на GPU, доки не збіжиться до одного з
коренів. Тоді піксель забарвлюється за тим, до якого
кореня він дійшов — за його басейном притягання.
Як це працює
Кожен піксель відповідає комплексному числу z₀ = x + yi.
Він ітерує z ← z − a·f(z)/f′(z), доки не потрапить у корінь.
Басейн (який саме корінь) задає відтінок; кількість ітерацій до збіжності задає яскравість.
Там, де басейни зустрічаються, результат ніколи не заспокоюється — це і є фрактальна межа.
Ключове рівняння
z ← z − a · f(z) / f′(z) — за a = 1 це
класичний метод Ньютона (квадратична збіжність). Параметр релаксації
a над- або недорелаксує крок і може створювати нові хаотичні,
незбіжні області.
Довільний степінь n — кількість коренів з одиниці, коли обрано zⁿ−1.
Макс. ітерацій — бюджет збіжності на піксель; більше розкриває тонші деталі межі.
Релаксація a — множник кроку; відхиліть від 1 для хаосу.
Палітра — колірна схема для басейнів.
Миша — прокручуйте для масштабу до курсора, тягніть для панорамування, подвійний клік — наближення.
А чи знаєте ви?
У 1879 році Келі розв'язав метод Ньютона для z²−1 (межа — просто
уявна вісь), але виявив, що z³−1 «становить значну складність». Ця
складність і є фракталом — кожна точка на межі басейнів
одночасно дотикається до всіх басейнів.