← Laboratorium Matematyka · eksperyment

Fraktale i liczby zespolone

Fraktal zbiór Mandelbrota

Jedna reguła — z → z² + c — powtarzana w nieskończoność. Punkty, których ciąg nigdy nie ucieka, tworzą czarny kształt. Powiększaj milion razy i dalej: jego brzeg nigdy się nie wygładza, a na krawędziach czekają spirale, koniki morskie i miniaturowe kopie całości.

Srebro
Powiększenie ×1,00Iteracje 250

Wycieczki

Animowane loty w najciekawsze zakątki zbioru · Esc zatrzymuje

Sterowanie

kółko, szczypanie
powiększenie wokół kursora
przeciągnięcie
przesuwanie widoku
dwuklik
powiększenie ×3 (z Shift — pomniejszenie)
kliknięcie
orbita punktu i przypięcie zbioru Julii
+ −
powiększ / pomniejsz
← ↑ → ↓
przesuwanie
Backspace
poprzedni widok
J
zbiór Julii na pełnym ekranie
P
następna paleta (Shift — poprzednia)
Enter
orbita punktu w środku widoku
0
widok startowy
Esc
zatrzymaj lot / zamknij zbiór Julii

Jak to działa?

Jedna reguła, powtarzana bez końca

Każdy punkt płaszczyzny to liczba zespolona c = x + yi, gdzie i² = −1. Zaczynamy od z0 = 0 i w kółko stosujemy tę samą regułę:

zn+1=zn2+c powstaje ciąg z₁ = c, z₂ = c² + c, z₃ = (c² + c)² + c, … — to orbita punktu c

Kwadrat liczby zespolonej liczymy tak: (x + yi)² = x² − y² + 2xy·i. Geometrycznie podniesienie do kwadratu podwaja kąt punktu i podnosi do kwadratu jego odległość od zera — stąd biorą się wszystkie spirale.

Ograniczona czy uciekająca?

Jeśli orbita na zawsze zostaje blisko zera, punkt c należy do zbioru Mandelbrota (na obrazie jest czarny). Wystarczy jednak, że raz |zn| > 2, a ucieczka do nieskończoności jest pewna: dla |c| ≤ 2 mamy wtedy

|z2 + c|≥|z|2 − |c|≥|z|·(|z| − 1)>|z| każdy krok oddala punkt jeszcze bardziej, np. c = 0,3 ucieka już po 12 krokach, a c = −1 skacze w nieskończoność między 0 i −1

Kolor punktu spoza zbioru mówi, jak szybko ucieka. Zwykła liczba kroków daje schodkowe pasy, więc używamy gładkiej (znormalizowanej) liczby iteracji, w której n to krok ucieczki:

μ=n + 1 − log2 ( log2 |zn| ) gdy |z| rośnie do kwadratu, log₂ log₂ |z| rośnie dokładnie o 1 — skoki się znoszą i barwy płyną bez szwów

Samopodobieństwo

Powiększając brzeg, znajdziesz spirale, koniki morskie, gałązki — i wszędzie minizbiory: małe kopie całego kształtu, każda z własnym otoczeniem. To nie są kopie idealne jak w płatku Kocha, tylko „prawie” podobne; mówimy o quasi-samopodobieństwie. Każda bańka przyklejona do dużej kardioidy ma swój okres: w kardioidzie orbita zbiega do jednego punktu, w dużym kole po lewej skacze między dwoma, a z rozgałęzienia anteny nad bańką wychodzi tyle ramion (licząc to, które prowadzi do bańki), ile wynosi jej okres.

Nieskończenie długi brzeg

Brzeg zbioru jest tak poszarpany, że jego długość jest nieskończona, a jego wymiar fraktalny (wymiar Hausdorffa) wynosi dokładnie 2 — tyle, co płaska powierzchnia, choć to tylko „krawędź” (udowodnił to Mitsuhiro Shishikura, 1998). A mimo to cały zbiór mieści się w kole o promieniu 2.

Zbiory Julii — mapa w mapie

Dla ustalonego c możemy startować nie z zera, lecz z każdego punktu z0. Punkty o ograniczonych orbitach tworzą (wypełniony) zbiór Julii. Pierre Fatou i Gaston Julia odkryli ok. 1919 r., że jest tylko jedna z dwóch możliwości: jeśli c należy do zbioru Mandelbrota, zbiór Julii jest spójny (jeden kawałek); jeśli nie — rozpada się w pył nieskończenie wielu oddzielnych punktów (zbiór Cantora). Zbiór Mandelbrota to więc mapa wszystkich zbiorów Julii naraz.

Skąd ta nazwa?

Benoît Mandelbrot (1924–2010) urodził się w Warszawie. Pracując w IBM, w 1980 r. zobaczył na komputerowych wydrukach pierwsze szczegółowe obrazy tego zbioru (bardzo zgrubny rysunek zrobili już w 1978 r. Robert Brooks i Peter Matelski). Słowo „fraktal” wymyślił sam w 1975 r., od łacińskiego fractus — „połamany”. Nazwę „zbiór Mandelbrota” nadali mu Adrien Douady i John Hubbard, którzy zbadali jego najważniejsze własności.

Uproszczenia: program uznaje punkt za należący do zbioru, jeśli przez N kroków nie uciekł (N rośnie z powiększeniem — widać je w liczniku „Iteracje” i można zwiększyć suwakiem „Szczegółowość”). Przy samym brzegu część czarnych pikseli ucieka więc naprawdę dopiero później. Ucieczkę sprawdzamy przy |z| > 1000 zamiast 2 — to nie zmienia, które punkty uciekają, a daje gładsze kolory. Obliczenia wykonuje procesor na liczbach typu double (ok. 16 cyfr znaczących), więc przy powiększeniu ok. 10¹³ obraz się rozpada. Światłocień to sztuczne oświetlenie „z góry” obliczone z pochodnej, a nie cecha samego zbioru.

Fibonacci w zbiorze Mandelbrota

Bąble przyklejone do głównej kardioidy mają adresy: bąbel w punkcie o kącie wewnętrznym p/q (liczba obrotu) ma okres q, a z rozgałęzienia jego anteny wychodzi q ramion. Punkt kardioidy o kącie t to

c=1⁄2 e2πi t − 1⁄4 e4πi t

Między bąblami p/q i r/s największy jest (p+r)/(q+s) — to dodawanie Fareya. Idąc ścieżką

  1. 1/2okres 2
  2. 1/3okres 3
  3. 2/5okres 5
  4. 3/8okres 8
  5. 5/13okres 13
  6. 8/21okres 21
  7. 13/34okres 34

dostajemy okresy 2, 3, 5, 8, 13, 21, 34 — ciąg Fibonacciego. Ilorazy 3/2, 5/3, 8/5, 13/8… dążą do złotej liczby φ ≈ 1,618, a same bąble zbiegają do punktu kardioidy o kącie 1/φ² ≈ 0,381966. Położenia bąbli strona liczy dokładnie metodą Newtona.