Ova figura je jedan od prvih fraktala koji su proučavali naučnici. Dolazi iz tri primjerka Kochova kriva, koji se prvi put pojavio u radu švedskog matematičara Helgea von Kocha 1904. godine. Ova kriva je izmišljena kao primjer neprekidne linije koja ne može biti tangentna ni na jednu tačku. Linije s ovim svojstvom bile su poznate i ranije (Karl Weierstrass je izgradio svoj primjer još 1872. godine), ali Kochova kriva je izvanredna po jednostavnosti svog dizajna. Nije slučajno što se njegov članak zove “O kontinuiranoj krivulji bez tangenta, koja proizlazi iz elementarne geometrije”.

Crtež i animacija savršeno pokazuju kako se Kochova kriva konstruiše korak po korak. Prva iteracija je jednostavno početni segment. Zatim se podijeli na tri jednaka dijela, dopuni se središnji pravilan trougao a zatim bačen. Rezultat je druga iteracija - izlomljena linija koja se sastoji od četiri segmenta. Na svaki od njih se primjenjuje ista operacija i dobije se četvrti korak konstrukcije. Nastavljajući u istom duhu, možete dobiti sve više i više novih linija (sve će biti izlomljene linije). A ono što se događa u granici (ovo će već biti imaginarni objekt) naziva se Kochova kriva.

Osnovna svojstva Kochove krive

1. Kontinuirano je, ali se nigdje ne može razlikovati. Grubo govoreći, upravo zbog toga je i izmišljen - kao primjer ove vrste matematičkih "nakaza".

2. Ima beskonačnu dužinu. Neka je dužina originalnog segmenta jednaka 1. U svakom koraku konstrukcije svaki od segmenata koji čine liniju zamjenjujemo izlomljenom linijom, koja je 4/3 puta duža. To znači da se dužina cijele izlomljene linije množi sa 4/3 u svakom koraku: dužina linije sa brojem n jednako (4/3) n-1 . Stoga granična linija nema izbora osim da bude beskonačno duga.

3. Kochova pahulja ograničava konačno područje. I to uprkos činjenici da je njegov perimetar beskonačan. Ovo svojstvo može izgledati paradoksalno, ali je očigledno - pahulja se u potpunosti uklapa u krug, pa je njena površina očigledno ograničena. Površina se može izračunati, a za to vam ne treba ni posebno znanje - formule za površinu trokuta i zbroj geometrijska progresija odvijati u školi. Za zainteresovane, kalkulacija je navedena u nastavku sitnim slovima.

Neka je stranica originalnog pravilnog trougla jednaka a. Tada je njegova površina . Prvo strana je 1, a površina je: . Šta se dešava kako se iteracija povećava? Možemo pretpostaviti da su mali jednakostranični trouglovi vezani za postojeći poligon. Prvi put ih je samo 3, a svaki sljedeći put ih je 4 puta više od prethodnog. To jest, na n korak će biti završen Tn= 3 4 n–1 trouglovi. Dužina stranice svakog od njih je jedna trećina stranice trougla završene u prethodnom koraku. Dakle, jednako je (1/3) n. Površine su proporcionalne kvadratima stranica, pa je površina svakog trokuta jednaka . Za velike vrijednosti n Inače, ovo je jako malo. Ukupan doprinos ovih trouglova površini pahulje je Tn · S n= 3/4 · (4/9) n · S 0 . Stoga poslije n-korak, površina figure će biti jednaka zbiru S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S n = . Pahulja se dobija nakon beskonačnog broja koraka, što odgovara n→ ∞. Rezultat je beskonačan zbir, ali ovo je zbir opadajuće geometrijske progresije; za to postoji formula: . Površina snježne pahulje je .

4. Fraktalna dimenzija je jednaka log4/log3 = log 3 4 ≈ 1,261859... . Za tačan proračun će biti potreban znatan trud i detaljna objašnjenja, pa je ovdje prije ilustracija definicije fraktalne dimenzije. Iz formule zakona moći N(δ ) ~ (1/δ )D, Gdje N- broj kvadrata koji se sijeku, δ - njihovu veličinu i D- dimenzija, to smo shvatili D= log 1/ δ N. Ova jednakost vrijedi do dodavanja konstante (isto za sve δ ). Slike prikazuju petu iteraciju konstrukcije Kochove krive; kvadrati mreže koji se sijeku s njom su osjenčani zelenom bojom. Dužina originalnog segmenta je 1, tako da je na gornjoj slici dužina stranice kvadrata 1/9. 12 kvadrata je zasjenjeno, log 9 12 ≈ 1,130929... . Još nije baš sličan 1.261859... . Pogledajmo dalje. Na srednjoj slici kvadrati su upola manji, njihova veličina je 1/18, zasjenjena 30. log 18 30 ≈ 1,176733... . Već bolje. Dole su kvadrati još upola manji, 72 komada su već obojena. log 72 30 ≈ 1,193426... . Još bliže. Tada trebate povećati broj iteracije i istovremeno smanjiti kvadrate, tada će se "empirijska" vrijednost dimenzije Kochove krivulje stalno približavati log 3 4, a u granici će se potpuno poklopiti.

Fraktalnu pahuljicu, jedan od najpoznatijih i najmisterioznijih geometrijskih objekata, opisala je Helga von Koch početkom našeg stoljeća. Prema predanju, u našoj literaturi se zove Kochova pahulja. Ovo je vrlo „šiljasta“ geometrijska figura, koja se metaforički može vidjeti kao rezultat Davidove zvijezde koja se sama po sebi „množi“. Njegovih šest glavnih zraka prekriveno je beskonačnim brojem velikih i malih vrhova „iglica“. Svaki mikroskopski fragment konture pahulje je poput dva graška u mahuni, a velika greda, zauzvrat, sadrži beskonačan broj istih mikroskopskih fragmenata.

Na međunarodnom simpozijumu o metodologiji matematičkog modeliranja u Varni 1994. godine naišao sam na radove bugarskih autora koji su opisali svoja iskustva korištenja Kochovih pahuljica i drugih sličnih objekata u srednjoškolskoj nastavi za ilustraciju problema djeljivosti prostora i Zenonove filozofske aporije. Osim toga, sa obrazovne tačke gledišta, po mom mišljenju, vrlo je zanimljiv sam princip konstruisanja pravilnih fraktalnih geometrijskih struktura - princip rekurzivnog množenja osnovnog elementa. Nije uzalud da priroda "voli" fraktalne forme. To se objašnjava upravo činjenicom da se dobivaju jednostavnom reprodukcijom i promjenom veličine određenog elementarnog gradivnog bloka. Kao što znate, priroda se ne prepuni raznih razloga i, gdje je moguće, zadovoljava se najjednostavnijim algoritamskim rješenjima. Pažljivo pogledajte konture listova i u mnogim slučajevima ćete pronaći jasnu vezu s oblikom konture Kochove pahulje.

Vizualizacija fraktalnih geometrijskih struktura moguća je samo uz pomoć kompjutera. Već je veoma teško ručno konstruisati Kochovu pahulju iznad trećeg reda, ali zaista želite da gledate u beskonačnost! Stoga, zašto ne pokušati razviti odgovarajući kompjuterski program. U RuNetu možete pronaći preporuke za pravljenje Koch pahuljice od trokuta. Rezultat ovog algoritma izgleda kao zbrka linija koje se ukrštaju. Zanimljivije je kombinirati ovu figuru iz "komada". Kontura Kochove pahulje sastoji se od segmenata jednake dužine nagnutih pod uglom od 0°, 60° i 120° u odnosu na horizontalnu x-osu. Ako ih označimo sa 1, 2 i 3, tada će se pahulja bilo kojeg reda sastojati od uzastopnih trojki - 1, 2, 3, 1, 2, 3, 1, 2, 3... itd. Svaki od ova tri tipa segmenata mogu biti pričvršćeni za prethodni na jednom ili drugom kraju. Uzimajući u obzir ovu okolnost, možemo pretpostaviti da se kontura pahulje sastoji od segmenata šest vrsta. Označimo ih sa 0, 1, 2, 3, 4, 5. Tako dobijamo priliku da kodiramo konturu bilo kog reda koristeći 6 cifara (vidi sliku).

Snježna pahulja višeg reda se dobija od prethodnika nižeg reda zamjenom svake ivice sa četiri, spojena poput presavijenih dlanova (_/\_). Tip ivice 0 zamjenjuje se sa četiri ivice 0, 5, 1, 0 i tako dalje prema tabeli:

0 0 1 5 0
1 1 2 0 1
2 2 3 1 2
3 3 4 2 3
4 4 5 3 4
5 5 0 4 5

Jednostavan jednakostranični trougao se može zamisliti kao Kohova pahulja nultog reda. U opisanom sistemu kodiranja odgovara unosu 0, 4, 2. Sve ostalo se može dobiti opisanim zamjenama. Neću ovdje navoditi šifru procedure i time vas lišiti zadovoljstva razvijanja vlastitog programa. Kada ga pišete, uopće nije potrebno koristiti eksplicitni rekurzivni poziv. Može se zamijeniti redovnim ciklusom. U procesu rada imat ćete još jedan razlog za razmišljanje o rekurziji i njenoj ulozi u formiranju kvazifraktalnih oblika svijeta oko nas, a na kraju puta (ako, naravno, niste previše lijeni da prođete kroz njega do kraja) moći ćete da se divite složenom uzorku kontura fraktalne pahulje i konačno pogledate u lice beskonačnosti.

Tema: Fraktali.

1. Uvod. Brief historijska referenca o fraktalima. 2. Fraktali su elementi geometrije u prirodi.

3. Objekti s fraktalnim svojstvima u prirodi. 4. Definicija terminologije “fraktali”.

5.Klase fraktala.

6.Opis fraktalnih procesa. 7.Procedure za dobijanje fraktalnih skupova.

8.1 Broken Kokha (procedura dobijanja).

8.2 Koch pahuljica (Koch fraktal).

8.3 Menger sunđeri.

9. Primjeri korištenja fraktala.

Uvod. Kratka istorijska pozadina o fraktalima.

Fraktali su mlada grana diskretne matematike.

IN Godine 1904. Šveđanin Koch je smislio kontinuiranu krivu koja nigdje nema tangente - Kochovu krivu.

IN Francuz Julija je 1918. opisao čitavu porodicu fraktala.

IN Pierre Levy je 1938. objavio članak “Ravan i prostorne krive i površine koje se sastoje od dijelova sličnih cjelini”.

IN 1982. Benoit Mandelbrot je objavio knjigu "Fraktalna geometrija prirode".

WITH Koristeći jednostavne konstrukcije i formule, dobijaju se slike. Pojavilo se “fraktalno slikarstvo”.

Od 1993. godine World Scientific izdaje časopis “Fraktali”.

Fraktali su elementi geometrije u prirodi.

Fraktali su alati za opisivanje objekata kao što su modeli planinskih lanaca, neravni obala, cirkulatorni sistemi mnogih kapilara i krvnih sudova, krošnje drveća, kaskadni vodopadi, ledeni uzorci na staklu.

Ili ovo: list paprati, oblaci, mrlja.

Slike takvih objekata mogu se predstaviti pomoću fraktalne grafike.

Objekti s fraktalnim svojstvima u prirodi.

Koralji Morske zvijezde i ježeviMorske školjke

Cveće i biljke (brokula, kupus) Voće (ananas)

Krošnje drveća i listovi biljaka Cirkulatorni sistem i bronhije ljudi i životinja U neživoj prirodi:

Granice geografskih objekata (države, regije, gradovi) Obale Planinski lanci Pahuljice Oblaci Munje

Uzorci formirani na staklu Kristali Stalaktiti, stalagmiti, heliktiti.

Definicija terminologije "fraktali".

Fraktali su geometrijske figure, koji zadovoljavaju jedno ili više od sljedećih svojstava:

Ima složenu netrivijalnu strukturu pri bilo kojem uvećanju (na svim skalama); (približno) je samosličan.

Ima frakcijsku Hausdorffovu (fraktalnu) dimenziju ili premašuje topološku; Može se konstruirati rekurzivnim procedurama.

Za pravilne figure kao što su krug, elipsa, graf glatke funkcije mali ulomak u vrlo velikoj mjeri izgleda kao fragment prave linije. Za fraktal povećanje skale ne dovodi do pojednostavljenja strukture; za sve skale ćemo vidjeti podjednako složene slike.

Fraktalne klase

Fraktal je struktura koja se sastoji od dijelova (podstruktura) sličnih cjelini.

Neki fraktali, kao elementi prirode, mogu se klasifikovati kao geometrijski (konstruktivni) fraktali.

Ostatak se može klasifikovati kao dinamički fraktali (algebarski).

Postupci za dobijanje fraktalnih skupova.

Ovo je jednostavna rekurzivna procedura za dobijanje fraktalnih krivulja: navedite proizvoljnu izlomljenu liniju sa konačan broj linkovi - generator. Zatim se u njemu zamjenjuje svaki segment generatora. Zatim se svaki segment u njemu ponovo zamjenjuje generatorom, i tako u nedogled.

Prikazano: podjela jediničnog segmenta na 3 dijela (a), jedinične kvadratne površine na 9 dijelova (b), jedinične kocke na 27 dijelova (c) i 64 dijela (d). Broj dijelova je n, faktor skaliranja je k, a dimenzija prostora je d. Imamo sljedeće relacije: n = kd,

ako je n = 3, k = 3, onda je d = 1; ako je n = 9, k = 3, onda je d = 2; ako je n = 27, k = 3, onda je d = 3.

ako je n = 4, k = 4, onda je d = 1; ako je n = 16, k = 4, onda je d = 2; ako je n = 64, k = 4, onda je d = 3. Dimenzija prostora se izražava cijelim brojevima: d = 1, 2, 3; za n = 64, vrijednost d je

Prikazano je pet koraka konstruisanja Kohove polilinije: segment jedinične dužine (a), podeljen na tri dela (k = 3), od četiri dela (n = 4) - izlomljena linija (b); svaki pravi segment je podeljen na tri dela (k2 = 9) i od 16 delova (n2 = 16) - isprekidana linija (c); postupak se ponavlja za k3 = 27 i n3 = 64 – izlomljena linija (g); za k5 = 243 i n5 = 1024 – isprekidana linija (e).

Dimenzija

Ovo je frakcijska ili fraktalna dimenzija.

Kochova polilinija, koju je predložio Helg von Koch 1904. godine, djeluje kao fraktal koji je pogodan za modeliranje neravnine obale. Mandelbrot je u algoritam izgradnje obale uveo element slučajnosti, što, međutim, nije utjecalo na glavni zaključak o dužini obale. Jer granica

Dužina obale teži beskonačnosti zbog beskrajne neravnine obale.

Procedura zaglađivanja obalne linije pri prelasku sa detaljnije skale na manje detaljnu, tj.

Koch pahulja (Koch fraktal)

Kao osnovu za konstrukciju, možete uzeti ne segmente jedinične dužine, već jednakostranični trokut, na čiju stranu možete proširiti postupak množenja nepravilnosti. U ovom slučaju dobijamo Kohovu pahulju (sl.), i to tri tipa: novoformirani trouglovi su usmereni samo prema van od prethodnog trougla (a) i (b); samo iznutra (unutra); nasumično prema van ili prema unutra (d) i (e). Kako možete postaviti proceduru za konstruisanje Kochovog fraktala.

Rice. Snowflake Koch

Na sl. prikazana su dva vektorska dijagrama; Brojevi iznad strelica će vjerovatno pokrenuti pitanje: šta oni znače? Vektor 0 poklapa se sa pozitivnim smjerom ose apscise, jer njegov fazni faktor exp (i2πl/6) pri l = 0 zadržava smjer. Vektor 1 je rotiran u odnosu na vektor 0 za ugao od 2π/6, kada je l= 1. Vektor 5 ima faktor faze exp (i2π5/6), l = 5. Poslednji vektor ima isti faktor faze kao i prvi ( l = 0). Cijeli brojevi l karakteriziraju ugao faktora faze jediničnog vektora.

Prvi korak (slika) specificira rekurzivnu proceduru za sve naredne korake, a posebno za drugi korak (slika). Kako preći od skupa brojeva φ1 = (0 1 5 0) do φ2 = (0 1 5 0 1 2 0 1 5 0 4 5 0 1 5 0)? Odgovor: direktnim množenjem matrice, kada se svaki element jedne matrice množi originalnom matricom. Pošto je u ovom slučaju riječ o jednodimenzionalnom nizu, tj. Pošto su matrice vektori, svaki element jednog matrice-vektora se množi sa svim elementima drugog matričnog-vektora. Osim toga, elementi matrice-vektora φ1 se sastoje od eksponencijalne funkcije exp (i2πl/6), dakle, 10 pri množenju broja h treba da se doda prema modu (6), a ne množi.

U Bostonu je bila neobično topla zima, ali smo ipak čekali prve snježne padavine. Gledajući snijeg kako pada kroz prozor, razmišljao sam o pahuljama i kako njihovu strukturu nije nimalo lako matematički opisati. Međutim, postoji jedna posebna vrsta pahuljica, poznata kao Kochova pahulja, koja se može opisati relativno jednostavno. Danas ćemo pogledati kako se njegov oblik može izgraditi koristeći COMSOL Multiphysics Application Builder.

Pravljenje Kochove pahuljice

Kao što smo već spomenuli u našem blogu, fraktali se mogu koristiti u . Snowflake Koch je fraktal, koji je značajan po tome što postoji vrlo jednostavan iterativni proces za njegovu konstrukciju:

  1. Počnimo s jednakostraničnim trouglom, koji je zapravo nulta iteracija Kochove pahulje.
  2. Nađimo središnju tačku na svakoj ivici trenutne pahulje.
  3. U sredinu svake ivice dodajte jednakostranični trokut koji strši prema van sa stranom jednakom 1/3 dužine trenutnog ruba.
  4. Definirajmo sljedeću iteraciju Kochove pahulje da bude na vanjskoj strani prethodne pahulje i svih dodatih trouglova.
  5. Ponovite korake 2-4 onoliko puta koliko je potrebno.

Ovaj postupak je ilustrovan na slici ispod za prve četiri iteracije crtanja pahuljice.

Prve četiri iteracije Kochove pahulje. Slika Wxs - Vlastiti rad. Licencirano pod CC BY-SA 3.0, preko Wikimedia Commons.

Konstrukcija geometrije Kochove pahulje

Pošto sada znamo koji algoritam da koristimo, pogledajmo kako da kreiramo takvu strukturu koristeći COMSOL Multiphysics Application Builder. Otvorit ćemo novu datoteku i kreirati 2D objekat deo geometrije na čvoru Globalne definicije. Za ovaj objekat postavićemo pet ulaznih parametara: dužinu stranice jednakostraničnog trougla; X- I y– koordinate sredine baze; i komponente vektora normale usmjerene od sredine baze do suprotnog vrha, kao što je prikazano na slikama ispod.


Pet parametara koji se koriste za postavljanje veličine, položaja i orijentacije jednakostraničnog trokuta.


Postavljanje ulaznih parametara geometrijskog dijela.
Primitiv poligona se koristi za konstruiranje jednakostraničnog trokuta.


Objekt se može rotirati oko sredine donje ivice.


Objekt se može pomjeriti u odnosu na ishodište.

Sada kada smo definirali geometrijski dio, koristimo ga jednom u sekciji Geometrija. Ovaj pojedinačni trougao je ekvivalentan nultoj iteraciji Kochove pahulje, a sada koristimo Application Builder da kreiramo složenije pahulje.

Označavanje korisničkog sučelja aplikacije u programu za izgradnju aplikacija

Aplikacija ima vrlo jednostavan korisnički interfejs. Sadrži samo dvije komponente s kojima korisnik može komunicirati: Klizač (klizač)(označeno kao 1 na slici ispod), pomoću koje možete podesiti broj iteracija potrebnih za kreiranje pahuljice, i Dugme(oznaka 2), klikom na koji se kreira i prikazuje rezultirajuća geometrija. Postoje također Tekstualni natpis(oznaka 3) i Prikaz (Prikaz) podataka(oznaka 4), koji pokazuju broj specificiranih iteracija, kao i prozor Charts(oznaka 5), ​​koja prikazuje konačnu geometriju.


Aplikacija ima jednu formu sa pet komponenti.

Aplikacija ima dvije Definicije, od kojih jedan definira cjelobrojnu vrijednost koja se zove Iteracije, koja je zadana nula, ali je korisnik može promijeniti. Definiran je i 1D niz dvojnika koji se naziva Centar. Pojedinačni element u nizu ima vrijednost 0,5, koja se koristi za pronalaženje središnje točke svake ivice. Ova vrijednost se nikada ne mijenja.


Postavke za dvije definicije.

Komponenta Slider u korisničkom sučelju kontrolira vrijednost cijelog broja, parametra Iterations. Snimak ekrana ispod prikazuje postavke za "Slider" i vrijednosti koje su postavljene kao cijeli brojevi u rasponu između 0 i 5. Isti izvor (kao i za klizač) je također odabran za komponentu Prikaz podataka za prikaz broja specificiranih iteracija na ekranu aplikacije. Potencijalnog korisnika ograničavamo na pet iteracija jer je korišteni algoritam suboptimalan i nije vrlo efikasan, ali je dovoljno jednostavan za implementaciju i demonstraciju.


Postavke za komponentu "Slider".

Zatim, pogledajmo postavke za naše dugme, prikazane na slici ispod. Kada se pritisne dugme, izvršavaju se dve komande. Prvo se poziva metoda CreateSnowFlake. Rezultirajuća geometrija se zatim prikazuje u grafičkom prozoru.


Postavke dugmeta.

Sada smo pogledali korisničko sučelje naše aplikacije i možemo vidjeti da se stvaranje bilo koje geometrije pahuljice mora dogoditi metodom koja se zove. Pogledajmo kod za ovu metodu, sa numeriranjem redova dodanim lijevo i konstantama niza istaknutim crvenom bojom:

1 model.geom("geom1" ).feature().clear(); 2 model.geom("geom1" ).create("pi1" , "PartInstance" ); 3 model.geom("geom1" ).run("fin"); 4 za (int iter = 1; iter "geom1" ).getNEdges()+1; 6 UnionList = "pi" + iter; 7 for (int edge = 1; rub "geom1" ).getNEdges(); edge++) ( 8 String newPartInstance = "pi" + iter + edge; 9 model.geom("geom1" ).create(newPartInstance, "PartInstance" ).set("part" , "part1" ); 10 with(model. geom("geom1" ).feature(newPartInstance)); 11 setEntry("inputexpr" , "Length" , toString(Math.pow(1.0/3.0, iter))); 12 setEntry("inputexpr" , "px" , model.geom("geom1" ).edgeX(edge, Center)); 13 setEntry("inputexpr" , "py" , model.geom("geom1" ).edgeX(edge, Center)); 14 setEntry("inputexpr" " , "nx" , model.geom("geom1" ).edgeNormal(ivica, centar)); 15 setEntry("inputexpr" , "ny" , model.geom("geom1" ).edgeNormal(ivica, centar)) ; 16 endwith(); 17 UnionList = newPartInstance; 18 ) 19 model.geom("geom1" ).create("pi" +(iter+1), "Union" ).selection("input" ).set(UnionList ); 20 model.geom("geom1" ).feature("pi" +(iter+1)).set("intbnd" , "off" ); 21 model.geom("geom1" ).run("fin"); 22)

Prođimo kroz kod red po red da shvatimo koju funkciju svaki red obavlja:

  1. Brisanje svih postojećih geometrijskih nizova kako bismo mogli početi od nule.
  2. Kreiramo jednu instancu objekta - naš "trokut", koristeći zadanu veličinu, orijentaciju i lokaciju. Ovo je naša pahulja nultog reda s oznakom identifikatora pi1.
  3. Završimo geometriju. Ova operacija je potrebna za ažuriranje svih indeksa geometrije.
  4. Započnimo proces iteracije kroz sve date iteracije pahulje, koristeći definiciju Iteracije kao uslov zaustavljanja.
  5. Definiramo prazan niz stringova, UnionList. Svaki element niza sadrži identifikator različitih geometrijskih objekata. Dužina ovog niza jednaka je broju ivica u posljednjoj iteraciji plus jedan.
  6. Definiramo prvi element u polju UnionList. To je identifikator rezultata prethodne iteracije. Imajte na umu da je iteracija nula već kreirana u redovima 1-3. Iter cjelobrojne vrijednosti se automatski pretvara u niz i dodaje na kraj niza "pi".
  7. Prolazimo kroz broj ivica u prethodno generiranoj pahuljici.
  8. Postavljamo identifikatorsku oznaku za novu instancu objekta koji pristupa iz instance dijela “trokut” koji je kreiran na ovoj ivici. Imajte na umu da se cjelobrojne vrijednosti iter i edge uzastopno dodaju na kraj niza pi, oznake identifikatora instance objekta.
  9. Kreiramo instancu objekta "trokut" i dodjeljujemo mu oznaku identifikatora koja je upravo specificirana.
  10. Naznačavamo da se redovi 11-15 odnose na trenutnu instancu objekta (instancu dijela) koristeći naredbu with()/endwith().
  11. Odredite dužinu stranice trougla. Nulti red ima dužinu stranice od jedan, tako da n-ta iteracija ima dužinu stranice od (1/3)n. Funkcija toString() je potrebna za pretvaranje (konvertovanje) tipova podataka - broja s pomičnim zarezom u niz.
  12. Postavili smo x-koordinata novog trougla, kao središnja tačka stranice posljednje iteracije. EdgeX metoda je dokumentirana u . Podsjetimo da je Centar postavljen na 0,5.
  13. Postavili smo y-koordinate.
  14. Postavili smo x-komponenta vektora normale trougla. Metoda edgeNormal je također dokumentirana u COMSOL Referentni priručnik za programiranje.
  15. Postavili smo y-komponenta vektora normale.
  16. Zatvaramo naredbu with()/endwith().
  17. Dodajte identifikator oznake trenutnog trougla na listu svih objekata.
  18. Zatvaramo pretragu svih ivica.
  19. Kreiramo Boolean Union (logičku uniju) svih objekata u geometrijski niz. Oznaci dodjeljujemo novu vrijednost pi N, gdje je N broj sljedeći iteracije. Zagrade su potrebne oko (iter+1) tako da se povećana vrijednost itera konvertuje u niz.
  20. Ukazujemo da unutrašnje granice konačnog objekta nisu očuvane.
  21. Završimo geometriju. Poslednja operacija ažurira sve indekse geometrije za sljedeću iteraciju pahuljice.
  22. Zatvaramo ciklus iteracija stvaranja pahuljice.

Dakle, pokrili smo sve aspekte i elemente naše aplikacije. Pogledajmo rezultate!


Naša jednostavna aplikacija za konstruisanje Koch pahuljice.

Mogli bismo proširiti našu aplikaciju za pisanje geometrije u datoteku ili čak direktno izvršiti dodatne analize. Na primjer, mogli bismo dizajnirati fraktalnu antenu. Ako vas zanima dizajn antene, pogledajte naš primjer, ili čak napravite njen izgled od nule.

Probajte sami

Ako želite sami izraditi ovu aplikaciju, ali još niste dovršili Application Builder, možda će vam biti od pomoći sljedeći resursi:

  • Preuzmite vodič Uvod u okruženje za razvoj aplikacija na engleskom jeziku
  • Pogledajte ove video zapise i naučite kako ih koristiti
  • Pročitajte ove teme da biste se upoznali s načinom na koji se koriste simulacijske aplikacije

Kada pokrijete ovaj materijal, vidjet ćete kako se funkcionalnost aplikacije može proširiti da promijeni veličinu pahuljice, izveze kreiranu geometriju, procijeni površinu i perimetar i još mnogo toga.

Koju vrstu aplikacije biste željeli kreirati u COMSOL Multiphysics? za pomoc.

Ova figura je jedan od prvih fraktala koji su proučavali naučnici. Dolazi iz tri primjerka Kochova kriva, koji se prvi put pojavio u radu švedskog matematičara Helgea von Kocha 1904. godine. Ova kriva je izmišljena kao primjer neprekidne linije koja ne može biti tangentna ni na jednu tačku. Linije s ovim svojstvom bile su poznate i ranije (Karl Weierstrass je izgradio svoj primjer još 1872. godine), ali Kochova kriva je izvanredna po jednostavnosti svog dizajna. Nije slučajno što se njegov članak zove “O kontinuiranoj krivulji bez tangenta, koja proizlazi iz elementarne geometrije”.

Pisanje funkcije koja se rekurzivno poziva je jedan od načina da se generiše fraktalni dijagram na ekranu. Međutim, šta ako želite da redovi u gornjem Cantoru budu postavljeni kao zasebni objekti koji se mogu pomicati nezavisno? Rekurzivna funkcija je jednostavna i elegantna, ali vam ne dozvoljava da uradite mnogo dalje od jednostavnog kreiranja samog predloška.

Evo pravila. Kochova kriva i drugi fraktalni obrasci se često nazivaju "matematičkim čudovištima". To je zbog neobičnog paradoksa koji nastaje kada primijenite rekurzivnu definiciju beskonačno mnogo puta. Ako je dužina originalne početne linije jedan, prva iteracija Kochove krive će dati dužinu linije od četiri trećine. Uradite to ponovo i dobićete šesnaest devet. Dok iterirate u beskonačnost, dužina Kochove krive se približava beskonačnosti. Međutim, on se uklapa u sićušni ograničeni prostor predviđen upravo ovdje na ovom papiru!

Prve faze konstruisanja Kochove krive

Crtež i animacija savršeno pokazuju kako se Kochova kriva konstruiše korak po korak. Prva iteracija je jednostavno početni segment. Zatim se podijeli na tri jednaka dijela, središnji se dovrši da formira pravilan trougao i zatim se izbacuje. Rezultat je druga iteracija - izlomljena linija koja se sastoji od četiri segmenta. Na svaki od njih se primjenjuje ista operacija i dobije se četvrti korak konstrukcije. Nastavljajući u istom duhu, možete dobiti sve više i više novih linija (sve će biti izlomljene linije). A ono što se događa u granici (ovo će već biti imaginarni objekt) naziva se Kochova kriva.

Budući da radimo na Zemlji obrade konačnih piksela, ovaj teorijski paradoks neće biti faktor za nas. Mogli bismo postupiti na isti način kao sa Cantorovim skupom i napisati rekurzivnu funkciju koja iterativno primjenjuje Kochova pravila iznova i iznova. Međutim, ovaj problem ćemo riješiti drugačije tako što ćemo svaki segment Kochove krive tretirati kao poseban objekt. Ovo će otvoriti neke mogućnosti dizajna. Na primjer, ako je svaki segment objekt, možemo dopustiti svakom segmentu da se kreće neovisno o njegovoj izvornoj lokaciji i da učestvuje u simulaciji fizike.

Osnovna svojstva Kochove krive

1. Kontinuirano je, ali se nigdje ne može razlikovati. Grubo govoreći, upravo zbog toga je i izmišljen - kao primjer ove vrste matematičkih "nakaza".

2. Ima beskonačnu dužinu. Neka je dužina originalnog segmenta jednaka 1. U svakom koraku konstrukcije svaki od segmenata koji čine liniju zamjenjujemo izlomljenom linijom, koja je 4/3 puta duža. To znači da se dužina cijele izlomljene linije množi sa 4/3 u svakom koraku: dužina linije sa brojem n je jednako (4/3) n–1 . Stoga granična linija nema izbora osim da bude beskonačno duga.

Dodatno, mogli bismo koristiti nasumične boje, debljinu linije itd. Za drugačiji prikaz svakog segmenta. Da bismo izvršili naš zadatak tretiranja svakog segmenta kao zasebnog objekta, prvo moramo odlučiti šta objekt treba da radi. Koje karakteristike treba da ima?

Pogledajmo šta imamo. Uz gore navedene elemente, kako i gdje primjenjujemo Kochova pravila i principe rekurzije? U ovoj simulaciji uvijek smo pratili dvije generacije: sadašnju i sljedeću. Kada smo završili s proračunom sljedeće generacije, sada je postalo relevantno i prešli smo na proračun nove sljedeće generacije.

3. Kochova pahulja ograničava konačno područje. I to uprkos činjenici da je njegov perimetar beskonačan. Ovo svojstvo može izgledati paradoksalno, ali je očigledno - pahulja se u potpunosti uklapa u krug, pa je njena površina očigledno ograničena. Područje se može izračunati, a za to vam ni ne treba posebno znanje - formule za površinu trokuta i zbroj geometrijske progresije uče se u školi. Za zainteresovane, kalkulacija je navedena u nastavku sitnim slovima.

Ovdje ćemo koristiti sličnu tehniku. Ovako izgleda kod. Naravno, gore navedeno isključuje stvarni "rad" koji definira ova pravila. Kako da podijelimo jedan segment linije na četiri kako je opisano u pravilima? Konstrukcija fraktala zasniva se na konceptu beskonačnosti. Korak 2: Podijelit ćemo ovaj segment na tri jednaka dijela i podići jednakostranični trokut na središnjem dijelu. Korak 3: Na četiri nova segmenta ćemo izvršiti korak.

Presijecite alat između dva objekta, kliknite na krug. Kochova pahulja je posebna fraktalna kriva koju je konstruisao Koch matematičar, počevši od Kochove čipke. Ovo je kriva nacrtana duž stranica jednakostraničnog trougla. Koch vezice su izgrađene na svakoj strani trougla.

Neka je stranica originalnog pravilnog trougla jednaka a. Zatim njegova oblast. Prvo strana je 1, a površina je: . Šta se dešava kako se iteracija povećava? Možemo pretpostaviti da su mali jednakostranični trouglovi vezani za postojeći poligon. Prvi put ih je samo 3, a svaki sljedeći put ih je 4 puta više od prethodnog. To jest, na n U st. koraku, T n = 3 · 4 n–1 trougla će biti završeno. Dužina stranice svakog od njih je jedna trećina stranice trougla završene u prethodnom koraku. To znači da je jednako (1/3) n. Površine su proporcionalne kvadratima stranica, pa je površina svakog trokuta jednaka . Za velike vrijednosti n Inače, ovo je jako malo. Ukupan doprinos ovih trouglova površini pahulje je T n · S n = 3/4 · (4/9) n · S 0 . Stoga poslije n U koraku, površina figure će biti jednaka zbroju S 0 + T 1 · S 1 + T 2 · S 2 + ... +T n · S n = . Pahulja se dobija nakon beskonačnog broja koraka, što odgovara n → ∞. Rezultat je beskonačan zbir, ali ovo je zbir opadajuće geometrijske progresije; za to postoji formula: . Površina pahulje je jednaka.

Sljedeća tabela prikazuje prve korake u izgradnji krive. Da biste kreirali fraktal, jednostavno trebate umetnuti tri kopije krive duž stranica trokuta. Imajte na umu da je druga figura Davidova zvijezda. Krajnji rezultat je zatvorena kriva izgrađena na jednakostraničnom trokutu. Može se primijetiti da frita sadrži šestokraku zvijezdu. Dizajn je vrlo sličan fraktalnom peterokutnom.

Postoji još jedan način za pravljenje pahuljica. Gore opisana konstrukcija može se definirati kao konstrukcija sabiranjem, budući da početna figura, trokut, dodaje druge elemente. Postoji podstruktura koja uklanja elemente umjesto originalnog oblika.

4. Fraktalna dimenzija je log4/log3 = log 3 4 ≈ 1,261859... . Za tačan proračun će biti potreban znatan trud i detaljna objašnjenja, pa je ovdje prije ilustracija definicije fraktalne dimenzije. Iz formule stepena N(δ) ~ (1/δ)D, gdje je N- broj kvadrata koji se sijeku, δ - njihovu veličinu, D- dimenzija, dobijamo da je D = log 1/δ N. Ova jednakost vrijedi do dodavanja konstante (isto za sve δ ). Slike prikazuju petu iteraciju konstrukcije Kochove krive; kvadrati mreže koji se sijeku s njom su osjenčani zelenom bojom. Dužina originalnog segmenta je 1, tako da je na lijevoj slici dužina stranice kvadrata 1/9. 12 kvadrata je zasjenjeno, log 9 12 ≈ 1,130929... . Još nije baš sličan 1.261859... . Pogledajmo dalje. Na srednjoj slici kvadrati su upola manji, njihova veličina je 1/18, zasjenjena 30. log 18 30 ≈ 1,176733... . Već bolje. Desno su kvadrati još upola manji, 72 komada su već prefarbana. log 72 30 ≈ 1,193426... . Još bliže. Tada trebate povećati broj iteracije i istovremeno smanjiti kvadrate, tada će se "empirijska" vrijednost dimenzije Kochove krivulje stalno približavati log 3 4, a u granici će se potpuno poklopiti.

Opcije

Kochova pahulja "obrnuto" dobijeno ako konstruiramo Kochove krive unutar originalnog jednakostraničnog trokuta.

Cesaro Lines. Umjesto jednakostranični trouglovi Koriste se jednakokraki sa osnovnim uglom od 60° do 90°. Na slici je ugao 88°.

Kvadratna opcija. Ovdje su kvadrati završeni.

Trodimenzionalni analozi. Koch space.