Premium

Získejte všechny články
jen za 89 Kč/měsíc

Cesta do hlubin fraktálovy duše

Jedno ruské přísloví říká, že "nové je i to, co se dokonale zapomnělo". Fraktály byly poměrně populární a vizuálně atraktivní matematické objekty v 80. a 90. letech minulého století. Dny největší slávy už tedy mají bezpečně za sebou. Estetično je však věčné a nepomíjivé a taky nám tu mezitím dorostla další generace krásnokopů, takže je možná na čase pokusit se o malé retro. A protože fraktály se dají poměrně jednoduše naprogramovat (návod je pod obrázky), sbalil jsem si čutoru a karimatku a vydal se na malý výlet do hlubin fraktálovy duše.  Do duše, která je nekonečně hluboká v následujícím smyslu.

Představte si, že přijdete na výstavu krajek (kam taky po fotbale, žejo?). Už u dveří si jednu vyhlídnete a vidíte, že v jejím středu se skrývá takový malý kompaktní čtvereček. Jenže když přistoupíte blíž, ukáže se, že ten čtvereček je ve skutečnosti subtilní paličkovaná kreace - jakási krajka v krajce - a ta má při bližším ohledání na kraji takový zajímavý trojúhelníček. Vytáhnete tedy z náprsní kapsy lupu (obvykle s sebou dvě až tři lupy jistě nosíte) - a ejhle, on i ten zdánlivě jednolitý trojúhelníček má svoji vnitřní strukturu. Je tvořen dovedně propletenými nitkami. Ale nejde to takhle pořád. V jistém okamžiku dospějete k prapůvodnímu elementárnímu vlákénku té krajky a tady vaše cesta za jemností končí. Ať zvětšujete jak zvětšujete, to vlákénko je pod mikroskopem prostě vpodstatě jen zahradnická hadice a žádné další tvary, kličky nebo uzlíčky na něm nenajdete. Krajka je prostě konečný útvar (molekulární záležitosti do toho netahejme). Tedy útvar s konečnou "hloubkou rozlišení".

Fraktál je naproti tomu abstraktní matematický objekt a tudíž pro něj zákony fyziky neplatí. Je to v podstatě taková matematická krajka, s tím, že na rozdíl od té vamberecké se nikdy nedostanete až na to základní nedělitelné vlákno. Fraktál můžete zjemňovat až do úplného zblbnutí. Má tedy nekonečnou hloubku. Technicky se jedná o bohatě členěnou podmnožinu bodů v rovině, ale na rozdíl od řekněme čtverce, přímky či elipsy v ní s každým zvětšením objevíte spoustu nových záhybů, výčnělků, poloostrovů a zátok, které se vám před tím nedařilo rozlišit. V následující sekci vám tento fenomén předvedu na příkladu fraktálu asi nejprofláknutějšího - na Mandelbrotově množině. Nejprve vám ukážu tu množinu celou. Pak na její náhodně zvolenou část namířím zelenou šipčičku a tu část zvětším a vykreslím v obrázku následném. A v té zvětšenině si opět vyberu nějaké zábavné zákoutí, označím ho šipčičkou a zase ho zvětším na obrázku následujícím. Jinými slovy - každý obrázek je výřezem a zvětšením obrázku předchozího (dimenze každého výřezu jsou uvedeny vždy pod obrázkem - a protože používám matice, x běží svisle a y vodorovně).

(jo, a jak budu vytahovat větší a větší lupu, a ukazovat vám detailnější a detailnější záběry té samé množiny, tak budu současně trochu měnit barevnou škálu - jinak by mi za chvilku došly barvy. Takže se nelekejte, že každá zvětšenina má trochu posunuté barevné spektrum)

 

xmin = -1.59; xmax = 0.61;
ymin = -1.17; ymax = 1.17;

xmin = 0.31; xmax = 0.367; ymin = 0.392; ymax = 0.45;

xmin = 0.336; xmax = 0.338; ymin = 0.417; ymax = 0.419;

xmin = 0.33695; xmax = 0.33725; ymin = 0.41774; ymax = 0.41804;

xmin = 0.336992; xmax = 0.337007; ymin = 0.417925; ymax = 0.417940;

xmin = 0.3369994; xmax = 0.3370006; ymin = 0.4179329; ymax = 0.4179341;

xmin = 0.33700025; xmax = 0.33700037; ymin = 0.41793356; ymax = 0.41793368;

xmin = 0.337000255; xmax = 0.337000285; ymin = 0.417933645; ymax = 0.417933675;

xmin = 0.3370002602; xmax = 0.3370002626; ymin = 0.4179336602; ymax = 0.4179336626;

Tím končí sekce hezkých obrázků. Zbytek článku bude už jen tvrdá matyka (připravit padáky!).

(mimochodem, jedna blogerka byla nedávno za to "y" téměř verbálně ukamenována. Pomocná stráž Gramatické Bezpečnosti ji nakonec donutila v titulku jejího článku použít správné zkráceniny "matika" - i když si myslím, že u hovorového výrazu by se v rámci básnické licence to "y" klidně sneslo. A protože slovo "matyka" skloňuju podle vzoru "rotyka", s dovolením si tento krásný patvar ponechám. A to "skloňuju" jakbysmet)

A teď se pokusím vám vysvětlit jak takový obrázek vznikne, s tím, že se budu snažit udržet tu matyku zhruba na úrovni prvního ročníku gymnázia, aby z toho něco měli i neinženýři. Wikipedie to dělá dokonce ještě o něco jednodušeji (česky a nebo anglicky), ale musíte umět komplexní čísla. Já to tedy raději trochu formálně krapet zkomplikuju, ale zase budu tu šelmu držet v reálné rovině x-y tak jak ji známe ze školy. Komplexní rovina z je sice dost podobná, má ale tu nevýhodu, že slabší povahy při pohledu na imaginární jednotku "i" zhusta omdlévají.

Takže v první řadě budeme potřebovat barevnou škálu. Tedy něco, co nám umožní nahrazovat čísla, která napočítáme, barvami. Tu škálu najdete buď zabudovanou v programu který používáte, nebo si ji stáhnete z internetu a v nejhorším případě si ji uděláte sami. Pro začátek si vystačíte s nějakou jednoduchou řekněme s třemi barvami. Já jsem použil tuto:

Vidíte, že ta škála není nic jiného než jakási předvodní tabulka mezi celými čísly a barevnými tóny. Obvykle začíná nulou, ale není to podmínka. U těch posledních obrázků jsem začínal 1000 abych neplýtval barvami.

Kromě barev budeme ještě potřebovat kouzelnou formulku. Budu jí říkat třeba "abstraktní hra o jablko", protože Mandelbrotova množina tvarově jablko připomíná (je to ale čistě pojmenování. To jablko tady - na rozdíl od filmu Věry Chytilové - nehraje žádnou roli). No a abstraktní je proto, že má kromě proměnných x,y také dva zatím nespecifikované parametry a,b. Tady je:

X = x2-y2+a
Y = 2 x y+b

Kde ty parametry a,b vezmeme? Vybereme si určitý obdélník v rovině (jak velký? to záleží na tom, jak velkou část té množiny chcete vidět), rozsekáme ho jak horizontálně, tak vertikálně na N kousků a souřadnice každého "kousku" nám dají jeden pár parametrů. Následující obázek ukazuje, jak se to udělá pro obdélníček ohraničený těmito hodnotami (a zvolím si N=5):

xmin=0.7
xmax=1.1
ymin=0.8
ymax=1.2

(číslo dole je "a", číslo nahoře je "b")

A teď něco o grafice. Každý obrázek (jak ty fraktály v článku, tak třeba fotky z vaší dovolené) se skládá z obdélníkové formace pixelů (barevných bodíků). Schematicky si je můžete představit jako ty "puntíky" na obrázku. Otázkou samozřejmě je, jak si ty puntíky (pixely) máme vybarvit, abychom dostali fraktál. A tady se konečně dostáváme k matyce, neboť to je oč tu běží. Tak především si vybereme pixel p, který chceme vybarvit. Já si například vyberu ten který jsem si na obrázku černě zakroužkoval. Má celočíselné souřadnice, takže se to bude dobře počítat. Tyto souřadnice (v našem případě 1 a 1) dosadíme do abstraktní hry o jablko za "a" a "b" a dostaneme "konkretní hru o jablko":

X = x2-y2+1
Y = 2 x y+1

(pro každý pixel dostaneme jinou konkretní hru pochopitelně!)

Všimněte si, že z hlediska inženýrského má ta naše "konkretní hra o jablko" dva vstupy (x,y) a dva výstupy (X,Y). Jinými slovy, když do ní dvě čísla dosadíte (x,y), tak z ní zase dvě čísla vypočítáte (X,Y). A ta vypočítaná čísla tudíž můžete zase vesele dosadit zpátky a dostanete nový dvě čísla. Ty zase dosadíte do tý samý konkretní hry o jablko a zase dostanete dvě nový a takhle jedete furt dál, močálem temným kolem bílých skal. Jak taková hra vypadá vám teď ukážu na příkladu. Jako startovní dvojici pro první krok si vždy vybereme čísla (0,0). Když je dosadíte do "konkretní hry o jablko" nahoře dostanete ve druhém kroku dvojici (1,1). A tu zase dosadíme zpátky do obou rovnic. A teď celý proces schematicky a rychleji.

To "ano-ne" napravo pouze indikuje, zda je součet čtverců obou čísel menší než 20.

krok 1: (0,0) ano
krok 2: (1,1) ano
krok 3: (1,3) ano
krok 4: (-7,7) ne
krok 5: (1,-97) ne

a tak dále...

No a teď nastane jedna ze dvou možností. Buď jste v nějakém rozumném a předem daném počtu kroků (řekněme 500) žádné "ne" nedostali a v tom případě vybarvíte ten pixel p (ze kterého jste si vypůjčili hodnoty a,b) černě. A nebo jste během konkretní hry o jablko dostali alespoň jedno "ne", a pak se podíváte ve kterém kroku jste to "ne" dostali poprvé a barvou (z té barevné škály na začátku) odpovídající tomuto celému číslu vybarvíte pixel p. V našem případě je to krok 4, takže ten zakroužkovaný pixel bude tmavě modrý. No a pak se přesunete k dalšímu pixelu, dostanete novou dvojici (a,b), z ní vytvoříte novou konkretní hru o jablko a celou taškařici zopakujete. Až takhle obarvíte všechny pixely, fraktál je doma. Samozřejmě to za vás dělá počítač, který si za tímto účelem naprogramujete, jinak by na vás vaši bližní museli za pět minut volat Chocholouška.

A to je všechno.

Když si o tom popřemýšlíte, zjistíte, že celý ten algoritmus spočívá v tom, že opakovaně dosazujete do kvadratické rovnice (jenom dosazujete, ani se nenamáháte tu rovnici vyřešit) a při tom se v každém kroku koukáte jak daleko od počátku jste. Nemusíte umět derivovat ani počítat determinanty symetrických matic. Jenom musíte umět dosadit do kvadratické rovnice. A to mě na fraktálech fascinuje nejvíc. Že se i pomocí naprosto jednoduchého vzorečku a několika dosazení dá vytvořit objekt takové krásy a komplexity. A možná tam někde dole, v divokých hlubinách fraktálovy duše, jednou najdeme klíč k některým tajemstvím života na této planetě.

Pro nezničitelné poutníky, kteří se prokousali až sem (haló, je tu někdo?) mám ještě malou odměnu.

Pokud máte rychlý internet, vlezte si na YouTube a do vyhledávacího okénka zadejte: Mandelbrot Set Zoom. Dostanete pestrý výběr animací, které jsou spojitou verzí procesu popsaného v tomto článku. Každé políčko animace zvětší danou část fraktálu jenom trochu a složením tisíců nepatrně se lišících záběrů vznikne dojem, že skutečně letíte do hlubin fraktálovy duše (a to vzducholodí poháněnou párem růžových slonů).

No a pokud rychlý internet nemáte, můžete si alespoň do vyhledávače Google zadat "Mandelbrot Set" a pak kliknout na "Images". Vykouknou na vás detailní obrázky jiných částí Mandelbrotovy množiny. Těch cest do hlubin fraktálovy duše je nekonečně mnoho, protože je nekonečně mnoho míst, kam si můžete prsknout tu zelenou šipčičku. Klidně si můžete zvolit svou vlastní cestu a vytvořit obrázky, které nikdo nikdy neviděl.

Autor: Jan Řeháček | čtvrtek 30.1.2014 8:24 | karma článku: 23,41 | přečteno: 1692x
  • Další články autora

Jan Řeháček

Jaro: das ist nur die erste Phase

Jaro má v našem parku tři fáze, které jsem výstižně pojmenoval: první, druhá a třetí. Toto je svědectví o první z nich. Můžeme s ním nesouhlasit, můžeme proti němu protestovat, ale to je asi tak vše, co s tím můžeme dělat, Járo.

9.4.2024 v 9:09 | Karma: 16,67 | Přečteno: 424x | Diskuse| Fotoblogy

Jan Řeháček

A je po Velikonocích. A nejen po nich.

Globální kotlík zavěšený nad ohněm inkluze a diversity pomalu vytlačuje národní státy, vyrůstající ze sdíleného kulturního podhoubí. Tomuto trendu se nově přizpůsobuje i řada českých svátků s jejichž novelizací vás chci seznámit.

1.4.2024 v 9:09 | Karma: 21,16 | Přečteno: 459x | Diskuse| Společnost

Jan Řeháček

Impresionisté na hladině

Když se na podzim objevily barvy na stromech, všiml jsem si, že se občas zrcadlí v našem potoce či rybníčku. Tak jsem na ně zamířil objektiv a vyšly z toho roztěkané výtvarné kreace, za které by se nemusel stydět ani Claude Monet.

9.3.2024 v 9:09 | Karma: 22,50 | Přečteno: 324x | Diskuse| Fotoblogy

Jan Řeháček

AI Art: co už umí a co ještě ne

Loni jsem trochu experimentoval s malířskými schopnostmi tehdy nastupující generativní AI Art. Letos, za dlouhých zimních večerů jsem si na to vzpomněl a napadlo mne podívat se, jak moc za ten rok AI pokročila. Nu, posuďte sami.

15.2.2024 v 9:09 | Karma: 17,91 | Přečteno: 372x | Diskuse| Ostatní

Jan Řeháček

Není větvička jako větvička

Stromy a jejich rozeklaná větvoví jsou sochařská díla. V létě to ale nepoznáte, protože přírodní majstrštyky zakrývá koruna. Jakmile ale podzim povolá svá vojska zpět do zálohy, ladná elegance dřevěných křivek vystoupí do popředí.

9.2.2024 v 9:09 | Karma: 19,45 | Přečteno: 438x | Diskuse| Fotoblogy
  • Nejčtenější

Tři roky vězení. Soud Ferimu potvrdil trest za znásilnění, odvolání zamítl

22. dubna 2024,  aktualizováno  14:47

Městský soud v Praze potvrdil tříletý trest bývalému poslanci Dominiku Ferimu. Za znásilnění a...

Moderní lichváři připravují o bydlení dlužníky i jejich příbuzné. Trik je snadný

18. dubna 2024

Premium Potřebujete rychle peníze, pár set tisíc korun a ta nabídka zní lákavě: do 24 hodin máte peníze na...

Takhle se mě dotýkal jen gynekolog. Fanynky PSG si stěžují na obtěžování

21. dubna 2024  16:37

Mnoho žen si po úterním fotbalovém utkání mezi PSG a Barcelonou postěžovalo na obtěžování ze strany...

Školu neznaly, myly se v potoce. Živořící děti v Hluboké vysvobodili až strážníci

22. dubna 2024  10:27

Otřesný případ odhalili strážníci z Hluboké nad Vltavou na Českobudějovicku. Při jedné z kontrol...

Prezident Petr Pavel se zranil v obličeji při střelbě ve zbrojovce

19. dubna 2024  15:44

Prezident Petr Pavel se při střelbě na střelnici v uherskobrodské České zbrojovce, kam zavítal...

Lídr kandidátky AfD propustí asistenta podezřelého ze špionáže, do voleb půjde

24. dubna 2024  10:12,  aktualizováno  10:32

Europoslanec a lídr kandidátky Alternativy pro Německo (AfD) Maximilian Krah i přes obvinění svého...

Žena, která skočila s dětmi do Macochy, nechala dopis. Policie případ odložila

24. dubna 2024  10:22

Sebevražedný skok ženy se dvěma malými dětmi do propasti Macocha v Moravském krasu loni v létě...

Vyberte si jednotku a pozici. Ukrajina se snaží nalákat nové rekruty

24. dubna 2024  10:01

Daleko od zákopů, v nových centrech po celé Ukrajině, nabízejí civilní náboráři vyzbrojení...

KOMENTÁŘ: Na vině je přece vždycky žena... Feriho případ odstartoval změny

24. dubna 2024

Premium Tři roky nepodmíněně a zaplacení odškodného třem obětem. Takovým potvrzením rozsudku v pondělí...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

  • Počet článků 402
  • Celková karma 19,54
  • Průměrná čtenost 920x
Devátý nejhorší kuchař na světě, odpůrce politické překorektnělosti, začínající marťan, neúnavný konzument točeného kyslíku a jazykový dobrodruh ab incunabulis. Člen Analytického piva a Gustavu pro jazyk český. Správce Vojensko-českého slovníku.