Pokud se rozhlédnete okolo seme, vidíte okolo sebe nepřeberné tvary věcí. Podíváte-li se pozorněji, zjistíte naopak, že příroda je vlastně velmi šetrná a že se určité tvary neustále s malými obměnami opakují.
Vemte si třeba mapu světa a podívejte se na Amazonku. Na mapě naší republiky se podívejte třeba na Sázavu či jakoukoliv jinou řeku. Na kterékoliv turistické mapě se podívejte na jakýkoliv potok. Vždy vypadá vodní tok podobně. Kdybyste neznali měřítko mapy, podle tvaru vodních toků nemáte šanci jej odhadnout.
Stejně tak kousek kamene je podobný hoře, větvička se podobá stromu a sami jistě najdete velké množství dalších příkladů. Těmito zákonitostmi se zábývají i matematikové a takové příklady nazývají je fraktálovými strukturami. Fraktály rozumíme nějaké struktury, které se v sobě s nějakou periodicitou samy opakují. Příkladem může být třeba tzv. sněhová vločka Kochové - vychází vlastně z rovnostranného trojúhelníka, jemuž postupně na všech jeho stranách "vyráží" další, stále menší rovnostranné trojúhelníky. V tomto čísle FLOPu najdete pod názvem VLOCKA.TBA jednoduchý program, který tento fraktál kreslí.
Právě fraktály jsou ty správné útvary, hodící se k popisu okolní přírody. Kdyby mraky byly kulové, hory kužely, řeky tekly po přímkách, byla by geometrie světa velice jednoduchá. Takto to napsal B. Mandelbrot ve své knize "Fraktálová geometrie přírody". Mandelbrot se rozhodl změřit délku pobřeží Britských ostrovů. Zvolil nějaké měřítko (např 100 km) a poté je "přikládal" na pobřeží a zkoumal, kolikrát jej bude muset vynést. Délka pobřeží je potom rovna délce měřítka vynásobeného počtem nanesení. Poté vzal měřítko s poloviční délkou a postupně celé měření znovu opakoval se stále se zmenšujícím měřítkem. Je samozřejmé, že čím menší měřítko, tím byl obvod větší, protože malé měřítko lépe kopíruje různě rozeklané pobřeží. Otázkou zůstává, kam až chceme při měření zajít.
Nejrůznějších fraktálů je obrovská spousta. Jmenujme např. Hilbertovu křivku, což je řára vyplňující plochu, Cantorovo diskontinuum, funkce dr. Kochové, která je spojitá a přesto nemá v žádném bodě derivaci atd.
Já bych tu chtěl představit snad nejznámější Mandelbrotův fraktál. Odvozuje se od komplexních čísel. Pro ty, kteří nevědí, o čem mluvím, velice stručné přiblížení. Komplexní číslo zapisujeme ve tvaru:
z = a + bi
kde a a b jsou normální, běžná reálná čísla a i je tzv imaginární jednotka, pro níž platí, že i*i=-1. Komplexní čísla již nelze vynášet na číselnou osu. vynášíme ji do roviny, kde číslo a je na reálné ose x a b na imaginární ose y. Komplexní čísla mají velice zajímavou matematiku. Jen pro ilustraci: absolutní hodnota komplexního čísla je vždy reálná a je to vzdálenost bodu o souřadnicích a,b od počátku a počítá se pomocí pythagorovy věty. Tak komplexní číslo 3+4i má absolutní hodnotu 5.
B Mandelbrot se rozhodl vypočítat pro různá komplexní čísla c posloupnosti
z = z*z + c
kde z je zpočátku 0 (0+0i). Výsledek se umocní na druhou a znovu sečte s původním číslem c. Mandelbrot zkoumal, kolikátý člen řady přeskočí určitou mez (konkrétně kružnici se středem v počátku a o poloměru 2). Pomocí počítače (bez něj je to neproveditelné) prozkoumal celou komplexní rovinu. Výsledky se dají zobrazovat různě, velice názorné a jednoduché je to pomocí barevných vrstevnic. Ve shodě s původními Mandelbrotovými předpoklady se ukázala velice jemná a komplikovaná struktura.
Když jsem se připravoval k napsání článku o fraktálech, dostal se mi do rukou program RNDr Jaromíra němce, který vyšel ve VTM 18/89. V turbobasicu umožňuje mapovat rovinu a výsledky zobrazovat v gr. módu 15. Stačí zadat oblast (formou x a y souřadnic levého dolního rohu), zvětšení ve směru osy x (vlastně velikost obrazovky) a limit, kolik nejvíc členů řady má počítač zkoušet. Existují totiž nekonečné "hlubiny", čísla, pro něž členové posloupnosti nikdy nepřekročí hranici. Běžný limit je 100. Program je nastaven tak, aby pro body roviny střídal postupně barvy červenou, modrou a zelenou. Pokud hranici překročí až 90 - 100 člen (posledních 10 počítaných členů), zobrazí se tyto hraniční oblasti bíle. Program poskytuje poměrně pěkné obrázky, z nichž dva tady uvádím. Jedinou podstatnou nevýhodou programu je velice dlouhá doba výpočtu (řádově hodiny), proto doporučuji zadávat výpočty např. přes noc, kdy počítač stejně "lelkuje" :-).
Při pokusech s tímto programem doporučuji postupovat tak, že si na prvním obrázku, (který byl pořízen s parametry x=-3, Y=-1,5, zvětšení=5 a limit=100 - celý obrazec) oblast, kterou budete dále zvětšovat. Nedoporučuji zvětšovat více jak 2x až 4x, jinak se nemusíte do "svého" motivu trefit. Netřeba snad připomínat, že pro zvětšování jsou užitečné pouze "strakaté" hraniční oblasti. Teoreticky můžete zvětšovat do nekonečna, vzhledem k tzv. BCD kódování proměnných lze jít prakticky do hodnot zvětšení 10 na -9, tedy miliardtiny. Komu se to zdá málo, nechť uváží, že pokud budeme uvažovat rozměry v metrech, tedy celý obrazec bude veliký asi 2,5 metru, potom budeme moci na obrazovce vidět struktury atomárních rozměrů! Při dramatickém zvětšování také již nevystačíme s limitem 100, protože struktura by nám zanikla v "bílém" hraničním pásu, nebo by byla zcela "utopena" pod "hladinou". Například druhý obrázek je pořízen s parametry x=-0.762314, y=0.082855, zvětšení=3.223E-6 a limit=250. Zvýšení limitu však nepříjemně prodlužuje výpočet. Druhý obrázek byl počítán 9 a půl hodiny, ovšem zkompilovanou verzí a při zhasnuté obrazovce. Normálně by výpočet trval cca 26 hodin!
Přesto věřím, že se Vám bude program líbit a pořídíte s ním zajímavé obrázky. Nakonec bych mohl poradit ještě dva "tipy". Zkuste například:
x=-0.7026 y=0.3451, zvět.=0.069 limit=100
a
x=-0.1354 y=0.9825 zvět.=0.0166 limit=100
Zvláště druhý příklad je zalímavý, protože tam najdete téměř 100x zmenšený obraz původního obrazu. Je to prostě fraktál...
Jan Walla