Walidatory
Stronę najlepiej oglądać w przeglądarce Firefox validhtml
validcss
MoĹźesz pomĂłc
pajacyk

Fraktale

Pojęcia wstępne

Liczby zespolone

wykres liczb C

Już w szkole podstawowej poznaliśmy liczby rzeczywiste. Każdą taką liczbę można było utożsamić z punktem na prostej. Dla matematyków były one jednak niewystarczające do łatwego przedstawienia pewnych pojęć. Dlatego wprowadzili liczby zespolone. Liczba zespolona to nic innego, jak dwie liczby rzeczywiste połączone ze sobą (para liczb rzeczywistych). W tym przypadku, każdą taką liczbę można traktować także jako punkt, lecz ty razem na płaszczyźnie. Zapis liczby zespolonej z w postaci algebraicznej wygląda tak:

z = a + b*i

gdzie a oraz b to zwykłe liczby rzeczywiste. Liczba a nazywa się częścią rzeczywistą (oznaczaną także przez Re(z)), a liczba b częścią urojoną (Im(z)). Litera i oznacza jednostkę urojoną. Bardzo ważne jest to, iż i 2 = -1 (lub w równoważnej postaci: sqrt(-1) = i ).

Definicja

Fraktal
jest to obiekt geometryczny posiadający cechę samopodobieństwa, którego wymiar nie jest liczbą całkowitą.

Samopodobieństwo oznacza, że część obiektu podobna jest do całości. Jest to cecha charakterystyczna dla obiektów występujących w przyrodzie. Liść paproci jest małą kopią całej paproci. Cecha ta odróżnia obiekty otaczające nas od tradycyjnych kształtów geometrycznych (trójkąta, koła, okręgu). Te ostatnie przy dużym powiększeniu tracą swoje własności, np.: nieskończone powiększenie wycinka okręgu jest odcinkiem, który nie ma własności okręgu. Pojęcie wymiaru obiektu geometrycznego jest znane chyba wszystkim w sposób intuicyjny, wymiar odcinka to 1, wymiar kwadratu to 2 itd. Ten rodzaj wymiaru nosi nazwę wymiaru topologicznego i przyjmuje wartości naturalne. Natomiast wymiar, o którym mowa w definicji fraktala, służy opisowi stopnia "chropowatości" obiektu geometrycznego i jest znany jako wymiar Hausdorffa-Besicovitcha. W celu lepszego zrozumienia tego pojęcia przyjrzyjmy się dwóm przykładowym obiektom: domkniętemu wycinkowi okręgu i łamanej. Wymiar topologiczny obu tych obiektów jest równy 1, lecz w sensie wymiaru Hausdorffa-Besicovitcha wymiar łamanej jest większy, ponieważ łamana lepiej "zapełnia" przestrzeń niż gładki wycinek okręgu, a jednocześnie gorzej niż dwuwymiarowa (w sensie topologicznym) powierzchnia. W takim przypadku ma więc sens wymiar zawarty między wartościami 1 i 2.

Fraktale mają dziwne własności, których nie posiadają zwyczajne obiekty. Przykładem może tu być Krzywa Helge von Kocha, która jest łamaną o nieskończonej długości, zajmującą ograniczoną powierzchnię.

Istnieje bardzo wiele typów fraktali: zbiory Mandelbrota, zbiory Julii, fraktale IFS, dziwne atraktory. Tutaj opiszę w skrócie:

  1. zbiory Mandelbrota
  2. zbiory Julii
  3. fraktale IFS

Zbiory Mandelbrota

Rozważmy wielomian drugiego stopnia

L(z) = z2 + c

zależny od zespolonego parametru c. Przy zmianie wartości parametru c zmianiają się również własności ciągu

{z0, z1, z2, z3, z4, z5, ...}, gdzie zn+1 = (zn)2 + c.

Punkty płaszczyzny R2, dla których ciąg {zn} pozostaje w ograniczonym obszarze (nie zbiega do nieskończoności), tworzą zbiór Mandelbrota (nazwa pochodzi od odkrywcy Benoit'a Mandelbrot'a).

Oczywiście zamiast wielomianu 2-go stopnia można rozpatrywać wielomiany wyższych stopni, otrzymując inne zbiory Mandelbrota.

Algorytm rysowania zbioru Mandelbrota (jeden z kilku)

Dla kazdego punktu ekranu monitora generowany jest ciąg {zn} wg podanego wyżej wzoru (współrzędna x punktu ekranu przyjmowana jest jako część rzeczywista parametru c, współrzędna y, jako część urojona). Gdy po n iteracjach n-ty element ciągu bedzie (co do modułu) mniejszy od pewnej zadanej stałej Zmax, punkt dla którego wyznaczany był ciąg {zn} zostaje zamalowany na pewien kolor (zwykle czarny), co oznacza, iż należy on do zbioru Mandelbrota. Gdy element ciągu przekroczy wartość Zmax, punktowi nadawany jest odpowiedni kolor zależny od tego, jak szybko ciąg {zn} opuścił obszar ograniczony przez stałą Zmax.

Wybrane fragmenty zbioru Mandelbrota:

Mandelbrot
wzór: zn+1 = (zn)2 + c
lg = 0.1573485988986549 - 0.6386696070051662i
pd = 0.1573549290823055 - 0.6386743546429041i
Mandelbrot
wzór: zn+1 = (zn)2 + c
lg = -0.7667378931198545 - 0.0952573093393493i
pd = -0.7639239111315679 - 0.0973677958305643i
Mandelbrot
wzór: zn+1 = (zn)2 + c
lg = 0.1573514147176518 - 0.6386718989149205i
pd = 0.1573514876277578 - 0.6386719535975000i
Mandelbrot
wzór: zn+1 = (zn)3 + c
lg = 0.5491371736777534 + 0.2928190153615486i
pd = 0.5491375624066316 + 0.2928187238148899i
Mandelbrot
wzór: zn+1 = (zn)3 + c
lg = 0.2062155799947762 + 0.2062174245363627i
pd = 0.8765744181564329 + 0.8765730347502431i
Mandelbrot
wzór: zn+1 = (zn)3 + c
lg = 0.6024111951471199 + 0.5712756218127641i
pd = 0.6024410616361788 + 0.5712532219459699i

LEGENDA: lg = współrzędna lewego górnego rogu fraktala
pd = współrzędna prawego dolnego rogu fraktala

Zbiory Julii

Algorytm rysowania zbioru Julii (jeden z kilku)

Algorytm ten jest podobny do algorytmu stosowanego do wyznaczania zbioru Mandelbrota. Jedyna różnica polega na tym, iż parametr c jest stały, a jako pierwszy wyraz ciągu {zn} przyjmuje się współrzędne punktów płaszczyzny dla każdego piksela.

Zbiory Julii dla wybranych punktów c:

Julia
wzór: zn+1 = (zn)2 + c
c = -0.184 - 0.656i
Julia
wzór: zn+1 = (zn)2 + c
c = -0.752 - 0.06i
Julia
wzór: zn+1 = (zn)3 + c
c = -0.393334667 - 0.000981462i
Julia
wzór: zn+1 = (zn)3 + c
c = 0.028000971 + 0.771229535i

LEGENDA: c = punkt, dla którego otrzymano zbiór Julii

Fraktale IFS (Iterated Function System)

Wprowadzenie

Odwzorowanie afiniczne na płaszczyźnie
jest to przekształcenie, które punktowi (x,y) przyporządkowuje punkt (x',y') w następujący sposób:
x' = ax + by + e
y' = cx + dy + f
gdzie a, b, c, d, e oraz f to parametry rzeczywiste.
Odwzorowanie zwężające
jest to odwzorowanie powodujące zmniejszenie rozmiarów przekształcanych figur.
Dowolna figura geometryczna poddana przekształceniu afinicznemu może zostać:
  1. przesunięta
  2. rozciągnięta lub ściśnięta w pewnym kierunku
  3. powiększona lub zmniejszona
  4. obrócona o pewien kąt
  5. lustrzanie odbita względem pewnej osi.

Wszystkie te geometryczne przekształcenia zależą od sześciu parametrów a, b, c, d, e, f.

Algorytm generowania fraktali IFS

Aby zdefiniować fraktal IFS, należy podać parametry a, b, c, d, e, f dla k (k > 1) zwężających odwzorowań afinicznych. Następnie tworzy się ciąg punktów:

(x0,y0), (x1,y1), (x2,y2), ..., (xn,yn), ...,

Punkt (x0,y0) jest dowolnym punktem płaszczyzny. Losujemy teraz jedno z k odwzorowań. Punkt (x1,y1) jest obrazem punktu (x0,y0) przekształconego przez wylosowane odwzorowanie. W ten sam sposób tworzymy następne wyrazy ciągu. Każdy wyraz jest obrazem poprzedniego, przekształconego przez wylosowane odwzorowanie. Aby otrzymać obraz fraktala IFS, wystarczy zapalać piksel o otrzymanych każdorazowo współrzędnych.

Przykładowe fraktale IFS

Otrzymany fraktal Parametry odwzorowań Prawdopodobieństwo
wylosowania
a b c d e f
ifs 0.5 0 0 0.5 -3 -2 0.3335
0.5 0 0 0.5 3 -2 0.3335
0.5 0 0 0.5 0 3.196152 0.333
ifs 0.5 0.288675 0.288675 -0.5 -4.0 0.0 0.5
0.5 -0.288675 -0.288675 -0.5 4.0 0.0 0.5
© 2005–2017 by Jacek Kurzyca        Wszelkie prawa zastrzeĹźone.do gĂłry
>0.0 0.5 0.5 -0.288675 -0.288675 -0.5 4.0 0.0 0.5
© 2005–2017 by Jacek Kurzyca        Wszelkie prawa zastrzeĹźone.do gĂłry