![]() Broj 4 |
![]() |
||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Hrvoje Eklić |
||||||||||
Eksperimentalno određivanje fraktalne dimenzije |
![]() |
||||||||||
![]() |
|||||||||||
Sadržaj:1. Uvod: Što su to fraktali?2. Dimenzije 2.1. Euklidska dimenzija 2.2. Fraktalna dimenzija 3. Eksperimentalno određivanje fraktalne dimenzije linije 3.1. Opis rada programa 3.2. Određivanje fraktalne dimenzije Kochove krivulje pomoću programa 3.3. Određivanje fraktalne dimenzije obale 4. Izvršna datoteka programa 5. Literatura 1. UvodU sklopu kolegija "Uvod u matematičku teoriju kaosa za inženjere", koji na Fakultetu elektrotehnike i računarstva u Zagrebu predaje prof.dr.sc. Mervan Pašić, studenti se upoznaju s pojmom fraktalne dimenzije i s metodama njezinog računanja na primjerima klasičnih fraktala. U ovom radu prikazat ćemo vlastiti program za eksperimentalno određivanje fraktalne dimenzije klasičnih fraktala kao i skupova fraktalnog tipa koji se pojavljuju u prirodi. Pomoću programa moguće je na interaktivan način odrediti fraktalnu dimenziju svih poznatijih fraktala, ali moguće je odrediti i aproksimaciju fraktalne dimenzije nekog otoka, dijela obale ili bilo koje slične razlomljene linije. Tipičan primjer fraktala u prirodi izgled je bilo koje obale. Kad joj dužinu mjerimo npr. štapovima različitih dužina, dobit ćemo različite rezultate. Štapom najveće dužine izmjerit ćemo najmanju dužinu te obale. Kraćim štapom izmjerit ćemo veću dužinu obale jer ćemo mjerenjem uzeti u obzir i manje krivudavosti obalne linije (Slika 1). Vrlo kratkim štapom izmjerit ćemo dužinu obale koja može biti vrlo velika. To je tzv. paradoks dužine obale. Njega najbolje ilustrira sljedeći podatak: navodeći duljinu zajedničke granice između Španjolske i Portugala, španjolska enciklopedija navodi podatak od 987 km, a portugalska enciklopedija navodi 1214 km! Razlika je preko 200 km!
Postoji još mnogo primjera fraktala u prirodi koja nas okružuje. Sve su to oblici kao što su: planine, stabla, oblaci, jezera i još mnogi drugi.
Otac fraktala je francuski matematičar
Benoit Mandelbrot.
Rođen je 20.11.1924. u Varšavi.
Početkom 70-ih godina prošlog stoljeća opisao je matematiku koja nam danas pomaže
pri analizi nepravilnosti u svijetu. Nove objekte nazvao je fraktali.
Taj naziv dolazi od latinske riječi fractus, što znači razlomljen,
slomljen, polomljen. Mandelbrot je dao i preciznu definiciju
fraktala: O fraktalnoj dimenziji bit će više riječi u sljedećem poglavlju. Osim te definicije, može se reći da su fraktali skupovi točaka koji imaju 3 važna svojstva: sličnost samome sebi (engl. self-similarity), fraktalnu dimenziju (engl. fractal dimension) i oblikovanje iteracijom (engl. formation by iteration). Sličnost samome sebi svojstvo je objekta da sliči sam sebi bez obzira koji njegov dio promatrali i koliko ga puta uvećali. Uvijek ćemo dobiti sliku koja sliči početnoj. Fraktalna dimenzija naziva se još i razlomljena dimenzija zato što ne mora biti cijeli broj, kao što je to npr. euklidska dimenzija. Ona opisuje i neka svojstva objekta kao što su izlomljenost i hrapavost. Specifično za fraktalnu dimenziju je to što ona ostaje konstantna bez obzira na mjerilo. Detaljnije objašnjenje fraktalne dimenzije nalazi se u sljedećem poglavlju. Oblikovanje iteracijom svojstvo je da se objekt može generirati nekim računskim ili geometrijskim postupkom koji se uzastopno ponavlja. Uglavnom, postoji početni objekt (engl. initiator) u koji se iterativno ugrađuju svojstva generatora (engl. generator). 2. Dimenzije2.1. Euklidska dimenzijaLikovi klasične, euklidske geometrije su točka, pravac, ploha i tijelo. Točka ima dimenziju 0 jer nema nijedan stupanj slobode, tj. nema ni dužinu ni širinu ni visinu. Pravac ima dimenziju 1 jer ima 1 stupanj slobode. Ploha ima 2 stupnja slobode, dužinu i širinu, a nema visinu. Dakle, dimenzija plohe je 2. Tijelo ima 3 stupnja slobode u euklidskom prostoru: širinu, dužinu i visinu, dakle dimenzija mu je 3.Kako matematički odrediti dimenziju? Uzmimo segment (jednodimenzionalni objekt) bilo koje duljine i podijelimo ga na 4 manja segmenta jednakih duljina:
Za liniju: D = ln(4) / ln(4) = 1, za kvadrat: D = ln(16) / ln(4) = 2, za kocku: D = ln(64) / ln(4) = 3. Zaključak Neke stvari u svijetu oko nas možemo dobro definirati pomoću 3 dimenzije klasičnog euklidskog prostora. Na Slici 2 prikazani su neki takvi primjeri: vlak koji se kreće po tračnicama ima samo jedan stupanj slobode, kreće se u jednoj dimenziji. Jedrilica koja plovi površinom jezera kreće se u dvodimenzionalnom prostoru. Jedino zrakoplov ima sva 3 stupnja slobode, tj. može se kretati u bilo kojem smjeru unutar trodimenzionalnog prostora.
2.2. Fraktalna dimenzijaKao što je već prije napomenuto, fraktalna se dimenzija naziva još i razlomljenom dimenzijom jer ne mora nužno biti cijeli broj. Ona opisuje neka svojstva predmeta kao što su izlomljenost, hrapavost i slično. Fraktalna dimenzija (tj. stupanj nepravilnosti) ostaje konstantna bez obzira na mjerilo, što se u prirodi vrlo često pokazuje točnim (tipičan primjer su obalne crte nekog otoka koje imaju fraktalna obilježja). Fraktalnu dimenziju sebi sličnog skupa definiramo s:d = log(P) / log(s), gdje se objekt (skup) sastoji od P kopija samog sebe umanjenih za faktor s. Ova definicija vrijedi samo za sebi slične skupove. Za širu klasu skupova mogu se upotrijebiti Hausdorffova i "kutijna" dimenzija (box dimension).
1. Cantorova prašina
d = log(P) / log(s) = log(2) / log(3) = 0.6309... . Dobivena dimenzija zadovoljava i Mandelbrotovu definiciju fraktala, a to je da su fraktali geometrijske strukture kojima je fraktalna dimenzija veća nego topološka dimenzija. Topološka dimenzija Cantorove prašine jednaka je nuli. Fraktalna dimenzija Cantorove prašine približno iznosi 0.6309, što je veće od 0, dakle, Cantorova prašina je fraktal.2. Kochova krivulja
d = log(P) / log(s) = log(4) / log (3) = 1.2618595... . Fraktalna dimenzija Kochove krivulje je, kao i kod Cantorove prašine, veća od topološke dimenzije. Topološka dimenzija Kochove krivulje je 1, a fraktalna dimenzija joj je veća od 1.3. Sierpinskijev trokut
d = log(P) / log(s) = log(3) / log(2) = 1.585... . 4. Minkowskijev fraktal
d = log(P) / log(s) = log(8) / log(4) = 1.5 . 5. Peanova krivulja
d = log(P) / log(s) = log(9) / log(3) = 2 . Peanova krivulja ima topološku dimenziju 1, a fraktalnu dimenziju 2. To je primjer krivulje koja jest fraktal jer joj je fraktalna dimenzija veća od topološke, a fraktalna dimenzija joj je ipak cjelobrojna, a ne razlomak. To je zato što ova krivulja, kako broj iteracija teži u beskonačnost, prekriva cijelu površinu.3. Eksperimentalno određivanje fraktalne dimenzije linije3.1. Opis rada programa
Program za računanje fraktalne dimenzije koristi formulu d = log(P) / log(S). S je omjer veće i manje stranice, a P je omjer broja linija u (n+1)-oj iteraciji i n-toj iteraciji. U polju s parametrima (3) prije početka rada s programom potrebno je upisati početnu duljinu linije i S, tj. omjer veće i manje linije. Na primjer, ako u polju s parametrima (3) upišemo za dužinu linije 100, a za S upišemo 4, to znači da ćemo u n-toj iteraciji koristiti liniju dužine 100 piksela, a u (n+1)-oj iteraciji liniju dužine 25 piksela zato što je S = 4, a 100 / 4 = 25. Dakle, S zadajemo sami, a P ćemo dobiti nakon što neku liniju ili fraktal prijeđemo prvo linijom veće dužine, a zatim i linijom manje dužine. Na primjer, ako u n-toj iteraciji liniju ili fraktal prijeđemo s 3 duže linije, a u (n+1)-oj iteraciji s 15 linija koje su S puta kraće, tada P iznosi: P = 15 / 3 = 5. Za navedeni primjer S iznosi 4, a P iznosi 5. U tom slučaju fraktalna dimenzija bila bi d = log(P) / log(S) = log(5) / log(4) = 1.16 . 3.2. Određivanje fraktalne dimenzije Kochove krivulje pomoću programaDa bismo odredili fraktalnu dimenziju Kochove krivulje pomoću programa, potrebno je učiniti sljedeće:1. Učitati sliku Kochove krivulje klikom na gumb za učitavanje slike (2). Nakon pritiska na gumb u izborniku treba odabrati sliku (u jpg ili bmp formatu) koju treba učitati. Ta će se slika prikazati u okviru za sliku u središnjem dijelu prozora programa. Ovaj korak nije nužan, ali će olakšati daljnji rad s programom. Kochova krivulja relativno je jednostavna, ali za neke složenije linije (npr. linije neke obale ili otoka) gotovo da je nemoguće odrediti fraktalnu dimenziju bez slike te linije. Nakon učitavanja slike prozor programa izgleda kao na slici dolje.
3. Nakon učitavanja slike i određivanja početne dužine linije i parametra S, treba kliknuti na gumb (5) "n-ta iteracija". Tada cijeli fraktal u n-tom koraku iterativnog postupka (u konkretnom slučaju je n = 1) treba prijeći linijama. Početna dužina linije zadana je u okviru (3) "Parametri". Krenimo npr. slijeva nadesno. Kliknimo mišem na krajnje lijevu točku krajnje lijeve linije. Nakon toga kliknimo mišem na desnu točku te iste linije. Nakon toga na sljedeću točku u nizu i tako dalje dok ne dođemo do zadnje točke zadnje linije fraktala. U svakom trenutku program se brine da su sve linije koje ste povukli jednake dužine, i to upravo one početne zadane dužine linije. Popis svih točaka na koje ste kliknuli nalazi se na desnoj strani prozora programa, a označen je brojem (8). Nakon što ste cijeli fraktal prešli linijama, prozor programa izgledat će slično kao slika dolje (sve linije koje prikazuju fraktal u 1. koraku iteracije bit će prekrivene crvenim linijama, a u popisu točaka (8) nalazit će se popis svih točaka na koje ste kliknuli).
3.3. Određivanje fraktalne dimenzije obaleUčitajmo sliku nekog dijela obale ili otoka kojemu želimo izračunati fraktalnu dimenziju. Prozor programa prikazan je na slici dolje.
3. i 4. Sada kliknemo na gumb "n-ta iteracija" i prijeđemo cijelu sliku obale dužim "štapom" tako da krenemo od jedne strane obale (lijeve ili desne) i mišem slažemo linije preko linija obale tako dugo dok ne dođemo do druge strane obale. Nakon toga kliknemo na gumb "(n+1)-a iteracija" i ponovimo cijeli postupak sa S puta kraćom linijom. U konkretnom slučaju, prvo liniju obale prijeđemo linijama dužine 60 piksela, a nakon toga linijama dužine 30 piksela jer je S = 2. Kao što se vidi na gornjoj slici, da bismo obalu prekrili dužim štapovima, potrebno je 6 štapova, a da bismo obalu prekrili kraćim štapovima, potrebno je 15 štapova. Na kraju kliknemo na gumb "Kraj" i u listi na desnoj strani prozora pojavit će se rezultat: d = 1.3219... To je fraktalna dimenzija promatranog dijela obale. Što je fraktalna dimenzija nekog dijela obale veća, to je taj dio obale više krivudav, tj. "razvedeniji". 4. Izvršna datoteka programaIzvršnu datoteku programa možete isprobati ovdje.Napomena: Program je napisan za Microsoft Windows XP u programskom jeziku Visual Basic 6.0, te je potrebno imati instalirane Visual Basic Runtime kontrole. Njih je moguće pronaći na CD-u u svim odgovarajućim informatičkim časopisima ili ovdje. 5. Literatura[1] Mervan Pašić: Nastavni materijal kolegija "Uvod u matematičku teoriju kaosa za inženjere", FER, Zagreb.[2] H.O.Peitigen, H.Jurgens, D.Saupe: Chaos and Fractals. New Frontiers of Science, Springer, Berlin, 1992. [3] Vlatka Antončić, Andro Galinović: Galerija fraktala, Hrvatski matematički elektronski časopis "math.e", br. 2, 2004. [4] Fractals and the Fractal Dimension, Vanderbilt University. [5] C. Lanius: Fractal Dimension, Rice University.
[6] M.A. Connors:
Exploring Fractals, University of Massachusetts, Amherst.
1. Uvod: Što su to fraktali? 2. Dimenzije 2.1. Euklidska dimenzija 2.2. Fraktalna dimenzija 3. Eksperimentalno određivanje fraktalne dimenzije linije 3.1. Opis rada programa 3.2. Određivanje fraktalne dimenzije Kochove krivulje pomoću programa 3.3. Određivanje fraktalne dimenzije obale 4. Izvršna datoteka programa 5. Literatura |