Jan Řeháček

Cesta do hlubin fraktálovy duše II

16. 04. 2014 9:09:09
Toto je pokračování předchozího článku o fraktálních množinách. Dnes se zaměřím na fraktál zvaný Juliova množina, který je z Mandelbrotovy množiny diskutované v prvním článku v podstatě odvozený. Opět se jedná o množinu bodů v rovině, které jsou obarveny podle chování při opakovaném dosazení do jisté kvadratické rovnice ve dvou proměnných. Při četbě zbytku článku máte dvě možnosti. Buď si jen prohlédnete obrázky a pomašírujete dál (a můžete si je klidně i stáhnout, protože z principu věci se takových množin dá nasekat nekonečně mnoho, takže nemám strach, že by na mě nezbylo) a nebo si můžete přečíst i doprovodný text, ale v tom případě bych doporučil přečíst si nejdřív původní článek, protože budu předpokládat, že vše v něm řečené už víte (a jste schopni o půlnoci zpaměti přeříkat pokud Vás probudím).

n1.jpg
Takže to co vidíte nalevo je Mandelbrotova množina. Tato množina je součástí běžné roviny x-y, přičemž počátek souřadnic je zhruba uprostřed toho horního jablka. Pro každý bod této roviny - říkejme mu (a,b) - si sestavíte kvadratickou rovnici ve dvou proměnných - té jsem minule říkal hra o konkrétní jablko - a potom do ní opakovaně dosazujete, s tím, že za počáteční bod tohoto procesu si vždy vyberete počátek (0,0). Pokud se toto opakované dosazování nikdy příliš nevzdálí od počátku (to znamená nikdy nevyběhne z kružnice o nějakém předem daném poloměru, řekněme R=5), tak si bod označíte černě. Pokud dosazovací proces z toho kruhu vyběhne, tak si poznamenáte kolik kroků jste k tomu potřebovali, a podle toho přiřadíte bodu (a,b) barvu. Protože vše počítáme na počítači a chceme výsledek v konečném čase, je potřeba si vybrat nějaké konečné číslo po jehož překročení bodík obarvíme černě (komu by se chtělo čekat do nekonečna, že?). U většiny obrázků používám za tímto účelem hodnotu 1000 (to je myslím docela hezká aproximace nekonečna:).

Důležité je si uvědomit, že celá ta hra o jablko operuje se dvěma různými typy bodů. Jeden typ odpovídá dvojicí parametrů (a,b) pomocí kterých uděláte z abstraktní hry o jablko hru konkrétní. Druhý typ si můžete představit jako počáteční bod, který do takto obdržené rovnice dosazujete - tomu budu říkat (x0,y0). Oba typy představují normální bod roviny - mají tedy dvě souřadnice - ale ve hře o jablko hrají zcela odlišnou roli. Při konstrukci Mandelbrotovy množiny se počáteční bod zafixuje a parametry (a,b) se pak mění podle toho, který bod obrázku chceme vybarvit. Zvídavější povahy si možná řeknou, co by se stalo, kdybychom si naopak zafixovali pevnou dvojici parametrů (a,b) a zkusili startovat z různých počátečních bodíků (x0,y0). V takovém případě bychom měli jen jednu konkretní hru o jablko a různé pixely připravovaného obrázku bychom ztotožnili ne s parametry, ale s počátečními body. Takto vzniklému obrázku se říká Juliova množina (otcem myšlenky byl francouzský matematik Gaston Julia).

V jistém smyslu tedy můžeme říci, že Mandelbrotova množina je mapou parametrické roviny (a,b) přičemž počáteční podmínku volíme stejnou, zatímco Juliova množina je mapou roviny počátečních podmínek přičemž parametry (a,b) držíme na nějaké konstantní hodnotě. Na jaké? To je na vás. Pro každou hodnotu (a,b) dostanete jednu Juliovu množinu. Samozřejmě pro některé hodnoty parametrů je ta množina hezčí a pro jiné ošklivější. Proto bych doporučil vytisknout si kopii Mandelbrotovy množiny se souřadnicemi, abyste si mohli zaznamenat odkud brát ty nejzajímavější hodnoty parametrů. Protože možností je mnoho, v dnešním článku nebudu zajíždět do detailů jako minule, ale budu si jen vybírat různé hodnoty parametrů a pro ně vám ukážu Juliovu množinu celou (cestu do jejích hlubin odložím na příští vydání). Každý obrázek níže tedy odpovídá jednomu konkretnímu výběru parametrů (a,b) - a tedy jednomu konkrétnímu bodu Mandelbrotovy množiny.

První věc, kterou vám chci ukázat je, co se stane když s tím bodem (a,b) překročíte hranici Mandelbrotovy množiny (což je ta oblast kde černý oceán přechází v barevnou pevninu). Když je bod (a,b) uprostřed toho oceánu, Juliova množina je poměrně nudná. Je to více méně takový trochu zubatý kosodélník, který vypadá jako když ho vytáhnete psovi z tlamy (první obrázek). Když ale ten parametr (a,b) začnete posunovat k hranici, příslušná Juliova množina se stane členitější a tenčí. V okamžiku kdy s tím parametrem vystoupíte na barevnou pevninu, Juliova množina se "rozsype" a ta černá část v podstatě zmizí. Ze začátku jsou v místech kde bývalo to černé moře ještě trochu hlubší barvy, protože ze spojitosti je jasné, že iterací potřebných k úniku je poměrně hodně (pro černé moře jich bylo potřeba nekonečně mnoho), ale jak postupujete hlouběji do vnitrozemí, rozdíly mezi barvami se postupně vyrovnávají. První čtveřice obrázků ilustruje tento proces.

na1.jpg

na2.jpg

na3.jpg

na4.jpg

Další skupina obrázků se zaměří na okamžik těsně po "rozsypání".  Vezmu si skoro stejné parametry, takže obrázky budou podobné, ale změním kalibraci barevné škály, což je také důležitá otázka - i když spíš estetická než matematická. Pro začátek bych doporučil lineární škálu, ale až tomu trochu přijdete na chuť, zjistíte, že občas stojí za to ji trochu (nelineárně) zdeformovat, aby byl výsledný obrázek co nejhezčí. Tady jsou tři ukázky, ve kterých na deformaci barev používám funkci tanh (hyperbolický tangens).

nb2.jpg

nb3.jpg

nb4.jpg
V té první sérii jsem posunoval parametr (a,b) víceméně rovnoměrně. Tím pádem jsem ten nejzajímavější moment vlastně přeskočil. Když chcete detailně vidět jakým způsobem se ten černý oceán rozsype, musíte v okamžiku kdy se přiblížíte k hranici hodně zpomalit a s tou parametrickou dvojicí posunovat opatrně. Následující (modrá) série vám ukáže, co přesně se při přechodu hranice děje. To černé moře najednou začne na okrajích pórovatět - jako by se do něho dali červotoči - a ti v jistém okamžiku ten oceán prokoušou. Ovšem ne rovnoměrně, ale v takových zajímavých koridorech.

nc1.jpg

nc2.jpg

nc3.jpg

Kolik těch koridorů přesně je závisí na konkretních hodnotách (a,b) - jinými slovy KDE tu hranici Mandelbrotovy množiny zrovna přelézáte. Na předchozím obrázku je těch koridorů hodně, ale dají se najít i parametry, kde jich je méně a když pak ty parametry posunete dál směrem "od moře", tak se ještě rozšíří a vytvoří docela zajímavé obrazce. Mimochodem Juliova množina je v podstatě samopodobná, takže ty malinkaté ornamenty podél koridorů mají velmi komplexní vnitřní strukturu (jsou to víceméně kopie těch koncových ornamentů).

nc4.jpg

nc5.jpg

nc8.jpg

Teď si vyberu parametry z jižního cípu Mandelbrotovy množiny. Tam ta Juliova množina moc hezká není (viz první orbázek) - je taková trochu podvyživená a teprv když popojedete k severu, tak se tvar poněkud spraví (druhý a třetí obrázek).

nd2.jpg

nd3.jpg

ne4.jpg

Na druhé straně to není o moc hezčí. Tam je zase Juliova množina na můj vkus moc kompaktní. Následující obrázek pochází ze severní oblasti horního jablka. Je z toho véčkovitého výběžku, kde byste čekali "šťopku".

nd5.jpg

Na spravení chuti - tady jsou ještě tři obrázky pro parametry zprostředka Mandelbrotovy množiny, kde je ta Juliova množina asi nejhezčí.

ne1.jpg

ne2.jpg

ne3.jpg

A závěrem jednu perličku: společnost CareerCast dnes zveřejnila pořadí 10 nejlepších a nejhorších zaměstnání pro rok 2014 (the best and worst jobs for 2014) a první příčku obsadili... (světe zboř se) matematici. Tak na zdraví! Jdu si vyřešit nějakej dobře vychlazenej integrál.

Autor: Jan Řeháček | karma: 22.47 | přečteno: 1129 ×
Poslední články autora