Fraktali, Kochova krivulja in Kochova snežinka

Fraktali, Kochova krivulja in Kochova snežinka

Avtor: Urban Kržan

Kaj so fraktali

Fraktali so samopodobni geometrijski objekti. To pomeni, da je objekt sestavljen (iz približno ali popolnoma enakih) kopij samega sebe. Fraktale torej lahko poljubno mnogokrat povečamo,podrobnosti pa se ohranjajo. Poleg tega za fraktale veljajo še druge lastnosti:

  1. so preveč nepravilne oblike za opis z običajnimi geometrijskimi prijemi, čeprav so pogosto zelo simetrični;
  2. njihova fraktalna dimenzija je vecja od topološke razsežnosti;
  3. so določeni rekurzivno.

Prvič je izraz fraktal uporabil Benoit Mandelbrot in izhaja iz latinske besede fractus, ki pomeni nepravilen oz. razbit.

Primeri v naravi

Med fraktale v naravi spadajo gore, oblaki, drevesa in grmi ter veliko ostalih rastlin, na primer cvetača in praprot. Tudi brokolijevo obliko bi lahko označili kot fraktal. Vsaka glavica je sestavljena iz niza manjših brstičev, urejenih v logaritemski spirali.

Obala je prav tako lep primer fraktala. Na zemljevidu je videti nezapletena. Če se približamo, odkrijemo še dodatne podrobnosti (na primer manjše zalive in rtiče) in če vključimo še te zavoje, izmerjena dolžina obale močno naraste. Čim bolj podroben je zemljevid, tem daljša se zdi obala. Avstralska obala je odličen primer za razlago neskončnosti fraktalne črte.

(pravapraprot.gif)
(brokoli.jpg)
(agava.jpg)
(iglavci.jpg)
(mandelbrot.jpg)

Kochova krivulja

Kochovo krivuljo dobimo tako, da ravno črto (Kochova krivulja ničte stopnje) razdelimo na tri enake dele. Srednji del izrežemo in ga nadomestimo z dvema črtamo, ki bi skupaj z izbrisanim delom tvorili enakostranični trikotnik. Dobimo Kochovo krivuljo prve stopnje. Če postopek ponovimo na vseh štirih dobljenih črtah, nastane Kochova krivulja druge stopnje.

(kochova_krivulja.gif)
Kochova krivulja stopnje 0, 1 in 2

Kolikšna je dolžina Kochove krivulje?

Naj bo dolžina Kochove krivulje stopnje nič, enaka . Dolžina Kochove krivulje stopnje 1 je potem , dolžina Kochove krivulje stopnje 2 je , dolžina Kochove krivulje stopnje 3 je . Vidimo, da se dolžina povečuje s faktorjem .
Torej, dolžina Kochove krivulje stopnje je .

(kochova_krivulja1.png)

Kochova snežinka

Do Kochove snežinke pridemo tako, da vzamemo enakostranični trikotnik in mu namesto stranic narišemo Kochove krivulje ustrezne stopnje.

(kochova_snezinka.png)
Kochova snežinka stopnje 0, 1, 2 in 3

Ker Kochovo snežinko sestavljajo tri Kochove krivulje, je obseg Kochove snežinke stopnje kar .

Ploščina Kochove snežinke

Poglejmo si še, kako bi izračunali ploščino Kochove snežinke. Na začetku imamo enakostranični trikotnik (Kochova snežinka stopnje 0) s stranico , za enakostranični trikotnik pa vemo, da je njegova ploščina .

(kochova_snezinka1.png)
Kochova snežinka stopnje 0, 1, 2, 3, 4 in 5

Poglejmo si njaprej, kako se povečuje s stopnjo snežinke število 'izrastkov'.

Na snežinki stopnje 1 so 3 izrastki,

na snežinki stopnje 2 je 12 izrastkov,

na snežinki stopnje 3 je 48 izrastkov,...

Ugotovimo, da število izrastkov narašča na naslednji način:

Ploščina Kochove snežinke

Poglejmo si še ploščine izrastkov:

Na snežinki stopnje 1 imajo izrastki ploščino:

Na snežinki stopnje 2 imajo izrastki ploščino:

Na snežinki stopnje 3 imajo izrastki ploščino:

Tudi za izračun ploščine lahko zapišemo enoten obrazec:

(kochova_snezinka3.jpg)
Kochova snežinka stopnje 2

Ploščina Kochove snežinke

Čas je, da napišemo program za izračun ploščine. V Pythonu bi program izgledal približno tako:

import math

def kochovaSnezinka(n, a):
    plStopnje1 = (a**2)*math.sqrt(3)/4
    if n == 1:
       plLika = plStopnje1
       return plLika
    else:
       stIzrastkov = 3*4**(n-2)
       plIzrastka = ((a/3**(n-1))**2)*math.sqrt(3)/4
       plLika = stIzrastkov * plIzrastka + kochovaSnezinka(n-1, a)
    return plLika

Narišimo Kochovo krivuljo in Kochovo snežinko

Program, s katerim narišemo Kochovo krivuljo in Kochovo snežinko:

import turtle

def kochovaKrivulja(n, a):
    if n == 0:
       turtle.fd(a)
    else:
        kochovaKrivulja(n-1, a/3)
        turtle.lt(60)
        kochovaKrivulja(n-1, a/3)
        turtle.rt(120)
        kochovaKrivulja(n-1, a/3)
        turtle.lt(60)
        kochovaKrivulja(n-1, a/3)


def kochovaSnezinka(n, a):
    if n == 0:
       turtle.lt(60)
       turtle.fd(a)
       turtle.rt(120)
       turtle.fd(a)
       turtle.rt(120)
       turtle.fd(a)
    else:
       turtle.lt(60)
       kochovaKrivulja(n, a)
       turtle.rt(120)
       kochovaKrivulja(n, a)
       turtle.rt(120)
       kochovaKrivulja(n, a)

Še nekaj drugih fraktalov

(mengerjeva_spuzva.jpg)
Mengerjeva spužva
(preproga_sierpinskega.jpg)
Preproga Sierpinskega
(trikotnik_sierpinskega.jpg)
Trikotnik Sierpinskega

Uporaba fraktalov

Ker fraktali ohranijo osnovne značilnosti prvotne strukture, z njimi pa pridobimo na lahkosti materialov, jih uorabljajo predvsem v letalski industriji in gradbeništvu.
Fraktali so povezani tudi z metamateriali. To so predmeti, ki pridobijo svoje lastnosti iz svoje strukture in ne samo iz materialov, iz katerih so narejeni. Sposobni so vplivati na elektromagnetne valove in imajo negativni lomni količnik. To pomeni, da lomijo svetlobo v nasprotju z običajnimi materiali in jo lahko tudi poljubno usmerjajo.

Literatura

0%
0%