Wpisany przez Tomasz Lubiński,
21 sierpnia 2008 16:27
Na podstawie zbioru Julii definiuje się zbiory Julii wyższych rzędów. Proces generowania przybliżeń takich zbiorów przebiega identycznie jak w przypadku zbioru Julii. Modyfikacji podlega jedynie sposób generowania ciągu liczb zespolonych z0, z1, z2, ..., dla danej stałej c oraz danego punktu p
na płaszczyźnie zespolonej. Dokładnie rzecz biorąc zmienia się jedynie stopień potęgi użytej we wzorze na ciąg.
Poniżej znajdują się definicje zbiorów Julii kolejnych rzędów wraz z ich reprezentacją graficzną dla wartości parametru c = -0.123 + 0.745i (the Douady's Rabbit Fractal):
Przypomnijmy jeszcze działania na liczbach zespolonych jakie będziemy potrzebować podczas obliczeń. Liczba zespolona z składa się z częsci rzeczywistej zr oraz częsci urojonej zi, czyli
Poniżej znajdują się definicje zbiorów Julii kolejnych rzędów wraz z ich reprezentacją graficzną dla wartości parametru c = -0.123 + 0.745i (the Douady's Rabbit Fractal):
- Julia
z_0 = p\\\\ z_{n+1} = z_n^2 + c
- Cubic Julia
z_0 = p\\\\ z_{n+1} = z_n^3 + c
- Quadratur Julia
z_0 = p\\\\ z_{n+1} = z_n^4 + c
- Penta Julia
z_0 = p\\\\ z_{n+1} = z_n^5 + c
- Hexa Julia
z_0 = p\\\\ z_{n+1} = z_n^6 + c
- Hepta Julia
z_0 = p\\\\ z_{n+1} = z_n^7 + c
- ...
Przypomnijmy jeszcze działania na liczbach zespolonych jakie będziemy potrzebować podczas obliczeń. Liczba zespolona z składa się z częsci rzeczywistej zr oraz częsci urojonej zi, czyli
z = z_{r} + iz_{i}
Mnożenie definiujemy następująco:
a * b = (a_r*b_r - a_i*b_i) + i(a_r*b_i + a_i*b_r)
Dodawanie definiujemy następująco:
a + b = (a_r + b_r) + i(a_i + b_i)
Moduł z liczby zespolonej definiujemy następująco:
|z|=\sqrt{z_{r}^{2}+z_{i}^{2}}
dlatego też w praktyce warunek |z| < 2 zastępuje się równoważną nierównością
z_{r}^{2}+z_{i}^{2} < 4
Pozbywamy się tutaj czasochłonnego obliczania pierwiastka kwadratowego.Przykład w JavaScript:
Zaznaczając obszar uzyskasz jego powiększony obraz. Kliknięcie prawym klawiszem (bądź dotknięcie dwoma palcami na urządzeniach z ekranem dotykowym) spowoduje powtórne pokazanie całego zbioru.
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C# | MS Visual Studio .net | .cs | .cs | ***** / 1 |
Tomasz Lubiński | C/C++ | Borland Builder 6 | .cpp | .cpp | ***** / 2 |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 1 |
Tomasz Lubiński | JavaScript | Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+ | .js | .js | ***** / 0 |
Poprawiony: 26 sierpnia 2012 14:03