ISSN 0351-6652 Letnik 24 (1996/1997) Številka 6 Strani 322-327, XXI-XXIV Primož Potočnik: MANDELBROTOVA IN JULIAJEVE MNOŽICE Ključne besede: matematika. Elektronska verzija: http://www.presek.si/24/1320-Potocnik.pdf © 1997 Društvo matematikov, fizikov in astronomov Slovenije © 2010 DMFA - založništvo DRUŠTVO MATEMATI^QV»FIZIKOV IN A! ISSN 0351-6652 U ' MANDELBROTOVA IN JULIAJEVE MNOŽICE Matematika si ljudje ponavadi predstavljajo kot zamišljenega in raztresenega človeka, oblečenega v zastarela ter malce premajhna oblačila, kako zgolj s kredo v roki na tablo izpeljuje težavne in navadnemu smrtniku povsem nerazumljive matematične teorije. Kot ni dima brez ognja, je tudi v tej predstavi kanček resnice. Kljub temu pa je večina sodobnih matematikov odkrila, daje sem in tja poleg krede in lastnega genija koristno pri svojem delu uporabiti tudi modernejša sredstva, denimo računalnik. Hudomušni bralec bi sicer pripomnil, da so do tega spoznanja prišli le tisti, ki jim primanjkuje bodisi krede bodisi genija, vendar ostaja dejstvo, da so se s pojavom in razvojem računalnikov pospešeno začela razvijati tudi nekatera matematična področja. Eno takšnih je tudi področje fraktalov in kaosa, kamor lahko uvrstimo tudi pričujoči prispevek. Fraktali in kaos so se zelo hitro uveljavili tudi v nematernatičnih krogih, saj jih ponavadi spremljajo presenetljivo lepe in zanimive slike, ki lahko navdušijo gledalca zgolj s svojo estetsko vrednostjo. Nekaj lepih primerkov fraktalov se je pojavilo tudi že v Preseku (glej prispevek Matija Lokarjao praprotih v l. številki letnika 1995/96 in Milana Ambrožiča o Newtonovi metodi v 5. številki istega letnika).1 Tokrat bomo predstavili fraktale, ki se imenujejo po matematikih Juliaju in Mandelbrotu. Ker je Presek tudi list za mlade matematike, je prav, da poskušamo matematično ozadje, ki se skriva za lepimi barvnimi slikami, čim razumljiveje predstaviti. Naša zgodba se bo odvijala v množici kompleksnih števil C, ki si jo bomo predstavljali kot ravnino - vsakemu kompleksnemu številu x + iy pripada točka s koordinatami (x, ij) v ravnini. S kompleksnimi števili znamo računati: (x+iy)+(u+iv) = (a:-|-u), (2'+iy){u+«i) = (a?ii — ( in jim določiti absolutno vrednost ki v resnici predstavlja oddaljenost slike kompleksnega števila od koordinatnega izhodišča. 1 Fraktale nahajamo tudi v naravi. Zanimiv primerek k.'v/»U: fotografiji na naslovnici in II. strani ovitka. Juliajeve množice Za izbrano število c € C definirajmo kvadratni polinom Pc{z) = z2 + c. Takšen polinom nam preslikuje točke kompleksne ravnine nazaj v kompleksno ravnino, zato lahko za poljubno število zq £ C opazujemo zaporedje ZO, Zl = Pc(zo),. Zi = Pc{zi),..., Zn+1 = Pc{zn),.-. Temu zaporedju rečemo orbita točke zq, točki z o pa seme orbite. Dogodi se lahko dvoje: 1. orbita lahko sčasoma pobegne daleč od izhodišča, ali z drugimi besedami, množica {|zq[, |zi|, .. .} je neomejena, 2. orbita ostane na nekem omejenem področju kompleksne ravnine, kar pomeni, daje množica {|zq|, |zi|,. ..} omejena. Množico tistih semen, kateri 11 orbite so omejene, označimo z Jc in ji rečemo Juliajeva množica pri parametru c. Za pokušino si oglejmo primer Juliajeve množice pri parametru c = 0. Tedaj je orbita poljubnega semena zq € 1), se bo orbita (z„) oddaljevala od izhodišča prek vseh mej z večanjem števila n. To pa pomeni, daje Juliajeva množica Jc pri parametru c = 0 enaka kar enotskemu krogu (s središčem v izhodišču in polmerom 1). Nič posebnega, boste rekli, samo zelo zapleten način definiranja enotskega kroga. Mnogo bolj zanimivo pa postane, če za parameter c izberemo kakšno drugo kompleksno število. Slika 1. Slika 2. i ... v fc. ..... v- Mr g ■ r Slika 3. Slika 4. Poglejmo si slike 1, 2, 3 in 4. Struktura teh Juliajevih množic je že mnogo zapletenejša. Na sliki 1 imamo množico Jc pri parametru c = 0.15 + 1.2St, torej pri parametru, ki je relativno blizu izhodišču kompleksne ravnine. Tu je Juiiajeva množica do neke mere še podobna krogu. Precej drugačno situacije imamo na sliki 2, kjer smo za parameter izbrali c = 0.3+0.Si. Tu je struktura že mnogo zapletenejša in rob množice Jc je dobil značilno fraklalno obliko - če bi sliko povečevali v okolici kakšne robne točke, bi odkrivali vedno finejše podrobnosti in strukture, ki bi na pogled zelo spominjale na začetno sliko. Ko parameter c oddaljujemo od izhodišča, postaja množica J& vse tanjša in nekje se zgodi, da razpade na prah nepovezanih točk, ki se sčasoma skoraj popolnoma razkadi in izgine z naše slike. Če slike l, 2, 3 in 4 pogledamo podrobneje, opazimo, da so vse Ju-liajeve množice omejene. Ali je to zgolj naključje ali velja splošneje? V resnici velja splošno. Prepričajmo se! Naj bo c £ £ parameter množice Jc in z R označimo večje od števil 2 in |c|. Vzemimo seme z lastnostjo 20| > R. Dokazali bomo, da je njegova orbita neomejena in da zato ne pripada Juliajevi množici Jc. Tako se bomo prepričali, daje vsa množica Jc res znotraj kroga okoli izhodišča s polmerom R. Definirajrno q = |zol — 1- Ker velja > R > 2, velja tudi q > 1. Za poljubno naravno število k ocenimo k+il=k2 + e| k|3-|c|_ JH M M - M 11 ki d) S pomočjo te formule in indukcijo doka.žimo, da za poljubno naravno število k velja Nfc+il > ffHI ■ (2) Matematika 325 Za k ~ O, nam (1) pravi: 1*0| 1*0| in Če zgornjo neenakost še množimo s številom |zq|, že dobimo trditev (2) za primer k — 0. Vzemimo sedaj poljubno naravno število n in predpostavimo, da trditev (2) drži za števila k < n. Če bomo s pomočjo te predpostavke dokazali, da velja tudi za število k — n, nam bo princip matematične indukcije zagotovil veljavnost formule (2) za vsa naravna števila k. Po indukcijski predpostavki velja M > i|zrt-i| > q*W-al > m > ?"M > zo ■ Zato velja tudi —> Upoštevajmo še formulo (1) za k = n in ocenimo \Zn\ ~ " |z») ~ |*o| S tem je formula (2) dokazana za število k = n, in 9 tem za vsa naravna števila k. Od tod sledi zveza M > i|*»-il > ?2|«v-al - > ?n|Se| za vsako naravno število n. Ker geometrijsko zaporedje (?")ng raste prek vsake meje za q > 1, je orbita semena Zq neomejena in zato takšno seme ne pripada Juliajevi množici. S tem smo omejenost Juliajevih množic dokazali. To dejstvo nam zelo olajša risanje množice Jc s pomočjo računalnika. Če želimo za neko kompleksno število zu preveriti, ali je element Juliajeve množice, zaporedoma računamo elemente zn njegove orbite in takoj, ko za neko naravno število n dobimo oceno jčn| > max{2, |c|}, lahko zatrdimo, da zo ni element Juliajeve množice. M a n del bratova množica Kot vidimo na slikah 1 do 4, niso vse Juliajeve množice povezane, če bi imeli na razpolago več primerov, bi opazili, da je Juliajeva množica povezana natanko tedaj, ko vsebuje točko 0. Na podlagi tega kriterija lahko ločimo parametre c £ (C v dve družini: 1. na tiste c 6 £, za katere je 0 € Jc, in je zato Jc povezana množica, 2. na tiste c £ C, za katere 0 0 Jc, in je zato Jc nepovezana množica. Množico kompleksnih števil c iz prve družine imenujemo Mandelbro-tova množica in jo označimo z M : M = {c€V- 06 Jc). Če torej želimo za dano kompleksno število c preveriti, ali pripada Man-delbrotovi množici, moramo preveriti, ali je orbita semena zq — 0 pri polinomu Pc omejena. Takšna orbita je oblike za = 0, zi = O2 + c = c, z2 = c" + c, z3 = (c2 -j- c)2 + c, ... (hi) Ce ugotovimo, da absolutne vrednosti elementov takšne orbite ostanejo omejene (ne rastejo prek vsake meje), je število c element Mandelbrotove množice. Podobno kot pri Jutiajevi množici se lahko tudi tu prepričamo, da takšna orbita gotovo ni omejena, če kateri od njenih elementov postane po absolutni vrednosti večji od števila 2. Zato je v resnici dovolj preveriti, ali so vsi elementi orbite omejeni s številom 2. Ker je število c samo tudi element orbite (*), lahko sklepamo, da se Mandelbrotova množica nahaja v krogu okoli izhodišča s polmerom 2. Za zgled preverimo, ali je število —2 element Mandelbrotove množice. Oglejmo si orbito semena 0 pri c = —2: 0, -2, (—2)2 — 2 — 2, 22 — 2 — 2, 2, 2, ... Orbita se ustali pri številu 2 in je zato omejena, to pa pomeni, da je -2 €M. Oglejmo si sedaj sliko 5, kjer je Mandelbrotova množica predstavljena s črno barvo. Rob Mandelbrotove množice je fraktalen - bliže si ga ogledujemo, bogatejšo strukturo lahko opazimo. Na sliki 0 smo povečali del slike 5 okoli točke -0.76315 - 0.08855i za približno 1000-krat. Množica M je sicer povezana, a jo vendar lahko razbijemo na več komponent, ki se med seboj dotikajo le v eni točki. Največja komponenta ima obliko krivulje srčnice, ostale pa so okrogle in so razporejene ob robu največje. Konci posameznih komponent so okrašeni še s tankimi laski, ki pa jih na sliki zaradi preslabe resolucije žal ni najbolje videti. Kako narisati Mandelbrotovo ali Juliajevo množico? Odgovor je preprost - z računalnikom. Kako? Presenetljivo enostavno, le definiciji obeh množic je treba upoštevati. Denimo, da želimo na zaslonu prikazati Juliajevo množico Jc pri izbranem c £ (C. Kot vemo, je zaslon razdeljen na m x n točk, ki je vsaka lahko obarvana z eno od barv 0,1,2,. ..,6. Ponavadi pomeni 0 črno barvo in jo porabimo za barvanje množice Jc, ostale pa za barvanje zunanjosti. Števila mynyb so seveda odvisna od zmogljivosti računalnika in programskega jezika, v katerem programiramo. Vsaki točki zaslona priredimo ustrezno točko dela kompleksne ravnine, ki ga želimo predstaviti na zaslonu. Za vsako od teh m x n točk moramo preveriti, ali pripadajo množici Jc ali ne. V ta namen izberemo neko dovolj veliko naravno število N, ki bo predstavljalo maksimalno število iteracij, kijih bo računalnik izvedel. Za vsako od m x n točk kompleksne ravnine, denimo Zq, pričnemo računati zaporedje Določimo število R tako, da bo veljalo R > 2 in R > \c\. Če pri nekem številu k dobimo oceno > lo pomeni, da točka zq ni element množice Jc in računanje naslednjih členov zaporedja (z„) lahko opustimo. Zanimive barvne učinke dosežemo, če takšno točko obarvamo z neko barvo, ki je odvisna od števila fc, denimo z barvo (fcmodt) + 1} lahko pa poskusimo tudi s kakšno drugo funkcijo števila k. Ce števila ostanejo omejena s številom R za vse k < N, lahko domnevamo, da točka Zq pripada množici JCj in zato pripadajočo točko na zaslonu obarvamo % barvo 0 (črno). Podobno predstavimo na računalniku Mandelbrotovo množico M. Vsaki točki zaslona zopet priredimo ustrezno točko kompleksne ravnine in za vsako od njih, denimo ct preverimo, ali ostaja zaporedje = 0, 1 = z* + c , omejeno po absolutni vrednosti s številom 2. Ce zaporedje pri nekem številu k pobegne iz kroga okoli izhodišča s polmerom 2, pobarvamo ustrezno točko na zaslonu neko barvo, ki naj bo odvisna od k7 če pa zaporedje ostane omejeno z 2 za vse k < N, točko pocrnimo. Na takšen način dobimo seveda le približno podobo Mandelbrotove in Juliajevih množic. Večje število iteracij jV izberemo, bliže je podoba resnici. Tako smo pri sliki 7 postavili število iteracij na 100, pri sliki 8, kjer so nas zanimale finejše podrobnosti, pa kar na 1000. Primož Potočnik