Domů > Odborné články > Gymnaziální vzdělávání > Fraktály - počítačová grafika
Odborný článek

Fraktály - počítačová grafika

8. 11. 2007 Gymnaziální vzdělávání
Autor
Mgr. Petr Švarc

Anotace

Fraktály - tímto tématem lze zpestřit hodiny matematiky, je možné ho zařadit do matematických seminářů, hodin informatiky a výpočetní techniky. Je vhodné i pro výuku v integrovaném technickém bloku i ve výtvarné výchově.

Asi před deseti lety jsem mimoděk narazil na pojem fraktální matematika. Tehdy jsem na internetu prohledával stránky s matematickým obsahem a narazil jsem zde na maturitní práci studenta brněnského gymnázia – téma fraktály. Pro mě byl tehdy tento výraz zcela neznámým pojmem. Kromě základních a srozumitelných informací jsem si na zmíněném webu mohl stáhnout program pro generování fraktálů – Kaos Rhei. Tento program mě dosud nezklamal a rád s ním stále pracuji a využívám jej v hodinách informatiky a výtvarné výchovy v tématu počítačová grafika. Rád bych se s vámi podělil o své zkušenosti a předal základní informace s uplatněním tohoto tématu v hodinách výtvarné výchovy nebo informatiky. Současně vás zvu na své webové stránky (www.svapet.wz.cz/fraktaly/hlavni.htm), kde máte k dispozici galerii našich fraktálů, program Kaosrhei ke stažení (465 kB), nápovědu k tomuto programu a stručné osvětlení pojmu (Maldenbrotova množina).

Maldenbrotova množina je pojem, od kterého se další fraktálová matematika využívající počítačové grafické výstupy odvíjí. Datovat ji můžeme od výzkumu francouzského matematika Benoita Mandelbrota (1970 až 1980, zveřejnění v roce 1982). On jako první také použil pojem fraktál (odvozeno z latinského fractus - zlomený, volněji vyjádřeno rozbitý, roztřepený, pěnový). Je žádoucí, aby se žáci s pojmem fraktál seznámili podrobněji. Avšak teorie chaosu, pojmy atraktor, sebepodobnost a málo srozumitelné matematické vzorce budí zdání vysoké odbornosti. Proto mi dovolte – odborníci mi jistě prominou – abych vám předložil velmi srozumitelný výklad fraktálové matematiky, upravený z textu knihy sira Arthura C. Clarka Duch z Grand Banks (1990). Jedná se o román, nikoli o vědeckou publikaci.

Clarke je nejen spisovatel sci-fi, ale také fyzik a matematik. Podlehl kouzlu fraktálů natolik, že jejich problematiku nenápadně podsunul do svého románu z blízké budoucnosti. Byl přesvědčen, že objev fraktálů je průlomovým objevem v moderní matematice a zcela ovlivní její další vývoj. Stal se také nadšeným propagátorem fraktálů a využil k tomu několik příležitostí, včetně vlastního románu. Při čtení tohoto románu jsem si uvědomil, jak opatrně a laicky Clarke téma přibližuje nezasvěceným čtenářům. Danou kapitolu jsem tedy extrahoval do srozumitelnější podoby. Jakoby mimoděk se zde žáci seznámí s obsahem pojmu řada, hranice, nekonečno, limita.

Nyní vám předkládám upravený dodatek, kterým Clarke doplnil svoji knihu. V něm je celé téma podrobněji rozpracováno (mimochodem, s dějem románu Duch z Grand Banks fraktály nemají pranic společného, příběh pojednává o přípravě vyzdvižení Titaniku). V listopadu roku 1989, při příležitosti převzetí ceny za zvláštní úspěch Asociace výzkumníků vesmíru, v Rijádu v Saúdské Arábii, přednesl Arthur C. Clarke největšímu shromáždění astronautů a kosmonautů, které se kdy na jednom místě sešlo (bylo jich více než padesát, včetně Buzze Aldrina a Mika Collinse z Apolla 11 a prvního vesmírného chodce Alexeje Leonova) přednášku na téma Barvy nekonečna - výzkum fraktálového vesmíru. Následující text je zkráceným výtažkem z této řeči.

Myšlenka, že kterýkoli bod roviny může být vyjádřen dvěma čísly, obvykle zapisovanými jako x a y, se dnes zdá být tak samozřejmá, že si už ani neuvědomujeme, že matematický svět musel čekat do roku 1637 na Descarta, který na ni přišel. Ještě stále objevujeme důsledky této prosté myšlenky a nejpodivuhodnější z nich je deset let starý. Nazývá se Mandelbrotovy sady (množiny), neboli M-sady a můžete se s ním setkat všude - ve vzorech látek, na tapetách, na špercích i na linoleu. A bojím se, že se s ním brzy budeme setkávat i v televizi v každé druhé reklamě. Ale nejpřekvapivější vlastností M-sad je jednoduchost jejich podstaty. Na rozdíl od takřka všeho ostatního v moderní matematice je každé dítě školou povinné schopno pochopit, jak vznikají. Jejich vytváření nevyžaduje nic složitějšího než násobení a přičítání. Není k nim potřeba ani odčítání, natož pak dělení.

V civilizovaném světě nenajdete mnoho lidí, kteří by se nesetkali s Einsteinovou slavnou rovnicí E = mc2, nebo komu působí přílišné problémy ji pochopit. Rovnice popisující M-sady má stejný počet členů a vlastně vypadá velice podobně. Tady je:

Z = z2 + c

Zetka a céčko v Mandelbrotově rovnici jsou čísla, ne fyzikální veličiny, jako hmota a energie v Einsteinově teorii. Jsou to souřadnice určující pozice bodu a rovnice určuje způsob, jakým jsou tyto body rozmístěny.

Existují dva způsoby, jak určit bod v prostoru. Ten obvyklejší vyžaduje nějaký druh souvztažné sítě – např. čtverečkovaný papír s osou X a Y. Ale je i jiný systém využívaný v radarech. Tady je pozice bodu dána vzdáleností od počátku a směrem nebo azimutem. Dá se říct, že je to přirozený systém - používáte ho mimovolně, například když hrajete míčové hry. Pak operujete se vzdálenostmi, úhly a se sebou jako počátkem souvztažné soustavy. Představte si, že monitor počítače je radarová obrazovka s jediným bodem, jehož pohyb je popsán M-sadou. Ale než tento radar zapnete, zjednodušte si ještě rovnicí na: Z = z2

Pro tuto chvíli jsem se zbavil céčka a ponechal jsem jen zetka. Teď dovolte, abych je definoval přesněji. Malé z je počáteční poloha bodu - vzdálenost, ve které to všechno začalo. Velké Z je jeho konečná vzdálenost od počátku. Takže pokud byla počáteční hodnota 2, výsledná bude 4. Na tom není nic vzrušujícího, ale teď dojde k modifikaci, která to všechno změní:

Z ↔ z2 + c

Ta dvojitá šipka značí, že čísla proudí v obou směrech. Tentokrát se nezastavíme u Z = 4; učiníme to rovno novému z, které nám okamžitě dá druhé Z = 16 a tak dál. Než se nadějeme, máme řadu

256, 65536, 4294967296...

a bod, který začal pouhé dvě jednotky od počátku, míří mílovými kroky k nekonečnu stále se zvětšující rychlostí. Tento proces stále se opakujících smyček se nazývá iterace.

Teď můžeme zapnout náš radar. Většina obrazovek má soustředné kružnice označující 10, 20... 100 km od středu. Nám bude stačit jen jedna kružnice ve vzdálenosti 1. Není třeba specifikovat jakékoliv jednotky, neboť operujeme s ryzími čísly. Předpokládejme, že počáteční poloha bodu je kdekoli na naší kružnici - azimut nehraje roli. Takže z je 1. A protože jedna na druhou je pořád jedna, rovna se jí i Z. A na této hodnotě také zůstaneme, neboť, bez ohledu na počet iterací, jedna na druhou bude pořád přesně jedna. Bod může poskakovat po kružnici, ale pořád zůstane na ní.

Nyní předpokládejme, že počáteční z je větší než 1. Už víme, jak rychle náš bod uhání k nekonečnu, jestliže se z rovná dvěma - ale totéž se přihodí dříve nebo později vždycky, i kdyby bylo jen o maličko větší, než 1 - řekněme 0‚000000000000000000001. Podívejte se:
po prvním umocnění Z rovná se
1 ‚000000000000000000002
pak

1 ‚000000000000000000004
1 ‚000000000000000000008
1 ‚000000000000000000016
1 ‚000000000000000000032

a tak dál. Pro praktické účely je hodnota stále přesně 1. Bod se viditelně nehýbá dovnitř ani ven, stále je na kružnici o poloměru 1. Ale nuly postupně mizí. Náhle se objevují platné číslice na třetím, druhém a prvním desetinném místě - a pak úplně explodují, jak ukazuje tento výsek:

1,001 1,002 1,004 1,008 1,016 1,032
1,066 1,136 1,292 1,668 2,783 7,745
59,987 3598,467 12948970
167675700000000
281 15140000000000000000000000...

Za desetinnou čárkou by mohly být miliony - miliardy - nul a výsledek by byl pořád stejný. Čísla se vždycky přeplazí nalevo - a pak Z zamíří k nekonečnu.

Teď si vezměme druhý případ. Předpokládejme, že z je o maličko menší, než 1 - například:

0,99999999999999999999

Stejně jako v předchozím případě, dlouho se nezmění vůbec nic, až na to, že se číslice vpravo stále zmenšují. Ale po několika tisících nebo milionech iterací - katastrofa! Z se náhle scvrkne v naprosté nic, rozpustí se v nekonečné šňůře nul... Výsledkem tohoto programu je trojice zákonů. které jsou příliš triviální, než aby je bylo nutné formulovat. Ale v matematice není triviální žádná skutečnost a po několika dalších krocích nás tyto zákony dovedou do světa divů a krásy.

Takže tady jsou tři zákony mocnícího programu:

1. Jestliže je vstup z přesně roven jedné, výstup Z zůstává 1.
2. Jestliže je vstup z větší než jedna, výstup se bude blížit k nekonečnu.
3. Jestliže je vstup z menší než jedna, výstup se bude blížit k nule.

Kruh o poloměru jedna je tedy něčím jako mapou nebo, chcete-li, mezí, dělící plochu do dvou odlišných území. Venku jsou čísla, která poslušna mocnících zákonů získávají nekonečnou svobodu, čísla uvnitř jsou vězňové, lapení a odsouzení k úplnému vyhynutí.

Avšak k tomu, abychom určili polohu bodu na ploše, potřebujeme ještě úhel. Co bude s ním? Ve výběrovém procesu - v rozdělení čísel z do dvou skupin - je úhel irelevantní. Výsledek bude stejný, ať už směr r ukazuje kamkoli. Pro tento prostý případ - nazvěme ho třeba K-sady, ho můžeme ignorovat. Až přejdeme k mnohem složitějším M-sadám, kde je směr velice důležitý, předvedu vám báječný matematický trik, který se o něj postará za nás užitím komplexních nebo imaginárních čísel.

K-sada leží uvnitř mapy a její mezí je kružnice, která ji ohraničuje. Kružnice je prostě nepřetržitá čára s nulovou tloušťkou. I kdybyste se na ni dívali mikroskopem s obrovským zvětšením, bude vypadat pořád stejně. Můžete K-sadu zvětšit do velikosti celého vesmíru - její hranice bude mít stále nulovou tloušťku. Ale nejsou v ní žádné díry - je to absolutně nepřekonatelná bariéra oddělující z menší než jedna od těch větších než jedna.

Teď, když jsme probrali všechny tyto základy, jsme konečně připraveni pustit se do M-sad. V průběhu roku 1970 francouzský matematik Benoit Mandelbrot, pracující na Harvardu a u IBM, začal zkoumat rovnici, která ho učinila slavným. Její dynamická forma je:

Z ↔ z2 + c

Jediným rozdílem mezi ní a rovnicí, kterou jsme užili k popsání K-sad, je člen c. Ten - nikoli z - je nyní počátečním bodem našeho mapování. Při první iteraci stanovíme c rovno nule. Zdá se to být drobným rozdílem a málokdo si dokáže představit, jaký nový vesmír to před námi otevírá. Mandelbrot sám se přes počáteční stadium nedostal až do roku 1980, když se na výpisech jeho počítače začaly objevovat první nejasné vzory. Pohlížel na ně skrze Keatse:
Čarovné magické okenice otevírají výhled na pěny moří nebezpečných, podivné opuštěné země...

Nová rovnice si žádá odpověď na stejnou otázku, jako ta původní: Jakého tvaru je zmapované území, když do ní dosadíme čísla? Pro K-sady to byla kružnice o poloměru 1. Podívejme se co se stane, když s touto hodnotou začneme u M-rovnice. Dokážeme to i z hlavy - pro prvních několik kroků. Později s tím bude mít těžkosti i superpočítač.

Začátek: z = O, c = 1. Tudíž Z = 1
První iterace: Z = 12 + 1 = 2
Druhá iterace: Z = 22 + 1 = 5
Třetí iterace: Z = 52 + 1 = 26
Čtvrtá iterace: Z = 262 + 1 ... a tak dál

Jednou jsem přinutil svůj počítač k práci na pokračování a ten vypsal jen dvě další hodnoty, než začal zaokrouhlovat:

1, 2, 5, 26, 677, 458330, 21006640000, 4412789000000000000000

A potom přestal, protože nevěří, že existují nějaká více než osmatřicetimístná čísla.

Ale i tohle málo postačí, abychom si uvědomili, že M-sady musí mít velice odlišný tvar od dokonalé kružnice K-sad. Bod ve vzdálenosti 1 je pro K-sady hraniční vzdáleností. U M-sad může ležet mimo hranice. Všimněte si, že říkám může, nikoli musí. Všechno záleží na počátečním směru – azimutu - počátečního bodu, který jsme si mohli dovolit dříve ignorovat jen proto, že u dokonale symetrických K-sad neměl žádný význam. Jak se ukazuje, M-sady jsou symetrické pouze podle horizontální osy X. To se dá usoudit už z povahy rovnice. Ale patrně nikdo by nedokázal odhadnout skutečnou podobu. Kdyby mi tuto otázku někdy položil v předmandelbrotských dobách, patrně bych si tipl a řekl bych: „Bude to něco jako elipsa zmáčklá kolem osy Y.“ Možná (ale pochybuji o tom) bych uhádl i to, že bude protažena k levé, minusové straně.

V prvé řadě si zapamatujte, že je to protaženo doleva (nebo na západ, chcete-li) oproti K-sadě, která zůstává kolem osy X striktně v oboru od +1 do -1. M-sada se vpravo na ose X dostane pouze k 0,25, ačkoli nahoře i dole „přebobtná“ až za 0,4. Na levé straně se mapa roztahuje až k -1,4 a pak z ní vyráží dlouhý osten - nebo anténa - dosahující přesně k -2,00. Co se M-sad týče, za tímto bodem není nic. Je to okraj Vesmíru. Mandelbrotovi fanoušci to nazývají ‚naprostý západ‘ a můžete si sami vyzkoušet, co se stane, dosadíte-li c rovno -2. Z nebude konvergovat k nule, ale nedosáhne ani nekonečna, takže tento bod bude patřit ještě do sady. Dosadíte-li však za c číslo o maličko větší, řekněme -2,00000...000001, než se nadějete, minete Pluto a hasíte si to k nejbližšímu kvazaru.

Nyní se dostáváme k nejdůležitějšímu rozdílu mezi oběma sadami. K-sada má jako hranici hezkou úhlednou křivku. Hranice M-sad je mírně řečeno "střapatá". To pochopíte, až začnete zvětšovat, teprve pak uvidíte tu neuvěřitelnou flóru a faunu, která Mandelbrotův svět obývá. Hranice M-sady není jednoduchá křivka. Je to něco, co si Euklidés nikdy nedokázal představit a pro co v běžném jazyce neexistuje výraz. Mandelbrot, jehož znalost angličtiny je úžasná, prohledal slovník, aby vypátral výstižné slovo. Několik příkladů: pěna, houby, prach, pavučiny, sítě, sraženina. Sám razil technický výraz fraktál a ustavičně činil kroky namířené proti tornu, aby ho někdo definoval příliš konkrétně.

Počítače mohou snadno pořídit momentku M-sady jakékoli velikosti. Dokonce i v černobílém provedení jsou fascinující. Ale prostým trikem mohou být vybarveny a transformovány do objektů úžasné a neskutečné krásy. Původní rovnice se přirozeně barvami nezabývá. Ale pokud počítači přikážeme, aby dal jednotlivým bodům barvu podle počtu iterace bez ohledu na to, jestli jsou, a nebo nejsou součástí M-sady, výsledek bude úžasný.

Začal jsem tvrzením, že Mandelbrotova sada je nejneobyčejnější objev v historii matematiky. Koho by napadlo, že tak jednoduchá rovnice může vytvořit tak doslova nekonečnou složitost a takovou nadpozemskou krásu! Mandelbrotova sada je v podstatě mapa. Každý z nás četl nějaký ten příběh o mapách odhalujících polohu skrytého pokladu. Tak v tomto případě je pokladem sama mapa!

 

 

Mapa
1. Mapa

 

 

Pokud vás Clarkův výklad matematické podstaty fraktálů neuspokojil, nabízím vám zajímavé odkazy, v nichž najdete další a mnohem podrobnější informace. Ale žákům by měl Clarkův výklad postačit. Ti zvídavější mohou další informace nalézt také na internetu. Podle mých zkušeností fraktály žáky překvapí. Pro mnohé nejsou novinkou, protože se s nimi mohou setkat třeba v nabídkách tapet na plochu monitoru. Ale jen někteří se sami setkali s jejich tvorbou. Jako každá novinka je zaujme. Málokdo se ovšem pro ně trvaleji nadchne. Jen v několika případech jsem se později setkal s využitím fraktálů v jejich grafických projevech (tapeta, pozadí prezentace, webové stránky). Na rozdíl od Clarka nejsem fraktály uchvácen, ale jsem rád, když si tu a tam nějaký pěkný fraktálek vytvořím a nebo na internetu „narazím“ na novou galerii.

Rozhodnete-li se nabídnout žákům práci s fraktály, pak opravdu šikovným programem pro začátečníky je zmíněný program Kaosrhei. V něm byly vytvořeny všechny fraktály v naší galerii. Nápověda k programu, kterou jsem vytvořil zcela intuitivně, není úplná. Je ale dostačující a srozumitelná, což jsem u žáků ověřil. Práci s programem bez problémů zvládli i jedenáctiletí žáci (v primě gymnázia).

Fraktály lze zpestřit hodiny matematiky v septimě (posloupnosti a řady), podrobnější studium je možné zařadit do matematických seminářů, hodin informatiky a výpočetní techniky (algoritmy, grafy v EXCELU apod.). Téma je vhodné pro výuku v integrovaném technickém bloku, uplatnění našlo i ve výtvarné výchově (počítačová grafika).

Výběr z nabídky internetu na téma fraktály. Z tisíců webů předkládám následující:
cs.wikipedia.org/wiki/Frakt%C3%A1l
Wikipedie, otevřená encyklopedie - definice fraktálu,
uvádí se zde i vzorec Juliovy množiny:

zn+1 = z2n + c


martin.hinner.info/math/Fraktaly/
Martin Hinner, 1999 - Jemný úvod do fraktálů
kmlinux.fjfi.cvut.cz/~pausp1/html/skola/fraktaly/reserse.htm
Petr Pauš, rešeršní práce, 2003-04 - Počítačové generování fraktálních množin
www.chytraktim.cz/fraktaly/fraktaly_prehled.php - galerie fraktálů
projekt.pinknet.cz/fractal/ - galerie fraktálů
www.chaospro.de - zde je ke stažení program ChaosPro 3.2, nápověda je v angličtině.

 

Licence

Všechny články jsou publikovány pod licencí Creative Commons BY-NC-ND.

Hodnocení od uživatelů

Článek nebyl prozatím komentován.

Váš komentář

Pro vložení komentáře je nutné se nejprve přihlásit.

Článek není zařazen do žádného seriálu.

Článek pro obor:

Matematika a její aplikace