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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Множина Мандельброта.
Колір відповідає швидкості зростання 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 теж можна скачати безплатно)