Von Kochs snefnug

Fra Wikipedia, den frie encyklopædi
Jump to navigation Jump to search
Koch-kurvens udvikling i de fem første iterationer.
Snefnugkurven eller von Kochs snefnug.

von Kochs snefnug, tillige kendt som Koch-kurven, blev beskrevet af matematikeren Helge von Koch i en artikel med titlen "Sur une courbe continue sans tangente, obtenue par une construction géométrique élémentaire", publiceret 1904 i Arkiv för matematik, astronomi och fysik. Hensigten med artiklen var at give et geometrisk mere tiltalende eksempel på en kontinuerlig kurve som savner tangent i alle punkter end det, som Karl Weierstrass havde opdaget i 1861. Siden er Koch-kurven tillige kendt som en af de tidligst beskrevne fraktaler, et begreb som formuleredes 70 år senere.

Koch-kurvens definition:

  1. Tag en linje.
  2. Del linjen i tre lige store dele.
  3. Lav en kopi af den mellemste del.
  4. Stil de to kopier i vinkel mod hverandre, så at de får plads inden for samme strækning som en ensom linje ellers gør.
  5. Gentag (iterer) fra trin 2 for alle de nye linjer, som er kommet frem ved operationen.

Antallet af nye linjer at operere på bliver hele tiden 4 gange det tidligere antal linjer, så antallet af linjer efter n iterationer bliver følgelig 4n. Linjen vokser i længde med en tredjedel i hver ny iteration og kommer således til sidst at blive en uendeligt lang kurve men inden for en begrænset flade. Derfor er kurvens dimensionstal ikke et heltal. Det er anledningen til, at Koch-kurven er en fraktal, (af lat; fractus, brøkdel). Koch-kurvens Hausdorffdimension er .

von Kochs snefnug[redigér | redigér wikikode]

Denne figur dannes ved, at man begynder med en ligesidet trekant i stedet for en linje. Ved hver iteration øger omkredsen med en tredjedel. I iteration n er længden gange den oprindelige længde. Snefnuggets omkreds savner altså grænseværdi og går mod uendelig, når n går mod uendelig. Derimod konvergerer dets areal mod 8/5 gange den oprindelige trekants areal.

Programeksempel[redigér | redigér wikikode]

Følgende er en algoritme i programmeringssproget QBasic som viser von Kochs kurve som en IFS-fraktal. Koden er nok ikke alt for svær at oversætte til C/C++ eller noget andet højniveausprog forudsat, at man ved hvordan man gør for at skabe en skærmflade og skrive pixler til den. Bemærk dog at tegnet [#] modsvarer float i C og [%] er int.

SCREEN 12
RANDOMIZE TIMER
rad# = ATN(1#) / 45#
vinkel# = 60# * rad#
skalning# = 1# / 3#
bildskalning# = 200#
positionx#(0) = 1#
positiony#(0) = 0#
positionx#(1) = COS(vinkel#) / 2#
positiony#(1) = SIN(vinkel#) / 2#
rotationx#(0) = skalning#
rotationy#(0) = 0#
rotationx#(1) = COS(vinkel#) * skalning#
rotationy#(1) = -SIN(vinkel#) * skalning#
x# = 0.75#
y# = 0#
WHILE INKEY$ = ""
  i% = FIX(RND * 2)
  t# = rotationx#(i%) * x# – rotationy#(i%) * y# + positionx#(i%)
  y# = rotationx#(i%) * y# + rotationy#(i%) * x# + positiony#(i%)
  IF FIX(RND * 2) THEN x# = t# ELSE x# = -t#
  PSET (320 + bildskalning# * x#, 240 – bildskalning# * y#)
WEND
END

Se også[redigér | redigér wikikode]

Eksterne henvisningr[redigér | redigér wikikode]

Commons-logo.svg
Wikimedia Commons har medier relateret til: