Fraktaaleja. Koch-käyrä Fraktaalijoukkojen saamismenetelmät

Koti / Rakkaus

Kolme kopiota Koch-käyrästä, jotka on muodostettu (pisteidensä ulospäin) säännöllisen kolmion sivuille, muodostavat rajattoman pituisen suljetun käyrän, ns. Kochin lumihiutale.

Tämä luku on yksi ensimmäisistä tutkijoiden tutkimista fraktaaleista. Se on peräisin kolmesta kopiosta Kochin käyrä, joka ilmestyi ensimmäisen kerran ruotsalaisen matemaatikon Helge von Kochin artikkelissa vuonna 1904. Tämä käyrä keksittiin esimerkkinä jatkuvasta viivasta, joka ei voi olla tangentti mihinkään pisteeseen. Tämän ominaisuuden linjat tunnettiin aiemmin (Karl Weierstrass rakensi esimerkkinsä jo vuonna 1872), mutta Kochin käyrä on merkittävä suunnittelunsa yksinkertaisuuden vuoksi. Ei ole sattumaa, että hänen artikkelinsa on nimeltään "Jatkuvalla käyrällä ilman tangentteja, joka syntyy alkeisgeometriasta".

Piirustus ja animaatio osoittavat täydellisesti, kuinka Koch-käyrä rakennetaan askel askeleelta. Ensimmäinen iteraatio on yksinkertaisesti ensimmäinen segmentti. Sitten se jaetaan kolmeen yhtä suureen osaan, keskimmäinen viimeistellään säännöllisen kolmion muodostamiseksi ja heitetään sitten ulos. Tuloksena on toinen iteraatio - katkoviiva, joka koostuu neljästä segmentistä. Sama toimenpide sovelletaan jokaiseen niistä, ja saadaan neljäs rakentamisvaihe. Jatkamalla samassa hengessä, voit saada yhä enemmän uusia rivejä (kaikki ne ovat katkoviivoja). Ja mitä tapahtuu rajassa (tämä on jo kuvitteellinen kohde), kutsutaan Koch-käyräksi.

Kochin käyrän perusominaisuudet

1. Se on jatkuva, mutta ei missään erottuva. Karkeasti sanottuna, juuri siksi se keksittiin - esimerkkinä sellaisista matemaattisista "friikkeistä".

2. Sen pituus on ääretön. Olkoon alkuperäisen segmentin pituus yhtä suuri kuin 1. Jokaisessa rakennusvaiheessa korvaamme jokaisen viivan muodostavan segmentin katkoviivalla, joka on 4/3 kertaa pidempi. Tämä tarkoittaa, että koko katkoviivan pituus kerrotaan 4/3:lla jokaisessa vaiheessa: rivin pituus numerolla n yhtä suuri kuin (4/3) n-1. Siksi rajaviivalla ei ole muuta vaihtoehtoa kuin olla äärettömän pitkä.

3. Kochin lumihiutale rajoittaa rajallista aluetta. Ja tämä huolimatta siitä, että sen kehä on ääretön. Tämä ominaisuus saattaa tuntua paradoksaaliselta, mutta se on ilmeistä - lumihiutale sopii täysin ympyrään, joten sen pinta-ala on ilmeisen rajallinen. Pinta-ala voidaan laskea, etkä tarvitse edes erityisiä tietoja tähän - koulussa opetetaan kaavoja kolmion pinta-alalle ja geometrisen progression summalle. Kiinnostuneille laskelma on lueteltu alla pienellä tekstillä.

Olkoon alkuperäisen säännöllisen kolmion sivu yhtä suuri a. Sitten sen alue on . Ensin sivu on 1 ja alue on: . Mitä tapahtuu, kun iteraatio kasvaa? Voimme olettaa, että pienet tasasivuiset kolmiot on kiinnitetty olemassa olevaan monikulmioon. Ensimmäisellä kerralla niitä on vain 3, ja jokaisella seuraavalla kerralla niitä on 4 kertaa enemmän kuin edellisellä kerralla. Eli päälle n vaihe valmistuu Tn= 34 n-1 kolmio. Niiden jokaisen sivun pituus on kolmasosa edellisessä vaiheessa valmistetun kolmion sivusta. Joten se on yhtä suuri kuin (1/3) n. Pinta-alat ovat verrannollisia sivujen neliöihin, joten kunkin kolmion pinta-ala on . Suurille arvoille n Tämä on muuten hyvin vähän. Näiden kolmioiden kokonaisosuus lumihiutaleen pinta-alasta on Tn · S n= 3/4 · (4/9) n · S 0 . Siksi jälkeen n-askel, kuvion pinta-ala on yhtä suuri kuin summa S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S n = . Lumihiutale saadaan äärettömän määrän askeleita, mikä vastaa n→ ∞. Tuloksena on ääretön summa, mutta tämä on pienenevän geometrisen progression summa; sille on kaava: . Lumihiutaleen pinta-ala on.

4. Fraktaalimitta on yhtä suuri kuin log4/log3 = log 3 4 ≈ 1,261859... . Tarkka laskenta vaatii paljon vaivaa ja yksityiskohtaisia ​​selityksiä, joten tässä on pikemminkin esimerkki fraktaaliulottuvuuden määritelmästä. Teholain kaavasta N(δ ) ~ (1/δ )D, Missä N- leikkaavien neliöiden lukumäärä, δ - niiden koko ja D on ulottuvuus, ymmärrämme sen D= log 1/ δ N. Tämä yhtäläisyys on totta vakion lisäämiseen asti (sama kaikille δ ). Kuvat esittävät Koch-käyrän muodostamisen viides iteraatio; sen kanssa leikkaavat ruudukon neliöt on varjostettu vihreällä. Alkuperäisen segmentin pituus on 1, joten yläkuvassa neliöiden sivun pituus on 1/9. 12 ruutua on varjostettu, log 9 12 ≈ 1,130929... . Ei vielä kovin samanlainen kuin 1.261859... . Katsotaanpa pidemmälle. Keskimmäisessä kuvassa neliöt ovat puolet pienempiä, niiden koko on 1/18, varjostettu 30. log 18 30 ≈ 1.176733... . Jo paremmin. Alla neliöt ovat vielä puolet isompia, 72 kappaletta on jo maalattu. log 72 30 ≈ 1,193426... . Vielä lähempänä. Sitten sinun on lisättävä iteraatiolukua ja samalla vähennettävä neliöitä, sitten Koch-käyrän mittasuhteen ”empiirinen” arvo lähestyy tasaisesti log 3 4:ää ja rajassa se osuu täysin yhteen.

Vaihtoehdot

Kochin lumihiutale "päinvastoin" saadaan, jos rakennamme Koch-käyrät alkuperäisen tasasivuisen kolmion sisään.

Cesaron linjat. Tasasivuisten kolmioiden sijasta käytetään tasakylkisiä kolmioita, joiden kantakulma on 60° - 90°. Kuvassa kulma on 88°.

Neliön vaihtoehto. Tässä neliöt valmistuvat.





Lumihiutale Koch

kangas(
reunus: 1px katkoviiva musta;
}

var cos = 0,5,
sin = Math.sqrt(3) / 2,
astetta = Math.PI / 180;
canv, ctx;

funktio rebro(n, len) (
ctx.save(); // Tallenna nykyinen muunnos
if (n == 0) ( // Ei-rekursiivinen tapaus - piirrä viiva
ctx.lineTo(len, 0);
}
muu(
ctx.scale(1/3, 1/3); // Loitonna 3 kertaa
rebro(n-1, len); //RECUURSION reunalla
ctx.rotate(60 * astetta);
rebro(n-1, len);
ctx.rotate(-120 * astetta);
rebro(n-1, len);
ctx.rotate(60 * astetta);
rebro(n-1, len);
}
ctx.restore(); // Palauta muunnos
ctx.translate(len, 0); // mene reunan loppuun
}

funktio drawKochLumihiutale(x, y, len, n) (
x = x - len / 2;
y = y + len / 2 * Math.sqrt(3)/3;
ctx.save();
ctx.beginPath();
ctx.translate(x, y);
ctx.moveTo(0, 0);
rebro(n, len); ctx.rotate(-120 * astetta); //RECUUUURSION on jo kolmio
rebro(n, len); ctx.rotate(-120 * astetta);
rebro(n, len); ctx.closePath();
ctx.strokeStyle = "#000";
ctx.stroke();
ctx.restore();
}

toiminto clearcanvas())( //tyhjennä kangas
ctx.save();
ctx.beginPath();

// Käytä identiteettimatriisia tyhjentäessäsi kanvaasta
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.clearRect(0, 0, canvas1.width, canvas1.height);

// Palauta muunnos
ctx.restore();
}

funktio run() (
canv = document.getElementById("canvas1");
ctx = canv.getContext("2d");
var numberiter = document.getElementById("määrä").arvo;
drawKochLumihiutale(kanv.leveys/2, canv.height/2, 380, numeroiteri);

Ctx.stroke(); //renderöinti
}




Kochin lumihiutale - esimerkki









Bostonissa oli poikkeuksellisen lämmin talvi, mutta odotimme silti ensimmäistä lumisadetta. Katselin lunta ikkunasta, mietin lumihiutaleita ja sitä, kuinka niiden rakennetta ei ole ollenkaan helppo kuvata matemaattisesti. On kuitenkin olemassa yksi erityinen lumihiutale, joka tunnetaan nimellä Koch-lumihiutale, jota voidaan kuvata suhteellisen yksinkertaisesti. Tänään tarkastelemme, kuinka sen muoto voidaan rakentaa käyttämällä COMSOL Multiphysics Application Builder -sovellusta.

Kochin lumihiutaleen tekeminen

Kuten blogissamme jo mainitsimme, fraktaaleja voidaan käyttää . Lumihiutale Koch on fraktaali, mikä on huomionarvoista siinä, että sen rakentamiseen on hyvin yksinkertainen iteratiivinen prosessi:

  • Aloitetaan tasasivuisesta kolmiosta, joka on itse asiassa Kochin lumihiutaleen nollakohde.
  • Etsitään keskipiste nykyisen lumihiutaleen jokaiselta reunalta.
  • Lisää jokaisen reunan keskelle tasasivuinen kolmio, joka työntyy ulospäin ja jonka sivu on 1/3 nykyisen reunan pituudesta.
  • Määritetään Koch-lumihiutaleen seuraava iteraatio olemaan edellisen lumihiutaleen ja kaikkien lisättyjen kolmioiden ulkopuolella.
  • Toista vaiheet 2-4 niin monta kertaa kuin on tarpeen.
  • Tämä menettely on kuvattu alla olevassa kuvassa lumihiutaleen piirtämisen neljälle ensimmäiselle iteraatiolle.

    Koch-lumihiutaleen neljä ensimmäistä iteraatiota. Kuvan Wxs - Oma työ. Lisensoitu CC BY-SA 3.0:lla, Wikimedia Commonsin kautta.

    Kochin lumihiutalegeometrian rakentaminen

    Koska tiedämme nyt, mitä algoritmia käytetään, katsotaanpa, kuinka tällainen rakenne luodaan käyttämällä COMSOL Multiphysics Application Builder -sovellusta. Avaamme uuden tiedoston ja luomme 2D-objektin geometria osa solmussa Globaalit määritelmät. Tälle objektille asetetaan viisi syöttöparametria: tasasivuisen kolmion sivun pituus; X- Ja y– kannan keskipisteen koordinaatit; ja normaalivektorin komponentit, jotka on suunnattu kannan keskeltä vastakkaiseen kärkeen, kuten alla olevissa kuvissa näkyy.


    Viisi parametria, joilla asetetaan tasasivuisen kolmion koko, sijainti ja suunta.


    Geometrisen osan syöttöparametrien asettaminen.
    Tasasivuisen kolmion rakentamiseen käytetään monikulmioprimitiiviä.


    Kohde voi pyöriä alareunan keskikohdan ympäri.


    Objektia voidaan siirtää suhteessa alkuperään.

    Nyt kun olemme määrittäneet geometrisen osan, käytämme sitä kerran osiossa Geometria. Tämä yksittäinen kolmio vastaa Kochin lumihiutaleen nollakohtaa, ja nyt luodaan monimutkaisempia lumihiutaleita Application Builderin avulla.

    Sovelluksen käyttöliittymän merkintä Sovellusten rakennustyökalussa

    Sovelluksella on erittäin yksinkertainen käyttöliittymä. Se sisältää vain kaksi osaa, joiden kanssa käyttäjä voi olla vuorovaikutuksessa: Liukusäädin (liukusäädin)(merkitty alla olevassa kuvassa numerolla 1), jolla voit asettaa lumihiutaleen luomiseen tarvittavien iteraatioiden lukumäärän ja Painike(tunniste 2), jota napsauttamalla tuloksena oleva geometria luodaan ja näytetään. Siellä on myös Tekstin kirjoitus(etiketti 3) ja Tietojen näyttö (näyttö).(tunniste 4), jotka näyttävät määritettyjen iteraatioiden määrän sekä ikkunan Kaaviot(tunniste 5), joka näyttää lopullisen geometrian.


    Hakemuksessa on yksi lomake, jossa on viisi osaa.

    Sovelluksessa on kaksi julistukset, joista yksi määrittää kokonaislukuarvon nimeltä iteraatiot, joka on oletuksena nolla, mutta jonka käyttäjä voi muuttaa. Kaksinkertaisten 1D-joukko nimeltä Center on myös määritelty. Matriisin yksittäisen elementin arvo on 0,5, jota käytetään kunkin reunan keskipisteen löytämiseen. Tämä arvo ei muutu koskaan.


    Kahden määritelmän asetukset.

    Käyttöliittymän Slider-komponentti ohjaa kokonaisluvun Iteraatiot-parametrin arvoa. Alla oleva kuvakaappaus näyttää "Liukusäätimen" asetukset ja arvot, jotka on asetettu kokonaislukuina välillä 0 ja 5. Sama lähde (kuten liukusäätimelle) on valittu myös komponentille. Datanäyttö näyttääksesi määritettyjen iteraatioiden määrän sovellusnäytössä. Rajoitamme potentiaalisen käyttäjän viiteen iteraatioon, koska käytetty algoritmi ei ole optimaalinen eikä kovin tehokas, mutta riittävän yksinkertainen toteuttaa ja demonstroida.


    "Slider"-komponentin asetukset.

    Katsotaan seuraavaksi painikkeemme asetuksia, jotka näkyvät alla olevassa kuvakaappauksessa. Kun painiketta painetaan, suoritetaan kaksi komentoa. Ensin kutsutaan CreateSnowFlake-menetelmää. Tuloksena oleva geometria näytetään sitten grafiikkaikkunassa.


    Painikkeiden asetukset.

    Olemme nyt tarkastelleet sovelluksemme käyttöliittymää ja voimme nähdä, että minkä tahansa lumihiutalegeometrian luomisen on tapahduttava menetelmällä nimeltä. Katsotaanpa tämän menetelmän koodia, jossa rivinumerointi on lisätty vasemmalle ja merkkijonovakiot korostettu punaisella:

    1 malli.geom("geom1" ).feature().clear(); 2 malli.geom("geom1" ).create("pi1" , "PartInstance" ); 3 malli.geom("geom1" ).run("fin" ); 4 for (int iter = 1; iter "geom1" ).getNEdges()+1; 6 UnionList = "pi" + iter; 7 for (int reuna = 1; reuna "geom1" ).getNEdges(); reuna++) ( 8 merkkijono newPartInstance = "pi" + iter + reuna; 9 model.geom("geom1" ).create(newPartInstance, "PartInstance" ).set("part" , "part1" ); 10 with(model. geom("geom1" ).feature(newPartInstance)); 11 setEntry("tulolause" , "Pituus" , toString(Math.pow(1.0/3.0, iter))); 12 setEntry("tulolause" , "px" , model.geom("geom1" ).edgeX(reuna, Center)); 13 setEntry("tulolause" , "py" , malli.geom("geom1" ).edgeX(reuna, Center)); 14 setEntry("tulolauseke" " , "nx" , malli.geom("geom1" ).edgeNormal(reuna, Center)); 15 setEntry("syötelause" , "ny" , model.geom("geom1" ).edgeNormal(reuna, Center)) ; 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)

    Käydään koodi läpi rivi riviltä ymmärtääksemme, mitä toimintoa kukin rivi suorittaa:

  • Tyhjennä kaikki olemassa olevat geometriset sekvenssit, jotta voimme aloittaa alusta.
  • Luomme objektista yhden esiintymän - "kolmiomme" käyttämällä oletuskokoa, suuntaa ja sijaintia. Tämä on nollan kertaluvun lumihiutaleemme tunnisteella pi1.
  • Viimeistele geometria. Tämä toiminto tarvitaan kaikkien geometriaindeksien päivittämiseen.
  • Aloitetaan iterointiprosessi lumihiutaleen kaikkien annettujen iteraatioiden läpi käyttämällä iteraatioiden määritelmää pysäytysehtona.
  • Määrittelemme tyhjän merkkijonon UnionList. Jokainen taulukon elementti sisältää erilaisten geometristen objektien tunnisteen. Tämän taulukon pituus on yhtä suuri kuin viimeisen iteraation reunojen lukumäärä plus yksi.
  • Määrittelemme UnionList-taulukon ensimmäisen elementin. Se on edellisen iteraation tuloksen tunniste. Muista, että iteraatio nolla on jo luotu riveillä 1-3. Kokonaislukuarvo iter muunnetaan automaattisesti merkkijonoksi ja liitetään merkkijonon "pi" loppuun.
  • Käymme läpi aiemmin luodun lumihiutaleen reunojen lukumäärän.
  • Asetamme tunnistetunnisteen objektin uudelle esiintymälle, joka pääsee käsiksi tälle reunalle luodusta "kolmio"-osaesiintymästä. Huomaa, että kokonaislukuarvot iter ja edge lisätään peräkkäin merkkijonon pi loppuun, objektiinstanssin tunnistetunnisteeseen.
  • Luomme "kolmio"-objektin esiintymän ja annamme sille juuri määritetyn tunnistetunnisteen.
  • Osoitamme, että rivit 11-15 viittaavat objektin nykyiseen esiintymään (osainstanssi) with()/endwith()-käskyn avulla.
  • Määritä kolmion sivun pituus. Nollan kertaluvun sivun pituus on yksi, joten n:nnen iteraation sivun pituus on (1/3)n. ToString()-funktiota tarvitaan tietotyyppien lähettämiseen (muuntamiseen) - liukulukuluku merkkijonoksi.
  • Asetamme x-uuden kolmion koordinaatti, viimeisen iteraation sivun keskipisteenä. EdgeX-menetelmä on dokumentoitu . Muista, että Centerin arvo on 0,5.
  • Asetamme y-koordinaatti.
  • Asetamme x-kolmion normaalivektorin komponentti. Myös edgeNormal-menetelmä on dokumentoitu COMSOL ohjelmoinnin käsikirja.
  • Asetamme y- normaalivektorin komponentti.
  • Suljemme with()/endwith()-lausekkeen.
  • Lisää nykyisen kolmion etikettitunniste kaikkien objektien luetteloon.
  • Suljemme kaikkien reunojen haun.
  • Luomme Boolen liiton (looginen liitto) kaikista objekteista geometriseksi sekvenssiksi. Annamme tarralle uuden arvon pi N, missä N on numero Seuraava iteraatioita. Sulkumerkit ovat pakollisia ympärille (iter+1), jotta lisätty iterarvo muunnetaan merkkijonoksi.
  • Osoitamme, että lopullisen objektin sisäisiä rajoja ei säilytetä.
  • Viimeistele geometria. Viimeinen toiminto päivittää kaikki geometriaindeksit lumihiutaleen seuraavaa iteraatiota varten.
  • Suljemme lumihiutaleen luomisen iteraatioiden syklin.
  • Näin ollen olemme kattaneet kaikki sovelluksemme näkökohdat ja elementit. Katsotaanpa tuloksia!


    Yksinkertainen sovelluksemme Koch-lumihiutaleen rakentamiseen.

    Voisimme laajentaa sovellustamme ja kirjoittaa geometriaa tiedostoon tai jopa suorittaa lisäanalyysejä suoraan. Voisimme esimerkiksi suunnitella fraktaaliantennin. Jos olet kiinnostunut antennin suunnittelusta, katso esimerkkimme tai tee sen asettelu alusta alkaen.

    Kokeile itse

    Jos haluat rakentaa tämän sovelluksen itse, mutta et ole vielä suorittanut Application Builderia, seuraavista resursseista voi olla apua:

    • Lataa opas Johdatus sovelluskehitysympäristöön englanniksi
    • Katso nämä videot ja opi käyttämään
    • Lue nämä aiheet tutustuaksesi siihen, miten simulaatiosovelluksia käytetään

    Kun olet käynyt läpi tämän materiaalin, näet, kuinka sovelluksen toimintoja voidaan laajentaa lumihiutaleen koon muuttamiseen, luodun geometrian vientiin, pinta-alan ja kehän arvioimiseen ja paljon muuta.

    Millaisen sovelluksen haluaisit luoda COMSOL Multiphysicsissä? avuksi.

    Fraktaalilumihiutale, yksi kuuluisimmista ja salaperäisimmistä geometrisistä esineistä, kuvaili Helga von Koch vuosisadamme alussa. Perinteen mukaan sitä kutsutaan kirjallisuudessamme Kochin lumihiutaleeksi. Tämä on hyvin "piikikäs" geometrinen hahmo, joka voidaan vertauskuvallisesti nähdä tuloksena Daavidin tähden toistuvasta "kerronnasta" itsestään. Sen kuusi pääsädettä on peitetty äärettömällä määrällä suuria ja pieniä "neulapisteitä". Jokainen lumihiutaleen ääriviivan mikroskooppinen fragmentti on kuin kaksi hernettä palossa, ja suuri säde puolestaan ​​sisältää äärettömän määrän samoja mikroskooppisia palasia.

    Varnassa vuonna 1994 pidetyssä kansainvälisessä matemaattisen mallintamisen metodologiaa käsitelleessä symposiumissa törmäsin bulgarialaisten kirjailijoiden työhön, joka kuvaili kokemuksiaan Kochin lumihiutaleiden ja muiden vastaavien esineiden käytöstä lukion tunneilla havainnollistaakseen avaruuden jakavuuden ongelmaa ja Zenonin filosofiset aporiat. Lisäksi koulutuksen kannalta mielestäni säännöllisten fraktaaligeometristen rakenteiden rakentamisen periaate on erittäin mielenkiintoinen - peruselementin rekursiivisen kertomisen periaate. Ei ole turhaa, että luonto "rakastaa" fraktaalimuotoja. Tämä selittyy nimenomaan sillä, että ne saadaan yksinkertaisella kopioinnilla ja muuttamalla tietyn perusrakennuspalikan kokoa. Kuten tiedät, luonto ei tulvi monista syistä ja tyytyy mahdollisuuksien mukaan yksinkertaisimpiin algoritmisiin ratkaisuihin. Katso tarkkaan lehtien ääriviivoja, ja monissa tapauksissa huomaat selkeän suhteen Kochin lumihiutaleen ääriviivojen muotoon.

    Fraktaaligeometristen rakenteiden visualisointi on mahdollista vain tietokoneen avulla. Koch-lumihiutaleen rakentaminen kolmannen asteen yläpuolelle manuaalisesti on jo erittäin vaikeaa, mutta haluat todella katsoa äärettömyyteen! Siksi miksi et yrittäisi kehittää sopivaa tietokoneohjelmaa. RuNetistä löydät suosituksia Koch-lumihiutaleen rakentamiseen kolmioista. Tämän algoritmin tulos näyttää risteävien viivojen sekamelskaalta. On mielenkiintoisempaa yhdistää tämä luku "kappaleista". Koch-lumihiutaleen ääriviiva koostuu yhtä pitkistä segmenteistä, jotka on kallistettu 0°, 60° ja 120° vaakasuuntaiseen x-akseliin nähden. Jos merkitsemme niitä numeroilla 1, 2 ja 3, niin minkä tahansa luokan lumihiutale koostuu peräkkäisistä kolmosista - 1, 2, 3, 1, 2, 3, 1, 2, 3... jne. Kukin näistä kolmesta tyypistä segmenttejä voidaan kiinnittää edelliseen yhdestä tai toisesta päästä. Kun tämä seikka otetaan huomioon, voimme olettaa, että lumihiutaleen ääriviiva koostuu kuuden tyypin segmenteistä. Merkitään niitä 0, 1, 2, 3, 4, 5. Siten saamme mahdollisuuden koodata minkä tahansa järjestyksen ääriviivat käyttämällä 6 numeroa (katso kuva).

    Korkeamman asteen lumihiutale saadaan alemman asteen edeltäjästä korvaamalla jokainen reuna neljällä, yhdistettynä kuin taitettu kämmen (_/\_). Reunatyyppi 0 korvataan neljällä reunalla 0, 5, 1, 0 ja niin edelleen taulukon mukaan:

    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

    Yksinkertaista tasasivuista kolmiota voidaan pitää nollakertaisena Kochin lumihiutaleena. Kuvatussa koodausjärjestelmässä se vastaa merkintää 0, 4, 2. Kaikki muu voidaan saada kuvatuilla korvauksilla. En anna tässä menettelykoodia, ja estän siten sinulta ilon kehittää omaa ohjelmaasi. Sitä kirjoitettaessa ei ole ollenkaan välttämätöntä käyttää eksplisiittistä rekursiivista kutsua. Se voidaan korvata tavallisella syklillä. Työprosessissa sinulla on toinen syy miettiä rekursiota ja sen roolia ympärillämme olevan maailman kvasifraktaalimuotojen muodostumisessa sekä polun lopussa (jos tietysti et ole liian laiska käydäksesi sen läpi loppuun asti) voit ihailla fraktaalilumihiutaleen ääriviivojen monimutkaista kuviota ja myös katsoa lopuksi äärettömyyden kasvot.

    Aihe: Fraktaalit.

    1. Esittely. Lyhyt historiallinen tausta fraktaaleista. 2. Fraktaalit ovat geometrian elementtejä luonnossa.

    3. Esineet, joilla on fraktaaliominaisuuksia luonnossa. 4. Terminologian "fraktaalit" määritelmä.

    5. Fraktaaliluokat.

    6. Fraktaaliprosessien kuvaus. 7. Fraktaalijoukkojen hankkimismenettelyt.

    8.1 Rikkoutunut Kokha (hankintamenettely).

    8.2 Koch-lumihiutale (Koch Fractal).

    8.3 Menger-sienet.

    9. Esimerkkejä fraktaalien käytöstä.

    Johdanto. Lyhyt historiallinen tausta fraktaaleista.

    Fraktaalit ovat diskreetin matematiikan nuori haara.

    Vuonna 1904 ruotsalainen Koch keksi jatkuvan käyrän, jolla ei ole tangenttia missään - Koch-käyrän.

    Vuonna 1918 ranskalainen Julia kuvaili koko fraktaaleja.

    Vuonna 1938 Pierre Levy julkaisi artikkelin "Taso- ja spatiaaliset käyrät ja pinnat, jotka koostuvat kokonaisuutta vastaavista osista".

    Vuonna 1982 Benoit Mandelbrot julkaisi kirjan "The Fractal Geometry of Nature".

    Yksinkertaisten rakenteiden ja kaavojen avulla luodaan kuvia. "Fraktaalimaalaus" ilmestyi.

    Vuodesta 1993 lähtien World Scientific on julkaissut Fractals-lehteä.

    Fraktaalit ovat luonnossa geometrian elementtejä.

    Fraktaalit ovat keino kuvailla esineitä, kuten vuorijonomalleja, karuja rannikkoja, monien hiussuonten ja suonien verenkiertoelimiä, puiden latvuja, putoavia vesiputouksia, huurteita lasilla.

    Tai nämä: saniaisenlehti, pilvet, täplä.

    Tällaisten kohteiden kuvat voidaan esittää fraktaaligrafiikalla.

    Esineet, joilla on fraktaaliominaisuuksia luonnossa.

    Korallit Meritähti ja SiilitSimpukat

    Kukat ja kasvit (parsakaali, kaali) Hedelmät (ananas)

    Puiden kruunut ja kasvien lehdet Ihmisten ja eläinten verenkierto ja keuhkoputket Elottomassa luonnossa:

    Maantieteellisten kohteiden rajat (maat, alueet, kaupungit) Rantaviivat Vuoristot Lumihiutaleet Pilvet Salama

    Lasille muodostuneet kuviot Kiteet Kiteet, stalagmiitit, heliktiitit.

    Terminologian "fraktaalit" määritelmä.

    Fraktaalit ovat geometrisia muotoja, jotka täyttävät yhden tai useamman seuraavista ominaisuuksista:

    Sillä on monimutkainen ei-triviaali rakenne millä tahansa suurennuksella (kaikilla asteikoilla); Se on (suunnilleen) itsensäkaltainen.

    Sillä on murto-osa Hausdorffin (fraktaali) ulottuvuus tai se ylittää topologisen; Voidaan rakentaa rekursiivisilla menettelyillä.

    Säännöllisten lukujen, kuten ympyrän, ellipsin tai sileän funktion kuvaajassa, pieni fragmentti erittäin suuressa mittakaavassa on samanlainen kuin suoran viivan fragmentti. Fraktaalin osalta mittakaavan lisääminen ei johda rakenteen yksinkertaistamiseen, vaan kaikilla asteikoilla näemme yhtä monimutkaisia ​​kuvia.

    Fraktaaliluokat

    Fraktaali on rakenne, joka koostuu kokonaisuutta vastaavista osista (alarakenteista).

    Jotkut fraktaalit luonnon elementteinä voidaan luokitella geometrisiksi (rakentaviksi) fraktaaleiksi.

    Loput voidaan luokitella dynaamiksi fraktaaleiksi (algebrallisiksi).

    Fraktaalijoukkojen hankkimismenettelyt.

    Tämä on yksinkertainen rekursiivinen menettely fraktaalikäyrien saamiseksi: määritä mielivaltainen katkoviiva, jossa on äärellinen määrä linkkejä - generaattori. Seuraavaksi jokainen generaattorin segmentti korvataan siinä. Sitten jokainen segmentti siinä korvataan jälleen generaattorilla ja niin edelleen loputtomiin.

    Kuvassa: yksikkösegmentin jakaminen 3 osaan (a), neliön yksikköpinta-ala 9 osaan (b), yksikkökuutio 27 osaan (c) ja 64 osaan (d). Osien lukumäärä on n, skaalauskerroin k ja tilan mitta on d. Meillä on seuraavat suhteet: n = kd,

    jos n = 3, k = 3, niin d = 1; jos n = 9, k = 3, niin d = 2; jos n = 27, k = 3, niin d = 3.

    jos n = 4, k = 4, niin d = 1; jos n = 16, k = 4, niin d = 2; jos n = 64, k = 4, niin d = 3. Avaruuden ulottuvuus ilmaistaan ​​kokonaislukuina: d = 1, 2, 3; kun n = 64, d:n arvo on

    Viisi vaihetta Koch-polylinjan rakentamisessa esitetään: yksikköpituinen segmentti (a), jaettu kolmeen osaan (k = 3), neljästä osasta (n = 4) - katkoviiva (b); jokainen suora segmentti on jaettu kolmeen osaan (k2 = 9) ja 16 osaan (n2 = 16) - katkoviiva (c); toimenpide toistetaan k3 = 27 ja n3 = 64 – katkoviiva (g); k5 = 243 ja n5 = 1024 – katkoviiva (d).

    Ulottuvuus

    Tämä on murto- tai fraktaaliulottuvuus.

    Helg von Kochin vuonna 1904 ehdottama Koch-polyline toimii fraktaalina, joka soveltuu mallintamaan rannikon jyrkkyyttä. Mandelbrot toi rantaviivan rakennusalgoritmiin satunnaisuuden elementin, joka ei kuitenkaan vaikuttanut pääpäätelmään rantaviivan pituudesta. Koska raja

    Rantaviivan pituus ulottuu äärettömyyteen rannikon loputtoman jyrkkyyden vuoksi.

    Rannikkoviivan tasoitusmenettely siirryttäessä yksityiskohtaisemmasta mittakaavasta vähemmän yksityiskohtaiseen, ts.

    Kochin lumihiutale (Koch fraktaali)

    Rakentamisen perustana voit ottaa ei yksikköpituisia segmenttejä, vaan tasasivuisen kolmion, jonka kummallekin puolelle voit laajentaa epäsäännöllisyyksien kertomismenettelyä. Tässä tapauksessa saamme Kochin lumihiutaleen (kuva), ja sitä on kolmea tyyppiä: äskettäin muodostetut kolmiot on suunnattu vain ulospäin edellisestä kolmiosta (a) ja (b); vain sisällä (sisään); satunnaisesti joko ulospäin tai sisäänpäin (d) ja (e). Kuinka voit asettaa menettelyn Koch-fraktaalin rakentamiseen.

    Riisi. Lumihiutale Koch

    Kuvassa kaksi vektorikaaviota esitetään; Nuolien yläpuolella olevat numerot herättävät todennäköisesti kysymyksen: mitä ne tarkoittavat? Vektori 0 osuu yhteen abskissa-akselin positiivisen suunnan kanssa, koska sen vaihekerroin exp (i2πl/6) kohdassa l = 0 säilyttää suuntansa. Vektoria 1 kierretään suhteessa vektoriin 0 kulmalla 2π/6, kun l= 1. Vektorin 5 vaihekerroin exp (i2π5/6), l = 5. Viimeisellä vektorilla on sama vaihekerroin kuin ensimmäisellä ( l = 0). Kokonaisluvut l kuvaavat yksikkövektorin vaihekertoimen kulmaa.

    Ensimmäinen vaihe (kuvio) määrittelee rekursiivisen proseduurin kaikille myöhemmille vaiheille ja erityisesti toiselle vaiheelle (kuvio). Kuinka siirtyä lukujoukosta φ1 = (0 1 5 0) arvoon φ2 = (0 1 5 0 1 2 0 1 5 0 4 5 0 1 5 0)? Vastaus: suoran matriisin kertomisen kautta, kun yhden matriisin jokainen elementti kerrotaan alkuperäisellä matriisilla. Koska tässä tapauksessa on kyse yksiulotteisesta taulukosta, ts. Koska matriisit ovat vektoreita, yhden matriisivektorin jokainen elementti kerrotaan toisen matriisivektorin kaikilla elementeillä. Lisäksi matriisivektorin φ1 alkiot koostuvat eksponentiaalisista funktioista exp (i2πl/6), joten 10, kun kerrotaan luku h, on tarpeen laskea yhteen modin (6) mukaisesti, ei kertoa.

      Koch-lumihiutaleen geometrinen muoto näyttää tältä

      Kuinka piirtää Kochin lumihiutale

      Ja siellä on myös Kochin pyramidi

      Alla olevasta videosta saat lisätietoja Koch-lumihiutaleen piirtämisestä. Joku saattaa ymmärtää, luovutin.

      Katsotaanpa ensin tätä Kochin lumihiutaletta. Alla oleva kaavio näyttää meidät parhaiten.

      Toisin sanoen tietyn lumihiutaleen piirtämiseksi sinun on käytettävä yksittäisiä geometrisia muotoja, jotka muodostavat tämän geometrisen fraktaalin.

      Piirustuksemme perusta on tasasivuinen kolmio. Jokainen sivu on jaettu kolmeen segmenttiin, joista rakennetaan seuraavat, pienemmät tasasivuiset kolmiot. Sama toimenpide suoritetaan tuloksena olevilla kolmioilla useita kertoja.

      Kochin lumihiutale on yksi ensimmäisistä tutkijoiden tutkimista fraktaaleista. Lumihiutale saadaan kolmesta Kochin käyrän kopiosta, tiedot tästä löydöstä ilmestyivät vuonna 1904 ruotsalaisen matemaatikon Helge von Kochin artikkelissa. Pohjimmiltaan käyrä keksittiin esimerkkinä jatkuvasta suorasta, johon tangenttiviivaa ei voida vetää missään kohdassa. Kochin käyrä on suunnittelultaan yksinkertainen.

      Esimerkki, valokuvapiirros kuvasta Koch-lumihiutaleesta vaiheittaisella piirroksella.

      Tässä kaaviossa voit tarkastella yksityiskohtaisesti viivoja, joista myöhemmin muodostuu Koch-lumihiutale.

      Ja tämä on tulkinta uudesta lumihiutaleesta, joka perustuu Kochin lumihiutaleeseen.

      Ennen kuin ymmärrät kuinka piirtää Koch-lumihiutale, sinun on määritettävä, mikä se on.

      Joten Kochin lumihiutale on geometrinen kuva - fraktaali.

      Kochin lumihiutaleen täydellinen määritelmä on alla olevassa kuvassa.

    © 2024 skudelnica.ru -- Rakkaus, pettäminen, psykologia, avioero, tunteet, riidat