Множина Мандельброта

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Множина Мандельброта.
Колір відповідає швидкості зростання Zn

Множина мандельброта — обмежена та зв’язна множина на комплексній площині, межа якої утворює фрактал. Названа на честь Бенуа Мандельброта, який вивчав і популяризував її.

Зміст

[ред.] Поетично

Візьмімо точку, назвем її Z, що лежить на комплексній площині.
І нехай Z_1 буде Z^2+C
І Z_2 буде Z_1^2+C
І Z_3 буде Z_2^2+C і так далі
Якщо послідовність з Z завжди залишається
Близько до Z і ніколи не відхиляється геть
Тоді точка C належить множині Мандельброта.
Пісня про множину Мандельброта [1]

[ред.] Формально

Сукупність елементів c поля комплексних чисел, для яких послідовність:\{z_n:n \ge 0\}, що визначена ітераційно за правилом

z_{n+1}=z_n^2+c, де z_0=0 \,

задовольняє умову

 \sup_{n \in \mathbb N}|z_n|<\infty

називають множиною Мандельброта.

Комплексні числа можна трактувати як точки на площині. Тоді множину Мандельброта можна побудувати у просторі \mathbb R^2.

[ред.] Як намалювати?

Варто зауважити, що якщо Z вийде за межі комплексного кола радіусу 2, то вже ніколи не повернеться назад.

Тому варто включати в множину Мандельброта лиш ті точки, що не вийшли за межі кола протягом певного числа ітерацій.

Функція мовою Python що за координатами точки дає номер кольору. Вся арифметика комплексна (крім лічильника циклу звісно).

def manfunc(x,y):
        z=0+0j 
        c=complex(x,y)
        i=0
        while abs(z)<2:
                z=z*z+c
                i+=1
                if i>10: break # Константу можна міняти. Чим більша - тим краще, більше кольорів, але довше рахує.
        return i

Те саме в дійсних числах:

def manfunc(x,y):
        zx=0
        zy=0
        i=0
        while zx*zx+zy*zy<4:
                zx1=zx*zx-zy*zy+x
                zy=2*zx*zy+y
                zx=zx1
                i+=1
                if i>imax: break 
        return i

Як номер кольору можна використовувати число (i mod n), i<imax де imax — задана максимальна кількість ітерацій, n — кількість використаних кольорів. Ті ж точки, для яких i=imax, залишаються чорними, вони і належать до множини Мандельброта.

[ред.] Див. також

[ред.] Зноски

  1. Jonathan Coulton Mandelbrot Set (mp3 теж можна скачати безплатно)