Hogyan rajzoljunk Koch hópehelyet, fényképes diagramokat, hogyan néz ki a Koch hópehely? Programok Pascalban (Pascal): hópehely és Koch-görbe, fraktálok Koch hópehely építése

A Koch-görbe egy fraktálgörbe, amelyet Helge von Koch svéd matematikus írt le 1904-ben. A Koch-görbe három másolata, amelyek egy egyenlő oldalú háromszög oldalain vannak megszerkesztve (kifelé mutat), egy zárt görbét alkotnak, amelyet Koch-hópehelynek neveznek.

Néha összezavarodok, amikor valami káromkodásra vágyom. programozza be a problémát. Ezúttal úgy döntöttem, hogy fraktálokkal bütykölök. Mégpedig a Koch hópehellyel.

Hópehely Koch

Ez a fraktál az egyik első, amelyet a tudósok vizsgáltak. A Koch-görbe három másolatából származik, amely először Helge von Koch svéd matematikus cikkében jelent meg 1904-ben. Ezt a görbét egy olyan folytonos egyenes példájaként találták ki, amely nem érinthet egyetlen pontot sem.

A Koch-görbe alapvető tulajdonságai:

  • Folyamatos, de sehol nem különböztethető meg.
  • Végtelen hosszúságú. Legyen az eredeti szegmens hossza egyenlő 1-gyel. Minden építési lépésnél a vonalat alkotó szakaszokat 4/3-szor hosszabb szaggatott vonalra cseréljük. Ez azt jelenti, hogy a teljes szaggatott vonal hosszát minden lépésben megszorozzuk 4/3-mal: az n számú vonal hossza (4/3)n–1. Ezért a határvonalnak nincs más választása, mint hogy végtelenül hosszú legyen.
  • A Koch hópehely behatárolja a véges területet. És ez annak ellenére, hogy a kerülete végtelen. Ez a tulajdonság paradoxnak tűnhet, de nyilvánvaló - a hópehely teljesen beleillik egy körbe, így a területe nyilvánvalóan korlátozott.
  • Egy kis matek

    Nagyon érdekes néha emlékezni a legegyszerűbb káromkodásokra. transzformációk (: Ebben az esetben fel kellett frissíteni az ismereteket a vektorokról és a pontok transzformációjáról a síkban.

    Pontosabban, hogyan kell elforgatni egy pontot egy másik ponthoz képest:

    Nos, tudnod kell, hogyan találhatsz egy pontot egy szakaszon, amely bizonyos távolságra van a ponttól, ismerve ezt a távolságot és a pontok koordinátáit. Nagyon sok módszer létezik. Megkeresheti az ezeket a pontokat tartalmazó egyenes koordinátáit, majd behelyettesítheti őket az egyenletbe. A koordinátákat vektorok segítségével számíthatja ki.

    Valahogy így néz ki.

    Ez a szám az egyik első fraktál, amelyet a tudósok tanulmányoztak. Három példányból származik Koch-görbe, amely először Helge von Koch svéd matematikus cikkében jelent meg 1904-ben. Ezt a görbét egy olyan folytonos egyenes példájaként találták ki, amely nem érinthet egyetlen pontot sem. Az ezzel a tulajdonsággal rendelkező vonalak korábban is ismertek voltak (Karl Weierstrass építette példáját még 1872-ben), de a Koch-görbe a tervezés egyszerűsége miatt figyelemre méltó. Nem véletlen, hogy cikkét „Az elemi geometriából fakadó, érintők nélküli folytonos görbén” címmel.

    A rajz és az animáció tökéletesen bemutatja, hogyan készül a Koch-görbe lépésről lépésre. Az első iteráció egyszerűen a kezdeti szegmens. Ezután három egyenlő részre osztjuk, a központi részből szabályos háromszöget alkotunk, majd kidobjuk. Az eredmény a második iteráció - egy szaggatott vonal, amely négy szegmensből áll. Mindegyikre ugyanazt a műveletet alkalmazzuk, és megkapjuk az építés negyedik lépését. Ugyanebben a szellemben folytatva újabb és újabb sorokat kaphattok (mind szaggatott sor lesz). És ami a határban történik (ez már egy képzeletbeli objektum lesz), azt Koch-görbének nevezzük.

    A Koch-görbe alapvető tulajdonságai

    1. Folyamatos, de sehol nem differenciálható. Nagyjából ezért találták ki – az effajta matematikai „furcsák” példájaként.

    2. Végtelen hosszúságú. Legyen az eredeti szegmens hossza egyenlő 1-gyel. Minden építési lépésnél a vonalat alkotó szakaszokat 4/3-szor hosszabb szaggatott vonalra cseréljük. Ez azt jelenti, hogy a teljes szaggatott vonal hosszát minden lépésben megszorozzuk 4/3-mal: a számmal ellátott sor hosszával n egyenlő (4/3) n-1. Ezért a határvonalnak nincs más választása, mint hogy végtelenül hosszú legyen.

    3. A Koch-féle hópehely határolja a véges területet. És ez annak ellenére, hogy a kerülete végtelen. Ez a tulajdonság paradoxnak tűnhet, de nyilvánvaló - a hópehely teljesen beleillik egy körbe, így a területe nyilvánvalóan korlátozott. A területet ki lehet számítani, és ehhez nem is kell speciális tudás - az iskolában tanítják a háromszög területének és a geometriai haladás összegének képleteit. Az érdeklődők számára a számítást alább felsoroljuk apró betűs betűkkel.

    Legyen az eredeti szabályos háromszög oldala egyenlő a. Akkor a területe . Először az oldal 1, a terület pedig: . Mi történik az iteráció növekedésével? Feltételezhetjük, hogy egy meglévő sokszöghez kis egyenlő oldalú háromszögek kapcsolódnak. Első alkalommal csak 3 van belőlük, és minden következő alkalommal 4-szer több van belőlük, mint az előzőben. Vagyis bekapcsolva n az edik lépés befejeződik Tn= 3 4 n– 1 háromszög. Mindegyik oldalának hossza az előző lépésben kitöltött háromszög oldalának egyharmada. Tehát egyenlő (1/3) n. A területek arányosak az oldalak négyzetével, tehát minden háromszög területe . Nagy értékekhez n Ez egyébként nagyon kevés. Ezeknek a háromszögeknek a teljes hozzájárulása a hópehely területéhez: Tn · S n= 3/4 · (4/9) n · S 0 . Ezért után n-lépés, az ábra területe egyenlő lesz az összeggel S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S n = . A hópehely végtelen számú lépés után keletkezik, ami megfelel n→ ∞. Az eredmény egy végtelen összeg, de ez egy csökkenő geometriai progresszió összege, van rá egy képlet: . A hópehely területe .

    4. Fraktál dimenzió egyenlő log4/log3 = log 3 4 ≈ 1,261859... . A pontos számítás jelentős erőfeszítést és részletes magyarázatot igényel, ezért itt inkább a fraktáldimenzió meghatározását illusztráljuk. A hatványtörvény képletéből N(δ ) ~ (1/δ )D, Ahol N- az egymást metsző négyzetek száma, δ - méretük és D- dimenzió, ezt értjük D= log 1/ δ N. Ez az egyenlőség egy állandó hozzáadásáig igaz (mindenkire ugyanaz δ ). Az ábrák a Koch-görbe megszerkesztésének ötödik iterációját mutatják, a vele metsző rácsnégyzetek zöld színűek. Az eredeti szegmens hossza 1, tehát a felső ábrán a négyzetek oldalhossza 1/9. 12 négyzet árnyékolt, log 9 12 ≈ 1,130929... . Még nem nagyon hasonlít az 1.261859-hez... . Nézzük tovább. A középső képen a négyzetek fele akkorák, méretük 1/18, árnyékolva 30. log 18 30 ≈ 1,176733... . Már jobban. Lent még feleakkorák a négyzetek, 72 darabot már átfestettek. log 72 30 ≈ 1,193426... . Még közelebb. Ezután növelni kell az iterációs számot, és ezzel egyidejűleg csökkenteni kell a négyzeteket, ekkor a Koch-görbe dimenziójának „empirikus” értéke folyamatosan megközelíti a log 3 4-et, és a határértékben teljesen egybeesik.

    A Koch-görbe három másolata (pontjaikkal kifelé) egy szabályos háromszög oldalaira szerkesztve egy végtelen hosszúságú zárt görbét alkot, ún. Koch hópehelye.

    Ez a szám az egyik első fraktál, amelyet a tudósok tanulmányoztak. Három példányból származik Koch-görbe, amely először Helge von Koch svéd matematikus cikkében jelent meg 1904-ben. Ezt a görbét egy olyan folytonos egyenes példájaként találták ki, amely nem érinthet egyetlen pontot sem. Az ezzel a tulajdonsággal rendelkező vonalak korábban is ismertek voltak (Karl Weierstrass építette példáját még 1872-ben), de a Koch-görbe a tervezés egyszerűsége miatt figyelemre méltó. Nem véletlen, hogy cikkét „Az elemi geometriából fakadó, érintők nélküli folytonos görbén” címmel.

    A rajz és az animáció tökéletesen bemutatja, hogyan készül a Koch-görbe lépésről lépésre. Az első iteráció egyszerűen a kezdeti szegmens. Ezután három egyenlő részre osztjuk, a központi részből szabályos háromszöget alkotunk, majd kidobjuk. Az eredmény a második iteráció - egy szaggatott vonal, amely négy szegmensből áll. Mindegyikre ugyanazt a műveletet alkalmazzuk, és megkapjuk az építés negyedik lépését. Ugyanebben a szellemben folytatva újabb és újabb sorokat kaphattok (mind szaggatott sor lesz). És ami a határban történik (ez már egy képzeletbeli objektum lesz), azt Koch-görbének nevezzük.

    A Koch-görbe alapvető tulajdonságai

    1. Folyamatos, de sehol nem differenciálható. Nagyjából ezért találták ki – az effajta matematikai „furcsák” példájaként.

    2. Végtelen hosszúságú. Legyen az eredeti szegmens hossza egyenlő 1-gyel. Minden építési lépésnél a vonalat alkotó szakaszokat 4/3-szor hosszabb szaggatott vonalra cseréljük. Ez azt jelenti, hogy a teljes szaggatott vonal hosszát minden lépésben megszorozzuk 4/3-mal: a számmal ellátott sor hosszával n egyenlő (4/3) n-1. Ezért a határvonalnak nincs más választása, mint hogy végtelenül hosszú legyen.

    3. A Koch-féle hópehely határolja a véges területet. És ez annak ellenére, hogy a kerülete végtelen. Ez a tulajdonság paradoxnak tűnhet, de nyilvánvaló - a hópehely teljesen beleillik egy körbe, így a területe nyilvánvalóan korlátozott. A terület kiszámítható, és ehhez nem is kell speciális tudás - a háromszög területének és a geometriai progresszió összegének képleteit az iskolában tanítják. Az érdeklődők számára a számítást alább felsoroljuk apró betűs betűkkel.

    Legyen az eredeti szabályos háromszög oldala egyenlő a. Akkor a területe . Először az oldal 1, a terület pedig: . Mi történik az iteráció növekedésével? Feltételezhetjük, hogy egy meglévő sokszöghez kis egyenlő oldalú háromszögek kapcsolódnak. Első alkalommal csak 3 van belőlük, és minden következő alkalommal 4-szer több van belőlük, mint az előzőben. Vagyis bekapcsolva n az edik lépés befejeződik Tn= 3 4 n-1 háromszög. Mindegyik oldalának hossza az előző lépésben kitöltött háromszög oldalának egyharmada. Tehát egyenlő (1/3) n. A területek arányosak az oldalak négyzetével, tehát minden háromszög területe . Nagy értékekhez n Ez egyébként nagyon kevés. Ezeknek a háromszögeknek a teljes hozzájárulása a hópehely területéhez: Tn · S n= 3/4 · (4/9) n · S 0 . Ezért után n-lépés, az ábra területe egyenlő lesz az összeggel S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S n = . A hópehely végtelen számú lépés után keletkezik, ami megfelel n→ ∞. Az eredmény egy végtelen összeg, de ez egy csökkenő geometriai progresszió összege, van rá egy képlet: . A hópehely területe .

    4. Fraktál dimenzió egyenlő log4/log3 = log 3 4 ≈ 1,261859... . A pontos számítás jelentős erőfeszítést és részletes magyarázatot igényel, ezért itt inkább a fraktáldimenzió meghatározását illusztráljuk. A hatványtörvény képletéből N(δ ) ~ (1/δ )D, Ahol N- az egymást metsző négyzetek száma, δ - méretük és D a dimenzió, ezt kapjuk D= log 1/ δ N. Ez az egyenlőség egy állandó hozzáadásáig igaz (mindenkire ugyanaz δ ). Az ábrák a Koch-görbe megszerkesztésének ötödik iterációját mutatják, a vele metsző rácsnégyzetek zöld színűek. Az eredeti szegmens hossza 1, tehát a felső ábrán a négyzetek oldalhossza 1/9. 12 négyzet árnyékolt, log 9 12 ≈ 1,130929... . Még nem nagyon hasonlít az 1.261859-hez... . Nézzük tovább. A középső képen a négyzetek fele akkorák, méretük 1/18, árnyékolva 30. log 18 30 ≈ 1,176733... . Már jobban. Lent még feleakkorák a négyzetek, 72 darabot már átfestettek. log 72 30 ≈ 1,193426... . Még közelebb. Ezután növelni kell az iterációs számot, és ezzel egyidejűleg csökkenteni kell a négyzeteket, ekkor a Koch-görbe dimenziójának „empirikus” értéke folyamatosan megközelíti a log 3 4-et, és a határértékben teljesen egybeesik.

    Lehetőségek

    A Koch-hópehelyet „ellenkezőleg” kapjuk, ha az eredeti egyenlő oldalú háromszögben Koch-görbéket készítünk.

    Cesaro vonalak. Az egyenlő oldalú háromszögek helyett egyenlő szárú háromszögeket használnak, amelyek alapszöge 60° és 90° között van. Az ábrán a szög 88°.

    Négyzet alakú lehetőség. Itt elkészültek a négyzetek.





    Hópehely Koch

    vászon(
    szegély: 1 képpont szaggatott fekete;
    }

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

    függvény rebro(n, len) (
    ctx.save(); // Mentse az aktuális átalakítást
    if (n == 0) ( // Nem rekurzív eset - vonal húzása
    ctx.lineTo(len, 0);
    }
    más(
    ctx.scale(1/3, 1/3); // Kicsinyítés 3-szor
    rebro(n-1, len); //RECUURSION a szélén
    ctx.rotate(60 * fok);
    rebro(n-1, len);
    ctx.rotate(-120 * fok);
    rebro(n-1, len);
    ctx.rotate(60 * fok);
    rebro(n-1, len);
    }
    ctx.restore(); // Az átalakítás visszaállítása
    ctx.translate(len, 0); // menj az él végére
    }

    függvény drawKochSnowflake(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 * fok); //RECUUUURSION már egy háromszög
    rebro(n, len); ctx.rotate(-120 * fok);
    rebro(n, len); ctx.closePath();
    ctx.strokeStyle = "#000";
    ctx.stroke();
    ctx.restore();
    }

    függvény clearcanvas())( //a vászon törlése
    ctx.save();
    ctx.beginPath();

    // Az identitásmátrix használata a vászon törlése közben
    ctx.setTransform(1, 0, 0, 1, 0, 0);
    ctx.clearRect(0, 0, vászon1.szélesség, vászon1.magasság);

    // Az átalakítás visszaállítása
    ctx.restore();
    }

    függvény run() (
    canv = document.getElementById("canvas1");
    ctx = canv.getContext("2d");
    var numberiter = document.getElementById("mennyiség").érték;
    drawKochSnowflake(vászon.szélesség/2, vászon.magasság/2, 380, számiter);

    Ctx.stroke(); //megjelenítés
    }




    Koch hópehely - példa









    Hópehely Koch

    A huszadik század elején a matematikusok olyan görbéket kerestek, amelyek egyetlen ponton sem rendelkeznek érintővel. Ez azt jelentette, hogy a görbe hirtelen megváltoztatta az irányát, és rendkívül nagy sebességgel (a derivált a végtelennel egyenlő volt). E görbék keresését nem csak a matematikusok tétlen érdeklődése okozta. A helyzet az, hogy a huszadik század elején a kvantummechanika nagyon gyorsan fejlődött. M. Brown kutató felvázolta a vízben lebegő részecskék mozgásának pályáját, és ezt a jelenséget a következőképpen magyarázta: a folyadék véletlenszerűen mozgó atomjai lebegő részecskéket ütköztetnek, és ezáltal mozgásba hozzák azokat. A Brown-mozgás e magyarázata után a tudósok azzal a feladattal szembesültek, hogy találjanak egy olyan görbét, amely a legjobban közelíti meg a Brown-részecskék mozgását. Ehhez a görbének a következő tulajdonságoknak kellett megfelelnie: egyetlen pontban sem lehet érintője. Koch matematikus javasolt egy ilyen görbét. Nem megyünk bele a felépítési szabályok magyarázatába, hanem egyszerűen bemutatjuk a képét, amelyből minden kiderül (1.1.1. ábra).

    1.1.1. ábra. Hópehely Koch.

    A Koch hópehely határának egyik fontos tulajdonsága a végtelen hossza. Ez meglepőnek tűnhet, mert hozzászoktunk a számítási kurzusok görbéihez. Általában a sima vagy legalábbis darabonként sima görbék mindig véges hosszúságúak (ami integrációval ellenőrizhető). Mandelbrot ezzel kapcsolatban számos lenyűgöző munkát publikált, amelyek Nagy-Britannia partvonalának hosszának mérésének kérdését vizsgálják. Modellként ő

    Rizs. 1.1.2. A Koch hópehely építése.


    fraktálgörbét használt, amely egy hópehely szélére emlékeztet, azzal a különbséggel, hogy bevezette a véletlenszerűség elemét, hogy figyelembe vegye a természet véletlenszerűségét. Ennek eredményeként kiderült, hogy a partvonalat leíró görbe végtelen hosszúságú.

    Sierpinski szalvétája és szőnyege

    Egy másik példa egy egyszerű önhasonló fraktálra --- Sierpinski szalvéta(1.2.1. ábra), Waclaw Sierpinski lengyel matematikus találta fel 1915-ben. Maga a kifejezés szalvéta Mandelbrothoz tartozik. Az alábbi szerkesztési módban egy bizonyos régióból indulunk ki, és szekvenciálisan kiküszöböljük a belső alrégiókat. Később más módszereket is megvizsgálunk, különösen az L-rendszereket, valamint az iterált függvényeken alapuló módszereket.

    1.2.1. ábra. Sierpinski szalvéta

    Legyen az S 0 kezdeti halmaz egy egyenlő oldalú háromszög az általa bezárt területtel együtt. Osszuk S0-t négy kisebb háromszögterületre, összekötve az eredeti háromszög oldalainak felezőpontjait szakaszokkal. Távolítsuk el a kis középső háromszög alakú terület belsejét. Nevezzük a maradék halmazt S 1-nek (1.2.2. ábra). Ezután megismételjük a folyamatot mind a három megmaradt kis háromszögre, hogy megkapjuk a következő S 2 közelítést. Így folytatva egy S n beágyazott halmaz sorozatát kapjuk, amelyek metszéspontját az S szalvéta képezi.

    Rizs. 1.2.2. Sierpinski szalvéta felépítése


    Nyilvánvaló, hogy az építés során kidobott alkatrészek összterülete pontosan megegyezik az eredeti háromszög területével. Az első lépésben a terület ¼ részét kidobtuk. A következő lépésben három háromszöget dobtunk ki, amelyek mindegyikének területe az eredeti területének ½ 2-e. Ilyen érveléssel meg vagyunk győződve arról, hogy a kiselejtezett terület teljes részesedése:

    1/4 + 3 * (1/4 2) + 3 2 * (1/4 3) + … + 3 n-1 * (1/4 n) + … .

    Ez az összeg egyenlő. Ezért azt állíthatjuk, hogy a fennmaradó S halmaz, vagyis a szalvéta területe nulla. Ez „tökéletes” halmazsá teszi S-t abban az értelemben, hogy a komplementjét végtelen számú háromszög alakú területre bontja, miközben nulla vastagságú.

    A Sierpinski szőnyeg egy másik fraktálmodellnek számít. A következőképpen épül fel: vegyünk egy négyzetet, osszuk kilenc négyzetre, és vágjuk ki a központi négyzetet. Ezután hasonló eljárást kell végrehajtani a maradék nyolc négyzet mindegyikével. És így tovább a végtelenségig. Ennek eredményeként egy egész négyzet helyett egy sajátos szimmetrikus mintájú szőnyeget kapunk. Ezt a modellt először Sierpinski matematikus javasolta, akinek tiszteletére kapta a nevét. Egy Sierpinski szőnyeg példája látható az ábrán. 1.2.3.

    A Helg von Koch által 1904-ben feltalált hópehely határát (2.2. ábra) három azonos méretű fraktálból álló görbe írja le. A hópehely minden harmada iteratív módon van megszerkesztve, az egyenlő oldalú háromszög egyik oldalától kezdve. Legyen a kezdő szegmens. Távolítsuk el a középső harmadot, és adjunk hozzá két új, azonos hosszúságú szegmenst, amint az ábra mutatja. 2.3. Nevezzük a kapott halmazt. Ismételjük meg ezt az eljárást sokszor, minden lépésnél a középső harmadot két új szegmensre cserélve. Jelöljük az n-edik lépés után kapott ábrával.

    Rizs. 2.2. Hópehely Koch

    Intuitív módon világos, hogy a görbék sorozata valamilyen K határgörbéhez konvergál. Az ilyen görbesorozatok és más halmazok konvergenciájának szigorú matematikai vizsgálatát a 3.5. szakaszban és a függelékben fogjuk elvégezni. A.3. Most tegyük fel, hogy a K görbe létezik, és vegyük figyelembe néhány tulajdonságát.

    Rizs. 2.3. a B C D)

    Ha elkészíti a K másolatát, háromszorosára csökkentve, akkor a teljes K halmaz ilyen másolatokból állhat. Következésképpen az önhasonlósági reláció (2.1) teljesül a megadott N és -re, és a fraktáldimenzió a következő lesz:

    A Koch-hópehely határának másik fontos tulajdonsága a végtelen hosszúsága (lásd a 2.1.1. tételt). Ez meglepőnek tűnhet annak az olvasónak, aki hozzászokott ahhoz, hogy a számítási kurzus görbéivel foglalkozzon. Általában simák vagy legalábbis darabonként simák, mindig véges hosszúságúak (ami integrációval ellenőrizhető). Mandelbrot ezzel kapcsolatban számos lenyűgöző munkát publikált, amelyek a brit partvonal hosszának mérésének kérdését vizsgálják. Modellként egy hópehely határára emlékeztető fraktálgörbét használt, azzal a különbséggel, hogy ebbe a véletlenszerűség elemét vezették be, figyelembe véve a természetben előforduló véletlenszerűséget. Ennek eredményeként kiderült, hogy a partvonalat leíró görbe végtelen hosszúságú.

    Betöltés...Betöltés...