Kérésre válogattam még a régi képeimből. Nem művészi cél vezérelte a létrehozásukat, csupán látni szerettem volna, hogy különböző fizikai rendszerek fázisterei milyen geometriai változatosságot mutatnak - mivel a tanulmányokból "csupán" bizonyos karakterisztikáikat lehet megérteni, ám jó minőségű, nagy felbontású képeket ritkán találni bennük.
Több féle rendszert szimuláltam. Példa bifurkációs fraktálok generálására használt rendszerekre: két lejtő közt pattogó labda, Standard map, Logistic map, kettősinga, csöpögő csap. Példa komplex számsíkon ábrázolt fraktálok rendszereire (IFS fractals): Mandelbrot-halmaz, Burning ship, Burning bird.
Játszottam a fenti rendszerek csatolásával (2 vagy 3 azonos, ill. különböző rendszerrel), a csatolási együttható szinuszos, random vagy egyéb módon történő perturbálásával, egyéb paraméterperturbációkkal, illetve zaj beinjektálásával. Egyenletek a Fractalforums-on, bkercso név alatt...
A számításigényesebb képek akár 1-2 hétig is készültek, a gyorsabbak 10..60 percet vettek igénybe egy ~10 évvel ezelőtti átlagos gépen (Core2Duo).
A kettősinga legnagyobb fázistérképe 12 magon készült (12x2,67GHz) 1 héten át, saját, optimalizált adaptív dt lépésközzel.
Elsőnek nézzük meg, hogyan születik egy bifurkációs fraktál! Vegyük a lejtők közt pattogó labdát! Látszik, hogy ez egy kaotikus rendszer: ha kissé eltérő helyről ejtjük le, akkor néhány pattanás után már teljesen másképp fog mozogni:
Ilyen rendszerek viselkedéséből bifurkációs fraktált úgy kaphatunk, hogy pl. a vízszintes tengelyen valamely kiindulási paramétert változtatjuk - pl. a labda kezdősebességének iránya és a lejtő által bezárt szöget -, míg a függőleges tengely mentén mindig teszünk egy pontot, amikor egy kiválasztott renderelési kritérium teljesül - pl. amikor a labda megpattan, ábrázoljuk a sebességének irányát.
Pár kép a labdáról. Az első kettőnél megadtam a zoomolási sort, hogy lássuk, hova nagyítottam bele:
Példa olyan bifurkációs fraktálra, amelynek egynél több attraktora van. Az összes attraktor feltérképezéséhez minden pixeloszlop generálása során többször kell elindítani a rendszert, a függőleges tengely mentén ábrázolt paraméter kezdőértékét minden indításkor megváltoztatva:
Az ilyen többtrajektóriás rendszerek sajátossága, hogy a trajektóriák sokszor sávokra szaggatják a fraktált: amikor a rendszer az egyik attraktor körül jár, nem ugrik át egy másikra:
A klasszikus bifurkációs alakzat olyan elmosódott részekben is felfedezhető, amelyekben nem is várnánk! (Egyébként is jellemző a fraktálgenerálásra, hogy az intuitív gondolkodás rendre csődöt mond. Mire az ember megírja a generátorprogramokat, nagyjából elkezd képet alkotni róla, mi is az a skálafüggetlenség. )
Elmosódott képeket legkönnyebben paraméter-perturbációval kaphatunk:
Ezt kauzalitásosnak neveztem, de már bele kéne túrni a forráskódba, hogy megtudjam, mi is történt...
A bevett logaritmikus helyett hiperbolikus színezést használtam:
Valamiféle "paraméterfelcserélést" alkalmaztam. Talán iterációnként felcseréltem 2 paramétert...
A bifurkációs "alapábra", a Logistic map bifurkációs helyeinek eloszlása. A kép története, hogy a falra kitehető, nagy felbontású kép elkészítéséhez írtam egy vonalvastagító függvényt - hogy távolról is látni lehessen a vonalakat -, amit a lenti képhez eltúloztam.
Az utolsó ilyen típusú fraktál: a kettősinga fázistere, biz. elfelejtett paraméter értéke alapján színezve:
Mezei Mandelbrot-halmaz abból az időből, amikor örültem, hogy végre elkészült a fraktálgenerátorom - amit Pascalban írtam. Vagyis az irodalmazás első hullámának és a programozás felelevenítésének elvégzése utánról.
Minden fraktálból a generálása után színezőalgoritmussal alkotunk képet. A fraktálokat először .txt fájlokba írom. Alant egy ilyen nyers fraktál text-fájlja látható az IrfanView-val megjelenítve. Vagyis színezés nélkül, pusztán a számok egymás mellé írva. Az árnyalatokat lényegében az elválasztó szóközök sűrűsége adja.
Csatolt Mandelbrot-halmazok, a csatolási állandó mértéke szinuszosan modulálva: