Fraktály

Lenka Eslerová

pokračování z minulého čísla

Minule jsme si začali povídat o fraktálech z trošku jiného pohledu, než jak je většina z vás zná. Špetka použité matematiky vás jistě neodradila, takže dnes můžeme směle pokračovat (k pochopení vám navíc pomohou obrázky).

Podobnostní dimenze
V předchozím článku jsem jako příklad fraktálu uvedla Sierpiňského trojúhelník. Pokud jste si ho zkusili sestrojit, nebo jste si alespoň dobře prohlédli obrázky, zjistili jste, že každé další přiblížení tohoto fraktálu dostaneme jako složení tří kontrakcí s koeficientem 1/2 a středy ve vrcholech trojúhelníku (viz obrázek). Tyto tři kontrakce nazýváme iterační systém funkcí (f1, f2, f3) a jejich koeficienty tvoří soubor zmenšení (r1, r2, r3) = (1/2, 1/2, 1/2).
Nyní uvažujme například úsečku AB mezi libovolnými body A a B, které nejsou totožné. Tuto úsečku můžeme složit například pomocí dvou kontrakcí se středy v bodech A a B a koeficienty 1/2 - viz obrázek. Zde máme iterační systém funkcí (f1, f2) a soubor zmenšení (1/2, 1/2).
Pokud budeme chtít něco podobného provést s normálním vyplněným trojúhelníkem, použijeme čtyři kontrakce s koeficienty 1/2 - je to skoro stejné jako u Sierpiňského trojúhelníku, ale přibude ještě jedna kontrakce se středem ve středu trojúhelníku, která zajistí, že náš normální trojúhelník nebude mít "vykousnutý" prostředek. Pro trojúhelník je tedy soubor zmenšení (1/2, 1/2, 1/2, 1/2).
Asi už se ptáte, k čemu nám to všechno bude. Takže bych měla konečně začít povídat o dimenzi (pokusím se všechno uvést hodně jednoduše tak, aby to mohli pochopit všichni čtenáři, a doufám, že to matematicky vzdělané nijak neurazí).
Dimenzi nějakého útvaru budeme chápat jako minimální počet "směrů", které potřebujeme k jeho popsání, což je myšleno následovně: bod je prostě jen jeden bod a nemá žádný směr, takže jeho dimenze je 0; na přímce je jeden směr, říkejme mu třeba "vpravo" (vlevo je totéž: můžeme se posunout třeba o minus tři centimetry doprava, tj. v našem jediném směru, čímž se dostaneme doleva), takže přímka má dimenzi 1; v rovině jsou dva směry, "vpravo" a "dopředu", a skládáním pohybů v těchto dvou směrech se zase můžeme dostat do kteréhokoliv místa, proto má rovina dimenzi 2; a konečně prostor má dimenzi 3 ("vpravo", "dopředu", "nahoru").
Z tohoto pohledu tedy také můžeme říci, že úsečka má dimenzi 1 (je to součást nějaké přímky) a trojúhelník (coby nějaká plocha) má dimenzi 2. Nyní si zavedeme tak zvanou podobnostní dimenzi a ukážeme si, že u "normálních" útvarů je stejná jako již uvedená dimenze.
Vzpomeňte si, že před chvílí jsme si ukazovali, jak jde úsečka a trojúhelník poskládat pomocí iteračního systému funkcí s příslušným souborem zmenšení. Budeme teď hledat číslo S s následující vlastnosti: když všechny koeficienty ze souboru zmenšení umocníme na S a posčítáme je, bude výsledek 1. Dá se dokázat, že pro libovolný soubor zmenšení takové S existuje a je právě jedno. Takto nalezené S budeme nazývat podobnostní dimenze.
U úsečky tedy musí platit

(0.5)^S + (0.5)^S = 1,

a vidíme, že je to splněno pro S = 1, neboť 1/2 + 1/2 = 1. Proto má úsečka podobnostní dimenzi 1. A jak je tomu s trojúhelníkem? Ten měl čtyři koeficienty, všechny rovné 1/2, takže musí být

4 * (1/2)^S = 1.

Říkali jsme si, že trojúhelník je nějaká plocha, takže bychom čekali dimenzi 2, proto zkusíme dosadit S = 2, a vidíme, že rovnost skutečně platí. Trojúhelník má tedy podobnostní dimenzi 2 stejně jako "normální" dimenzi.
U fraktálů tomu tak není. Například Sierpiňského trojúhelník je jakási "hodně děravá" plocha, takže bychom asi čekali, že jeho dimenze bude menší než 2 (což je dimenze plochy), ale pořád ještě je to něco víc než úsečky, a proto bude mít asi dimenzi větší než 1. Příslušný soubor zmenšení je (1/2, 1/2, 1/2) a rovnost, kterou chceme splnit je tedy

3 * (1/2)^S = 1,

odkud můžeme spočítat, že S = 1.5849. A tady zjišťujeme něco zajímavého: dimenze fraktálů nejsou celá čísla!
Na ukázku si ještě zjistíme dimenzi křivky Kochové (jak bylo řečeno minule, je to třetina "sněhové vločky"). Na obrázcích je vidět, že v tomto případě každé další přiblížení dostáváme složením čtyř stejných (jen různě natočených) třikrát zmenšených kopií předchozího stavu, takže soubor zmenšení je (1/3, 1/3, 1/3, 1/3). Pro dimenzi musí platit, že

4 * (1/3)^S = 1,

odkud spočítáme, že S = 1.2618...

Něco o komplexních číslech
Mezi nejznámější fraktály mimo všechnu pochybnost patří Mandelbrotova množina a fraktály typu Julia, které se konstruují na základě vlastností komplexních čísel, a proto začneme s nimi.
Představte si rovinu s osami x a y (pomůže vám obrázek). Každému bodu v rovině můžeme přiřadit dvojici čísel (x,y), kterou získáme promítnutím polohy bodu do obou os. Dvojice (x,y) se někdy zapisuje jako jedno číslo z = x + i *y, přičemž konstanta i je vymyšlené číslo, definované jako odmocnina z (-1) - jak jistě víte ze školy, záporná čísla nejde odmocňovat, takže naše i není žádné normální číslo, a proto s ním jdou podnikat takové různé podivnosti. Tohle číslo i můžeme dokonce zakreslit do roviny: protože platí i = 0 + i*1, bude číslu i odpovídat bod se souřadnicemi (0,1).
Číslům typu x + i*y říkáme komplexní čísla, x (první složka) se jmenuje reálná složka a y je imaginární složka. Rovině, ve které se pohybujeme, říkáme komplexní rovina. Ke každému komplexnímu číslu můžeme spočítat jeho vzdálenost r od počátku (to je něco jako nula, tedy bod (0,0)) pomocí Pythagorovy věty:

r^2 = x^2 + y^2.

Komplexní čísla se dají sčítat takto: je-li z1 =x1 +i*y1 a z2=x2+i*y2, pak jejich součet je

z=z1 +z2=(x1 +x2)+i*(y1 +y2),

což znamená, že sčítáme zvlášť reálné a zvlášť imaginární složky čísel.
Trošku složitější je násobení; zde je potřeba vědět, že i*i =-1 (nebol i je odmocnina z -1). Platí pak

z1 * z2=(x1 +i*y1) * (x2+i*y2)= x1 *x2 + x1*i*y2 + i*y1 *x2 + i*y1 *i*y2 = (x1 *x2 - y1 *y2) + i*(x1*y2+x2*y1).

Jak se kreslí Mandelbrot
Představte si, že obrazovka vašeho monitoru je kus komplexní roviny (jako by se tam obtiskl zmíněný obrázek). Každý bod na obrazovce tedy reprezentuje nějaké určité komplexní číslo c. Nyní začneme počítat posloupnost čísel: z1 = c; vezmeme toto číslo a spočítáme nové číslo z2 = z1 *z1 + c, potom z3 = z2*z2 + c a tak dále. Přitom budeme zjišťovat, jaká je vzdálenost jednotlivých napočítaných čísel od počátku. Pro některé body dostaneme posloupnost čísel, která se bude vzdalovat čím dál víc až do nekonečna; tato čísla do Mandelbrotovy množiny nepatří, příslušné body můžeme zakreslit třeba bíle. Ostatní čísla zůstanou pořád dost "blízko" (například nula zůstane pořád nulou), a jim příslušné body tvoří Mandelbrotovu množinu, zakreslíme je například černě. A tím je vše dáno. Mandelbrotova množina je tedy nějaká množina bodů kolem počátku, černě zakreslená - nuda, což? Fraktální programy vám ale pod označením Mandelbrot nabízejí něco barevnějšího jistě vás zajímá, co to vlastně je.
Většinou je vnitřek (okolí počátku) černý nebo jinak jednobarevný - to je skutečná Mandelbrotova množina. O ostatních bodech jsme si řekli, že příslušná napočítaná čísla z1, z2 atd. se vzdalují od počátku až do nekonečna. A zde se nabídla myšlenka roztřídit je podle rychlosti, což se dělá přibližně takto: vezme se nějaký kruh kolem počátku, například s poloměrem 5 (uvnitř jsou tedy čísla, která mají od počátku vzdálenost menší než 5) a počítáme posloupnost čísel tak dlouho, dokud ještě leží uvnitř kruhu. Pokud jsme se dostali ven dřív než při pátém čísle, dostane bod žlutou barvu. Překročíme-li hranici později, ale dříve než při desátém čísle, bude mít bod barvu červenou, a tak dále; všechna čísla, která i po stém kroku zůstanou uvnitř, prohlásíme za část Mandelbrotovy množiny (neznám nikoho, kdo by zkoušel počítat nekonečně mnoho kroků :=) a obarvíme je černě. To je najednou barviček! Příklad takového obarvení najdete na jednom z obrázků.
Nejzajímavější je samozřejmě hranice Mandelbrotovy množiny, tedy výřezy, v nichž leží jak body z množiny, tak ty, které do ní nepatří - zde je barev nejvíce; navíc můžeme zvětšit jakýkoliv detail a dostaneme tak nové a nové podrobnosti (to je běžná vlastnost fraktálů, povídali jsme si o tom už minule). Několik takových detailů najdete na zbývajících obrázcích; na obrázku s motivem části spirály je orámována část obsahující další spirálu - všimněte si, že opakování podobných prvků je charakteristické; někdy se objeví i zmenšená kopie celé Mandelbrotovy množiny. Potěšte se krásou fraktálových světů a příště opět nashledanou!



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing