Strona głównaArtykułyZbiór Julia

Zbiory Julia: Złożone dynamiki i połączenie z zestawem Mandelbrota

Jedna iterowana formuła, z² + c, dzieli płaszczyznę zespoloną na punkty uciekające i ograniczone — łącząc każdy zbiór Julia z pojedynczym punktem w zestawie Mandelbrota.

mysimulator teamZaktualizowano — czerwiec 2026≈ 7 min czytania▶ Otwórz symulację

Jedna wzór, powtarzana nieskończenie often

Oba zestawy Julia i Mandelbrot pochodzą z tego samego absurdymaximy krótkiego przepisu: wybierz liczbę zespoloną z, wielokrotnie podstaw ją za z² + c, a następnie obserwuj, co się stanie. Dla zestawu Julia dla ustalonej parametru c skanuj płaszczyznę punktów początkowych z₀ i pytaj o każdy z nich, czy jego orbita pozostaje ograniczona w nieskończoność lub w końcu ucieka do nieskończoności. Dla zestawu Mandelbrot ustawić punkt początkowy na z₀ = 0 i skanować płaszczyznę parametrów c, zadając tę samą pytanie o ucieczkę dla każdego z nich.

z₀ = (starting point, Julia)  or  0 (Mandelbrot)
z_{n+1} = z_n² + c
if |z_n| > 2 for some n, the orbit escapes — it will diverge to infinity

Algorytm czasu ucieczki

W praktyce żaden komputer nie iteruje nieskończenie długo. Symulacja ogranicza liczbę iteracji do pewnej maksymalnej (kilka setek iteracji), a dla każdego piksela iteruje wzór aż do momentu, gdy moduł z przekroczy wartość 2 — poza tą promieniem orbita jest dowcipnie odbierana jako skierowana ku rozbieżności. W przypadku osiągnięcia maksymalnej liczby iteracji punkt uznawany jest za należący do zbioru ograniczonego. Kolorowanie każdego piksela uciekającego według ilości iteracji, w których zaszedł, a nie jednolitego czarno-białego koloru, sprawia, że granica staje się gładka i bogato odcieniowa, jaką pozna każdy.

for each pixel (x, y):
  z = complex(x, y)          // Julia: fixed c, varying z0
  for n in 0..maxIter:
    if |z| > 2: colour(pixel, n); break
    z = z*z + c
  else: colour(pixel, "in set")
demo na żywo · powiązana symulacja● LIVE

Dlaczego te dwa zestawy są powiązane

Połączenie nie jest przypadkowe: dla danej c, zbiór Julia jest połączony (jedna cała kropka) dokładnie wtedy, gdy orbita 0 pod działaniem funkcji z² + c pozostaje ograniczona — inaczej mówiąc, dokładnie wtedy, gdy sama wartość c należy do zbioru Mandelbrota. Wybierz c z głębokiej części zbioru Mandelbrota i jego zbiór Julia jest jednym połączonym kształtem; wybierz c z zewnątrz, a zbiór Julia rozpadnie się na nieskończoną, niepołączoną szpic brokatową punktów, technicznie nazywaną zborem Cantora. To dlatego klikanie wokół zbioru Mandelbrota, aby wybrać c, jak pozwala symulacja, jest rzeczywiście wybieraniem, który z dwóch jakościowo różnych rodzin zbiorów Julia zobaczysz.

Samoszybocznosc bez powtarzania

Przylatywanie do każdego z zestawów nigdy nie osiąga powtarzającego się wzoru, jak to by było w przypadku regularnej wzorowanki. Ponieważ iteracja jest tym samym nieliniowym mapowaniem stosowanym na każdym poziomie skali, struktury blisko granicy odzwierciedlają całe shape w małych skalach, lekko inaczej kazdy raz — to charakterystyczne oznakowanie granic fraktalnych i powod, dlatego oba zestawy wydają się nieskończenie szczegółowe niezależnie od tego, jak daleko zaznaczysz.

Często zadawane pytania

Jak jest rzeczywista relacja między zbiorem Julia a zbiorem Mandelbrot'a?

Zbiór Mandelbrot'a to mapa parametrów c: dla każdego c pytasz, czy zbiór Julia wygenerowany z tego c stanowi jedno połączone całości lub rozproszone puch. C wybrany z wnętrza zbioru Mandelbrot'a zawsze daje zbiór Julia połączony; jeśli c jest wybrane z zewnątrz, zawsze daje zbiór Julia rozłączny, podobny do puchu.

Dlaczego niektóre zbiory Julia są solidnymi kulami, a inne rozproszonej puchem?

To zależy tylko od tego, czy orbita 0 pod działaniem funkcji z² + c pozostaje ograniczona (c wewnątrz zbioru Mandelbrot'a, połączony zbiór Julia) lub ucieka do nieskończoności (c poza zbiorem, rozłączny puch). Nie ma niczego pośrodkowego — każdy zbiór Julia jest jedno lub drugie.

Dlaczego test ucieczki używa okręgu o promieniu 2?

Można udowodnić, że raz |z| przekroczy 2 pod działaniem tej konkretnej funkcji, to wartość jest gwarantowanym zwiększeniem się bez ograniczeń na każdym kolejnym kroku, więc orbita nigdy nie wróci — 2 jest najmniejszym promieniem dla którego ten garantium zachodzi, co sprawia, że jest to najtańszy bezpieczny próg.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Julia Set Fractal Explorer — Interactive Complex Dynamics i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Julia Set Fractal Explorer — Interactive Complex Dynamics

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)