piątek, 20 stycznia 2012

Atraktory, czyli chaos na ekranie

Atraktor De Jong
Dawno temu, na początku 2 klasy technikum zainteresowały mnie atraktory - w bardzo prosty sposób można było uzyskać nietrywialne i ładne chaotyczne kształty. Wystarczyło zaimplementować jakiś wzorek, ustawić punkt początkowy i parametry, a następnie iteracyjnie wyznaczać i rysować punkty :)
Nawet z przyjacielem zrobiliśmy program umożliwiający interakcje z fraktalami i atraktorami (obracanie, przesuwanie, animowanie itd).

Mam zamiar powrócić do tego tematu i podejść do tego z wiedzą, która od tamtej pory nabyłem a tymczasem wrzucam kilka wzorów skopiowane z mojej starej aplikacji ;)


0x1 Peter De Jong [2D]

Jeden z najładniejszych i najłatwiejszych do zaimplementowania atraktorów. Twórcą jest Peter De Jong. Jego wygląd można zmieniać przy pomocy 4 parametrów: a,b,c,d. Bazuje na funkcjach trygonometrycznych sinus oraz cosinus, a jego wzór wygląda następująco:
$$x_{n+1} = \sin(a \cdot y_n) - cos(b \cdot x_n)$$$$y_{n+1} = \sin(c \cdot x_n) - cos(d \cdot y_n)$$
Najpopularniejszy zestawy parametrów to:
a = -1.85 b = 1.48 c = -1.55 d = -1.87
a = 1.4, b = -2.3, c = 2.4, d = -2.1
a = 2.01, b = -2.53, c = 1.61, d = -0.33
a = -2, b = -2, c = -1.2, d = 2

Tutaj stary filmik pokazujący wpływ zmiany parametrów:

0x2 Clifford [2D]

Ponownie, oparty na funkcjach trygonometrycznych i jest podobny we wzorze do atraktora De Jong'a. Wyrażony jest wzorem:
$$x_{n+1} = \sin(a \cdot y_n) + c \cdot \cos(a \cdot x_n)$$$$y_{n+1} = \sin(b \cdot x_n) + d \cdot \cos(b \cdot y_n)$$
Najpopularniejsze zestawy parametrów to:



a = 1.5 b = -1.8 c = 1.6 d = 0.9
a = -1.4, b = 1.6, c = 1, d = 0.7
a = 1.1, b = -1, c = 1, d = 1.5

0x3 Ikeda [2D]

Jest to atraktor, który wymaga zalewie jednego parametru. W matematyce, przez odwzorowanie Ikedy rozumie się układ dynamiczny dyskretnego czasu o wzorze:

$$x_{n+1} = 1 + u \cdot (x_n \cdot \cos t_n – y_n \cdot \sin t_n)$$$$y_{n+1} = u \cdot (x_n \sin t_n + y_n \cdot \cos t_n)$$$$t_n= 0.4 - \frac{6}{1 + x^2_n + y^2_n}$$

Przykładowy zestaw parametrów:
u = 1
u = 0.9999
u = 0.9

0x4 Pickover [3D]

Clifford A. Pickover zgłosił ten dynamiczny system tworzący trójwymiarowy atraktor. Jego cechą charakterystyczną jest to, że bardzo często punkty nie skupiają się w jednym, czy kilku punktach (czyli atraktor „nie zanika” na chwilę), ale bardziej chaotycznie. Jego wzór wygląda następująco:
$$x_{n+1} = \sin(a \cdot y_n) - z_n \cdot \cos(b \cdot x_n)$$$$y_{n+1} = z \cdot \sin(c \cdot x_n) – cos(d \cdot y_n)$$$$z_{n+1} = \sin(x_n)$$
Przykładowy zestaw parametrów to:
a = 1 b = 1.8 c = 0.71 d = 1.51

0x5 Lorenz [3D]

Przedstawiony przez Edwarda Lorenza w 1963 układ trzech nieliniowych równań różniczkowych modelujący w możliwie najprostszy sposób zjawisko konwekcji termicznej w atmosferze. Dla pewnego zbioru parametrów układ zachowuje się chaotycznie, a wykres zmiennych w przestrzeni fazowej przedstawia dziwny atraktor - atraktor Lorenza.
Atraktor Lorenza jest bardzo ciekawy i ładny - wyglądem przypomina 2 spiralne galaktyki połączone ze sobą lub motyla. Wzór układu wygląda następująco:
$$x_{n+1} = x_n + d \cdot a \cdot (y_n - x_n)$$$$y_{n+1} = y_n + d \cdot (x_n \cdot( b - z_n) - y_n)$$$$z_{n+1} = z_n + d \cdot (x_n \cdot y_n - c \cdot z_n)$$
Bardzo często określa się parametr a jako liczbę Prandtla, b zaś jako liczbę Rayleya, a na ogół a,b,c > 0. Chaotyczne zachowanie często objawia się dla b = 28.
Przykładowe parametry:
a = 10 b = 28 c = 8/3 d = 0.001
a = 10, b = 28, c = 8/3, d =0.01
a = 15, b = 10, c = 8/3, d =0.001
a = 28, b = 46.92, c = 4, d =0.01

0x6 Wielomian rodzaju A [3D]

Okazuję się iż przy pomocy wielomianów można tworzyć interesujące atraktory (po ang. polynomial type A). Typ A jest najprostszą odmianą, wymaga zaledwie 3 parametrów, a wzór wygląda następująco:

$$x_{n+1} = a + y_n - z_n \cdot y_n$$$$y_{n+1} = b + z_n - x_n \cdot z_n$$$$z_{n+1} = c + x_n - y_n \cdot x_n$$


Przykładowy zestaw parametrów to:
a = 1.586 b = 1.124 c = 0.281

Animacja:

0x7 Rossler [3D]

Mimo iż nie należy do najbardziej znanych atraktorów to rysuje intrygujące kształty. Twórcą tego systemu jest Otto Rossler, który odkrył go podczas pracy nad kinetyką chemiczną. System jest opisany przy pomocy 3 nieliniowych równań różniczkowych:
$$x_{n+1} = x_n + d \cdot (-y_n - z_n)$$$$y_{n+1} = y_n + d \cdot (x_n + a \cdot y_n)$$$$z_{n+1} = z_n + d \cdot (b + zn \cdot (x_n - c))$$
Przykładowy zestaw parametrów to:
a = 0.2 b = 0.2 c = 5.7 d = 0.05


Oczywiście najlepiej eksperymentować - z parametrami, wzorami - i szukać ciekawych kształtów :)

Brak komentarzy:

Prześlij komentarz