algorytm.org

Zbiór Mandelbar

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Zbiór Mandelbar
Ocena użytkowników:***** / 2
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 21 lipca 2009 15:45

Zbiór Mandelbar jest jednym z wielu zbiorów powstałych na podstawie modyfikacji zbioru Mandelbrota. Proces generowania przybliżeń zbioru Mandelbar przebiega identycznie jak w przypadku zbioru Mandelbrota. Różnica polega na wprowadzeniu w tym pierwszym operacji sprzężenia liczby zespolonej. Podczas gdy w przypadku zbioru Mandelbrota ciąg liczb zespolonych z0, z1, z2, ..., dla danego punktu p na płaszczyźnie zespolonej zdefiniowany był następująco:
z_0 = 0\\\\ z_{n+1} = z_n^2 + p
To dla zbioru Mandelbar wprowadza się operację sprzężenia zwrotnego:
z_0 = 0\\\\ z_{n+1} = \bar{z}_n^2 + p
Stąd też bierze się jego nazwa. Do zapisu sprzężenia zwrotnego używamy kreseczki nad liczbą (ang. bar) i stąd też nazwa zbioru Mandelbar. Czasem też, zbiór ten nazywany jest Tricorn (od swojego wyglądu).

Przypomnijmy jeszcze działania na liczbach zespolonych jakie będziemy potrzebować podczas obliczeń. Liczba zespolona z składa się z części rzeczywistej zr oraz części urojonej zi, czyli
z = z_{r} + iz_{i}
Sprzężenie liczby zespolonej definiujemy następująco:
\bar{z} = z_r - iz_i
czyli polega ono na odwróceniu znaku części urojonej, przy czym ma ono niższy priorytet od pozostałych działań i zapis
\bar{z}^n
oznacza, że najpierw liczba z będzie podniesiona do n-tej potęgi, a dopiero na tym wyniku zostanie przeprowadzona operacja sprzężenia, czyli odwrócenia znaku części urojonej.
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
Możliwe jest również generowanie zbiorów Mandelbar wyższych rzędów.
Poniżej znajdują się definicje zbiorów Mandelbar kolejnych rzędów wraz z ich reprezentacją graficzną:

  • Mandelbar (Tricorn)
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^2 + p
    Zbiór Mandelbar (Tricorn)


  • Cubic Mandelbar
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^3 + p
    Zbiór Cubic Mandelbar


  • Quadratur Mandelbar
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^4 + p
    Zbiór Quadratur Mandelbar


  • Penta Mandelbar
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^5 + p
    Zbiór Penta Mandelbar


  • Hexa Mandelbar
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^6 + p
    Zbiór Hepta Mandelbar


  • Hepta Mandelbar
    z_0 = 0\\\\ z_{n+1} = \bar{z}_n^7 + p
    Zbiór Hexa Mandelbar


  • ...


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.

Rząd zbioru:

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiC#MS Visual Studio .net
.cs
.cs
***** / 1
Tomasz LubińskiC/C++Borland Builder 6
.cpp
.cpp
***** / 1
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 1
Tomasz LubińskiJavaScriptFirefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera 9.5+, IE 9.0+
.js
.js
***** / 0
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 26 sierpnia 2012 14:14
Dodaj komentarz