670 likes | 911 Views
Koliko je duga britanska obala?. Andrea Barčan i Konrad Burnik. Kratki uvod. Godine 1967.matematičar Benoit Mandelbrot objavljuje svoj rad pod naslovom: “ How Long Is the Coast of Britain? Statistical Self-Similarity and Fractional Dimension ”
E N D
Koliko je duga britanska obala? Andrea Barčan i Konrad Burnik
Kratki uvod Godine 1967.matematičar Benoit Mandelbrot objavljuje svoj rad pod naslovom: “How Long Is the Coast of Britain? Statistical Self-Similarity and Fractional Dimension” i u njemu opisuje ovisnost duljine izmjerene obale o skali u kojoj je ta duljina izmjerena. Matematički gledano, obala je beskonačno duga.
Kratki uvod • Mandelbrot u svom radu “fenomen obale” objašnjava preko svojstva “samosličnosti” obale (self-similarity). • Njegov rad je povijesno važan jer daje uvid u neka njegova prva razmišljanja o “fraktalima”. • Riječ fraktal se prvi put spominje u njegovim radovima tek 1975.
Svojstvo samosličnosti – što je to? • Samosličnost je svojstvo objekta da je ‘sam sebi sličan’, odnosno da u sebi sadrži kopije samog sebe. • Gotovo svi fraktali imaju to svojstvo. • Razlikujemo dvije vrste samosličnosti: približnu i savršenu.
Približna samosličnost • Ako ‘kopije’ početne slike vidimo samo do neke razine,onda govorimo o približnoj samosličnosti.
Savršena samosličnost • Ako na svim nivoima povećanja možemo pronaći kopiju početnog objekta, tada kažemo da je objekt savršeno samosličan. Međutim, savršena samosličnost je sa sobom donijela jedan problem...
Problem dimenzije • Još od Euklida poznato je nekoliko osnovnih pojmova geometrije - točka, linija, površina, i time primitivni pojam dimenzije. Npr točka je ‘ono što nema dijelova’, a linija je ‘nešto što nema širinu a ima duljinu’. • Danas znamo da točka ima dimenziju 0, pravac dimenziju 1, kvadrat dimenziju 2, ... Takva dimenzija zove se topološka dimenzija.
Problem dimenzije • Pojavom fraktala, topološka dimenzija će zakazati .... • Pogledajmo npr. krivulje u ravnini. • Krivulje su intuitivno jednodimenzionalni objekti.
Problem dimenzije • Promotrimo krivulju koja nastaje tako dužinu zamijenimo sa oblikom na slici:
Problem dimenzije • Ako i dalje zamjenjujemo svaku dužinu sa početnim oblikom, dobivamo tzv. Peanovu krivulju, koja popunjava čitav kvadrat!
Nova vrsta dimenzije • Pojam topološke dimenzije nije dobar u slučaju Peanove krivulje. • Zato uvodimo novu vrstu dimenzije - fraktalna dimenzija. • Intuitivno, to je broj koji ‘mjeri’ koliko dobro neki objekt ispunjava prostor u kojem se nalazi.
Definicija fraktala • Za objekt kažemo da je fraktal ako je njegova fraktalna dimenzija strogo veća od topološke. • Zanimljivo, fraktalna dimenzija je gotovo uvijek racionalan broj! (za razliku od topološke koja je uvijek prirodan broj)
Određivanje fraktalne dimenzije • Metoda samosličnosti Za računanje fraktalne dimenzije možemo iskoristiti samosličnost. Uzmimo npr. jednodimenzionalni segment (dužina). Ako ga gledamo s povećanjem faktora 2, vidimo 2 identična segmenta.
Određivanje fraktalne dimenzije Uzmimo sad dvodimenzionalni kvadrat i trokut. Sa faktorom povećanja2, dobivamo 4 identična oblika u svakom od njih.
Metoda samosličnosti • Neka varijabla D bude (tražena) dimenzija, e faktor povećanja, a N broj početnih oblika u slici nakon povećanja. • Uočimo: ako uzmemo faktor povećanja i potenciramo ga dimenzijom, dobivamo broj oblika, odnosno vidimo da vrijedi formula: D sada možemo odrediti logaritmiranjem pa dobivamo:
Metoda samosličnosti • Korištenjem formule za D računamo fraktalnu dimenziju Peanove krivulje. • U danom obliku ima 9identičnih linija i sve su duge 1/3 od početnog segmenta: N = 9, e = 3 • D = log 9 / log 3 = 2 kao što smo i očekivali.
Metoda samosličnosti • Metoda samosličnosti je pogodna za fraktale u kojima se na određenom nivou sve njegove kopije smanjuju za isti faktor. • Ne možemo ju primjeniti na određivanje dimenzije fraktala koji zadovoljava svojstvo Brownove samosličnosti jer se kod nje kopije na nekom nivou smanjuju za različite faktore.
Grafička metoda • Crtamo graf log(veličina) naspram log(faktor povećanja) (veličina je duljina, površina itd.). Za ne-fraktalne objekte (dužina, kvadrat, kocka) dobivamo konstantne funkcije (veličina se ne mijenja).
Grafička metoda • Ako nacrtamo isti graf za fraktalne objekte dobivamo pravce s koeficijentom smjera različitim od nule. • Za fraktale vrijedi formula: Dimenzija = nagib pravca + 1
Metoda prebrojavanja(box-counting method) • Kod ove metode zamišljamo da smo fraktal postavili u kvadratičnu mrežu sa ćelijama h x h. • Broj ćelija u mreži koje zauzima fraktal označimo sa N. • Smanjivanjem h (finijom podjelom) više detalja uzimamo u obzir, što je ekvivalentno rastu faktora povećanja: e =1/ h.
Određivanje fraktalne dimenzije • Kod metode samosličnosti imali smo formulu D=log(N) / log(e). Kod ove metode to postaje: D=log(N) / log(1 / h) • Kako smanjujemo h, tako dimenzija postaje sve preciznija. • Ova metoda za računanje fraktalne dimenzije je vrlo korisna za oblike u prirodi koji se teško mjere.
Određivanje fraktalne dimenzije • Izračunajmo fraktalnu dimenziju Box-fraktala prethodnom metodom. • Smjestimo sliku na mrežu sa h=1/3 i h=1/9. • Za prvi h, 5 polja je neprazno,a za drugi njih 25. Upotrebom ovih brojeva dobivamo: D=log5 / log[1 / (1 / 3)] = 1.46. D=log25 / log[1 / (1 / 9)] = 1.46 Fraktalna dimenzija: 1.46
Fraktalna dimenzija britanske obale • Izmjereno je da britanska obala ima fraktalnu dimenziju jednaku 1.24 (za hrvatsku obalu još se ne zna :-) )
Generiranje fraktala • Fraktali nastaju na tri osnovna načina: • 1. iteracijom generatora • 2. IFS iteriranjem • 3. iteriranjem formule
Iteracija generatora • Počinjemo s oblikom koji se zove 'baza'. • Tada zamijenimo svaki dio početnog oblika sa drugim oblikom, koja se zove 'motiv‘ ili ‘generator’. • U novom obliku, ponovo zamijenjujemo svaki dio motivom.
Iteracija generatora • Kochova krivulja: • Fraktalna dimenzija: 1.2619
Iteracija generatora • Spajanjem tri Kochove krivulje nastaje Kochova pahulja (Koch snowflake).
Iteracija generatora • Kochov otok • Fraktalna dimenzija: 1.5000
Iteracija generatora • Trokut Sierpinskog • Fraktalna dimenzija: 1.5850
Iteracija generatora • Veza trokuta Sierpinskog i Pascalovog trokuta
Iteracija generatora Primjeri: Levyjeva krivulja: Fraktalna dimenzija: 1.9340
Iteracija generatora Primjeri: Hilbertova krivulja: Fraktalna dimenzija: 2
Iteracija generatora • Fraktale također možemo kreirati iz trodimenzionalnih objekata za bazu, kao što je kocka ili piramida. • Tako dobivamo piramidu Sierpinskog (dimenzije 2) i Mengerovu spužvu (dimenzije 2.7268).
Iteracija generatora na računalu • Iteracija generatora je jednostavna, sve što treba činiti je uzeti oblik i supstituirati ga s drugačijim određen broj puta. • Za kompjutere nije pogodno imati sliku baze i motiva. • Pogodnije je bazu i motiv zadati nekako opisno.
Iteracija generatora na računalu • Idealan način je ovakve fraktale crtati u programskom jeziku LOGO. • Neke njegove osnovne naredbe su: • FD :a – crtaj prema naprijed za iznos a • BK :a – crtaj prema nazad za iznos a • LT :kut – rotacija “ulijevo” za iznos kuta • RT :kut – rotacija “udesno” za iznos kuta • If uvjet [naredbe] – ispitivanje uvjeta
Iteracija generatora na računalu • LOGO podržava i potprograme. • Npr. TO Potprogram :X naredbe END Potprogrami se mogu i rekurzivno pozivati.
Primjeri u jeziku LOGO to Stablo :a :n :kut if :n = 0 [Stop] fd :a lt :kut Stablo :a / 2 :n - 1 :kut rt :kut * 2 Stablo :a / 2 :n - 1 :kut lt :kut bk :a end Fraktalna dimenzija: 1
Primjeri u jeziku LOGO to koch :a :n if :n=0 [ fd :a] if :n>0 [ koch :a/3 :n-1 lt 60 koch :a/3 :n-1 rt 120 koch :a/3 :n-1 lt 60 koch :a/3 :n-1 ] end
Primjeri u jeziku LOGO to Hilbert :a :n :sgn if :n=0 [stop] lt :sgn * 90 Hilbert :a :n-1 -:sgn fd :a rt :sgn * 90 Hilbert :a :n-1 :sgn fd :a Hilbert :a :n-1 :sgn rt :sgn * 90 fd :a Hilbert :a :n-1 -:sgn lt :sgn * 90 end
Sustav iteriranih funkcija (IFS) • IFS (iterated function system / sustav iteriranih funkcija) je drugi način da se generiraju fraktali. • Također, oni daju i osnovu za fraktalnu kompresiju.
Sustav iteriranih funkcija (IFS) • Funkcije koje koristimo kod IFSa zovemo afinim preslikavanjima. • Primjeri afinih preslikavanja su: • Rotacija • Translacija • Kontrakcija (homotetija s k < 1) • Zrcaljenje (simetrija) • U dvije dimenzije, afina preslikavanja možemo zapisati: x’ = a x + b y + e y’ = c x + d y + f
Sustav iteriranih funkcija (IFS) • Dakle, za zadati afino preslikavanje potrebno je samo 6 parametara (a, b, c, d, e, f). • IFS je dakle zadan konačnim nizom afinih preslikavanja (w1, w2, w3, .... , wk).
Sustav iteriranih funkcija (IFS) • Primjer: Trokut Sierpinskog • Dobivenu figuru uzimamo kao početnu u idućoj iteraciji. • koristimo kontrakciju i translacije.
Primjena IFSa Fraktalna kompresija • Želimo sažeti sliku lijevo fraktalnom kompresijom. • Početnu sliku treba rotacijama, translacijama, skaliranjima i zrcaljenjima prekriti njezinim kopijama.
Primjena IFSa Fraktalna kompresija • Početnu sliku time svodimo na niz funkcija s ovim parametrima: (0.85, 0.04,-0.04, 0.85, 0.00, 1.60) (-0.15, 0.28,-0.26, 0.24, 0.00, 0.44) (0.20, -0.26, 0.23, 0.22, 0.00, 1.60) (0.00, 0.00,0.00, 0.16, 0.00, 0.00) • Njihovim iteriranjem možemo rekonstruirati početnu sliku, čime dobivamo uštedu prostora od99,99291 % (!)
Primjena IFSa Fraktalna kompresija • Velika prednost fraktalne kompresije jest vrlo veliki omjer sažimanja, no fraktalna kompresija ima i jedan veliki nedostatak .... • Fraktalna kompresija je jako spora! • Taj problem još danas nije u potpunosti riješen, ali postoje neka “dovoljno dobra” rješenja!
Iteriranje formule • Iteriranje formule je najjednostavniji oblik iteracije, ali i najvažniji jer se pomoću njega generiraju najkompleksniji uzorci. • Bazira se na iteraciji brojeva.
Iteriranje formule • Postoje tri tipa fraktala koja se mogu generirati iteriranjem različitih formula: • 1. čudni atraktori – jednostavno započinje koordinatama inicijalne točke i određuje svaku iduću točku upotrebom formule. • x(0) = 0; y(0) = 0; • x(i+1) = 1 + y(i) – 1.4 x(i)2y(i+1) = 0.3 x(i)
Iteriranje formule • 2. Julia fraktal dobivamo na slijedeći način: Fiksiramo neki C iz kompleksne ravnine i iteriramo funkciju f(z) = z2 + C tj. računamo: f0 = 0 fn+1 = fn2 + C • Oni z-ovi za koje gornja iteracija neće težiti u beskonačnost pripadaju Julia skupu. Njih obično crtamo jednom bojom. • Ostale z-ove bojamo ovisno o tome koliko brzo oni teže u beskonačnost.