Koch kurve

Koch-kurven er  en fraktalkurve beskrevet i 1904 af den svenske matematiker Helge von Koch .

Tre kopier af Koch-kurven, bygget (peger udad) på siderne af en ligesidet trekant , danner en lukket kurve af uendelig længde , kaldet et Koch-snefnug .

Bygning

Koch-kurven er en typisk geometrisk fraktal. Processen med dens konstruktion er som følger: vi tager et enkelt segment, deler det i tre lige store dele og erstatter det midterste interval med en ligesidet trekant uden dette segment. Som et resultat dannes en brudt linje, der består af fire led med en længde på 1/3. Ved næste trin gentager vi operationen for hver af de fire resulterende led, og så videre ... Grænsekurven er Koch-kurven.

Script eksempel ( PHP ) <?php $i = 4 ; $image = imagecreatetruecolor ( 600 , 200 ); imagefilledrectangle ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 , imagecolorresolve ( $image , 255 , 255 , 255 )); $farve = billedfarveopløsning ( $billede , 0 , 0 , 0 ); drawKoch ( $image , 0 , imagesy ( $image ) - 1 , imagesx ( $image ), imagesy ( $image ) - 1 , $i , $color ); /** * Tegner koch-kurve mellem to punkter. * @return void */ funktion drawKoch ( $image , $xa , $ya , $xe , $ye , $i , $color ) { if ( $i == 0 ) imageline ( $image , $xa , $ya , $xe , $ye , $farve ); andet { // C // / \ // A---B D---E $xb = $xa + ( $ xe - $ xa ) * 1/3 ; $yb = $ya + ( $ ye - $ ya ) * 1/3 ; $xd = $xa + ( $ xe - $ xa ) * 2/3 ; $yd = $ya + ( $ ye - $ ya ) * 2/3 ; $cos60 = 0,5 ; $sin60 = - 0,866 ; $xc = $xb + ( $xd - $xb ) * $cos60 - $sin60 * ( $yd - $yb ); $yc = $yb + ( $xd - $xb ) * $sin60 + $cos60 * ( $yd - $yb ); drawKoch ( $billede , $xa , $ya , $xb , $yb , $i - 1 , $farve ); drawKoch ( $billede , $xb , $yb , $xc , $yc , $i - 1 , $farve ); drawKoch ( $billede , $xc , $yc , $xd , $yd , $i - 1 , $farve ); drawKoch ( $billede , $ xd , $ yd , $ xe , $ ye , $ i - 1 , $ farve ); } } header ( 'Indholdstype: image/png' ); imagepng ( $image ); imagedestroy ( $image ); ?> Eksempel på rektangulær kurve ( Pascal ) bruger GraphABC ; procedure Tegn ( x , y , l , u : Real ; t : Heltal ) ; procedure Draw2 ( Var x , y : Real ; l , u : Real ; t : Heltal ) ; begynde Tegn ( x , y , l , u , t ) ; x := x + l * cos ( u ) ; y := y - l * sin ( u ) ; ende ; begynder hvis t > 0 begynder l := l / 3 ; Tegn2 ( x , y , l , u , t - 1 ) ; Tegn2 ( x , y , l , u + pi / 3 , t - 1 ) ; Tegn2 ( x , y , l , u - pi / 3 , t - 1 ) ; Tegn2 ( x , y , l , u , t - 1 ) ; end else Linje ( Rund ( x ) , Rund ( y ) , Rund ( x + cos ( u ) * l ) , Rund ( y - sin ( u ) * l )) ende ; start SetWindowSize ( 425 , 500 ) ; SetWindowCaption ( 'Fractals: Koch Snowflake' ) ; Tegn ( 10 , 354 , 400 , pi / 3 , 4 ) ; Tegn ( 410 , 354 , 400 , pi , 4 ) ; Tegn ( 210 , 8 , 400 , -pi / 3 , 4 ) ; _ ende . Eksempel på rektangulær kurve ( Python ) import skildpadde skildpadde . hideturtle () skildpadde . sporstof ( 0 ) skildpadde . penup () skildpadde . sætposition ( -200 , 0 ) skildpadde . _ pendown () aksiom = "F" tempAx = "" iterable = 4 logik = { 'F' : 'F+F−F−F+F' } for i i område ( iterable ): for j i aksiom : hvis j i logik : tempAx += logik [ j ] else : tempAx += j aksiom , tempAx = tempAx , '' for k i aksiom : hvis k == '+' : skildpadde . højre ( -90 ) elif k == ' ' : skildpadde . venstre ( -90 ) andet : skildpadde . _ frem ( 5 ) skildpadde . opdatere () skildpadde . hovedsløjfe ()


Egenskaber

  • Koch-kurven er intetsteds differentierbar og ikke retificerbar.
  • Koch-kurven har uendelig længde.
  • Koch-kurven har ingen selvskæringer.
  • Koch-kurven har en mellemliggende (det vil sige ikke heltal ) Hausdorff-dimension , som er lig med , fordi den består af fire lige store dele, som hver især ligner hele kurven med en lighedsfaktor på 1/3.
  • Flyet tillader fliselægning med Koch-snefnug i to størrelser (arealet af det mindre snefnug er 3 gange mindre end arealet af det større). I dette tilfælde er der ingen flisebelægning med snefnug af samme størrelse. [en]

Variationer og generaliseringer

Generaliseringer af Koch-kurven er mulige, som også bruger substitution af en stiplet linje fra fire lige store segmenter, men med en anden geometri, når de konstrueres. De har en Hausdorff-dimension fra 1 til 2. Især hvis vi i stedet for at dividere segmentet 1:1:1 bruger det gyldne forhold (φ:1:φ), så er den resulterende kurve relateret til Penrose-fliser .

Du kan også bygge et Koch-snefnug på siderne af en ligesidet trekant.

Efter Kochs tilgang blev varianter med rette vinkler (kvadratisk), andre vinkler ( Cesaro ) eller cirkler og deres udvidelser til højere dimensioner (sfærisk snefnug) udviklet:

Mulighed Illustration Kvittering
1D, 85°, vinkel Cesaro fraktalen er en variant af Koch-kurven med en vinkel mellem 60° og 90° (her 85°)
1D, 90°, vinkel
1D, 90°, vinkel
2D, trekanter
2D, 90°, vinkel En forlængelse af en type 1 kvadratisk kurve svarende til den "omvendte Menger-svamp" [2] . Billedet til venstre viser fraktalen efter den anden iteration:
2D, 90°, vinkel Type 2 kvadratisk kurveforlængelse. Billedet til venstre viser fraktalen efter den første iteration.
2D, kugler Eric Haynes designet "sfærisk snefnug" fraktal, som er en 3D-version af Koch snefnug (ved hjælp af kugler)

Snowflake Koch

Koch-snefnuget, konstrueret som en lukket kurve baseret på en ligesidet trekant , blev første gang beskrevet af den svenske matematiker Helge von Koch i 1904 [3] . I nogle værker blev den kaldt "Koch Island" [4] .

Denne fraktale kurve har vist sig at have en række mærkelige egenskaber. For eksempel er længden af ​​dens omkreds lig med uendelig, hvilket dog ikke forhindrer den i at dække et begrænset område , hvis værdi er lig med 8/5 af arealet af basistrekanten [5] . På grund af dette faktum er nogle anvendte teknikker og parametre for flade figurer, såsom for eksempel kantindekset (forholdet mellem omkredsen og roden af ​​området), når man arbejder med et Koch-snefnug, uanvendelige [4] .

Beregningen af ​​den fraktale dimension af Koch-snefnuget giver en værdi omtrent lig med 1,2619 [3] [4] .

Det er også muligt at bygge det såkaldte Koch anti-snefnug, hvis generationsalgoritme består i at skære flere og flere nye trekanter ud fra den originale på hvert trin. Med andre ord er kanterne af basisformen modificeret indad, ikke udad. Som et resultat dækker den resulterende figur et uendeligt sæt af uforbundne områder, hvis samlede areal er lig med 2/5 af arealet af trekanten med nul iteration [5] .

Noter

  1. Burns, Aidan. Fraktale flisebelægninger ( neopr  .)  // Matematisk Gazette. - 1994. - T. 78 , nr. 482 . - S. 193-196 . — . .
  2. Baird, Eric. Alt.Fractals: En visuel guide til fraktal geometri og design . Chocolate Tree Books (2011) ISBN 0-9557068-3-1  - Kapitel 3 "Not the Koch Snowflake", esp. side 23-24.
  3. 1 2 E. Seligman. Between the Dimensions (Fra Math Mutation podcast 22) // Math Mutation Classics. Udforske interessante, sjove og underlige hjørner af matematik. - Hillsboro, Oregon, USA: APRESS, 2016. - S. 53. - ISBN 978-1-4842-1891-4 . - doi : 10.1007/978-1-4842-1892-1 .
  4. 1 2 3 Gelashvili D. B., Iudin D. I., Rozenberg G. S., Yakimov V. N., Solntsev L. A. 2.3. Regulære fraktaler // Fraktaler og multifraktaler i bioøkologi. - Nizhny Novgorod: Nizhny Novgorod State University, 2013. - S. 49. - 370 s. - ISBN 978-5-91326-246-2 .
  5. 1 2 A. A. Potapov, Yu. V. Gulyaev, S. A. Nikitov, A. A. Pakhomov, V. A. German. Klassiske fraktale kurver og sæt // De nyeste metoder til billedbehandling / A. A. Potapov. - M . : "Fizmatlit", 2008. - S. 82. - 496 s. - ISBN 978-5-9221-0841-6 .

Links