14  Fraktale *

14.1 Cantor Menge

Betrachten wir folgende Vorschrift: Wir nehmen das Intervall \([0,1]\) und schneiden im ersten Schritt das mittlere Drittel also das Intervall \([\frac{1}{3},\frac{2}{3}[\) heraus. Übrig bleiben die Intervalle \([0,\frac{1}{3}[\) und \([\frac{3}{3},1]\). Mit diesen Intervallen Verfahren wir genauso. Aus jedem der beiden Intervalle wird jeweils wieder das mittlere Drittel herausgeschnitten usw. (siehe Abbildung 14.1).

Abbildung 14.1: Die Cantor-Menge entsteht indem man in jedem Intervall das mittlere Drittel wegstreicht.

Die Frage ist, was übrig bleibt, wenn man dieses Verfahren unendlich oft anwendet. Das Bild, das dabei entsteht nennt man auch Limesbild (von Limes: Grenzwert). Obwohl jedes einzelne Objekt eine Strecke ist, besteht das Limesbild aus isolierten Punkten. Limesbilder können also ganz andere Eigenschaften haben als die Objekte, die zu ihrer Entstehung führen: Betrachten wir hierzu ein Quadrat der Kantenlänge 1. Wir schneiden nun sukzessive Quadrate heraus, so dass eine Treppe entsteht (Abbildung 14.2): Bestimmt man die Treppenlänge (von der oberen linken zur unteren rechten Ecke) so beträgt die Länge in jedem Schritt 2. Je öfter man das Verfahren wiederholt, umso mehr nähert sich die Treppe der Diagonalen (Limesbild). Die Diagonale hat aber die Länge \(\sqrt{2}\).

Abbildung 14.2: Die Treppenlänge beträgt für jeden Schritt 2. Die Diagonale als Limesbild hat die Länge.

Betrachten wir noch einmal die Cantor-Menge. Jedes Intervall, dass entsteht, sieht, bis auf einen Skalierungsfaktor, aus wie das Original. Die Cantor-Menge ist selbstähnlich. Eine Figur wird selbstähnlich genannt, wenn Teile der Figur kleine Kopien der ganzen Figur sind. Ein Matlab-Code zur Erzeugung der Cantor-Menge ist in Listing 14.1 angegeben.

14.2 Kochsche Schneeflockenkurve

Ein weiteres Beispiel für eine selbstähnliche Figur ist die Kochsche Kurve, auch Schneeflockenkurve genannt. Sie entsteht aus einem gleichseitigen Dreieck, bei dem man auf das mittlere Drittel jeder Seite ein weiteres Dreieck aufsetzt und die überschüssigen Linien wegstreicht (siehe 14.3).

Abbildung 14.3: Die Schneeflockenkurve entsteht indem auf jede Seite eines gleichseitigen Dreiecks in der Mitte ein gleichseitiges Dreieck mit einem Drittel der ursprünglichen Seitenlänge aufgesetzt wird.

Betrachtet man eine Seite des Dreiecks und setzt die erste Seitenlänge gleich eins, so verlängert sich die Seitenlänge in jedem Schritt um ein Drittel. Letztlich wird die Seite und damit die gesamte Kurve unendlich lang.

14.3 Sierpinski-Dreieck

Ein weiteres bekanntes Fraktal ist das Sierpinski-Dreieck1. Es entsteht aus einem gleichseitigen Dreieck, aus dem man sukzessive Dreiecke entfernt (Abbildung 14.4).

 

 

 

 

 
Abbildung 14.4: Sierpinski-Dreieck.

Eine weitere Möglichkeit, das Sierpinski-Dreieck zu erzeugen ist in Abschnitt 14.5.2 angegeben.

14.4 Fraktale Dimension

Um dieses etwas besser zu verstehen betrachten wir zunächst die für uns vertrauten Objekte Strecke, Quadrat und Würfel. Bei einer Strecke, die in drei gleiche Teile eingeteilt wird, beträgt die Länge jeder einzelnen Strecke ein Drittel der Ursprungslänge, logisch. Teilt man die Seiten eines Quadrats in drei gleiche Teile, so entstehen insgesamt 9 Quadrate, von denen jedes eine Fläche hat, die einem Neuntel der Ursprungsfläche entspricht. Teilt man die Kanten eines Würfels in drei gleiche Teile, so entstehen insgesamt 27 Würfel, von denen jeder ein Volumen hat, das einem Siebenundzwanzigstel des Ursprungsvolumen entspricht. Wir erhalten folgende Tabelle:

Objekt Skalierungsfaktor \(s\) Anzahl \(N\) Beziehung
image 3 3 \(3^1=3\)
image 3 9 \(3^2=9\)
image 3 27 \(3^3=27\)

Man erhält die Beziehung \[s^D=N \;, \mbox{ oder } D=\frac{\log N}{\log s}\] wobei \(D\) die Dimension des Objektes ist.

Führt man dasselbe Verfahren für die Cantor-Menge und die Schneeflockenkurve durch, so erhält man:

Objekt Skalierungsfaktor \(s\) Anzahl \(N\) Beziehung
image 3 2 \(3^x=2\)
image 3 4 \(3^x=4\)

Bestimmt man jeweils den unbekannten Exponenten \(x\), so erhält man für die Cantormenge den Wert \(x=\frac{\log 2}{\log 3} = 0,631\), für die Schneeflockenkurve \(x=\frac{\log 4}{\log 3} = 1.262\). Nach obigen Überlegungen handelt es sich bei diesen Werten um die Dimension der Objekte. Man erhält einen Dimensionsbegriff, bei dem auch nicht-ganzzahlige Werte zugelassen sind, die fraktale Dimension:

Fraktale Dimension der Cantor-Menge: \(D_{Cantor}\approx 0.631\)
Fraktale Dimension der Kochschen Schneeflockenkurve: \(\displaystyle_{Koch} \approx 1.262\)
 

Die bisherigen Überlegungen passen damit gut zusammen. Die Cantormenge, deren Limesbild aus isolierten Punkten und nicht mehr aus Strecken besteht, hat eine Dimension zwischen Punkt (D=0) und Strecke (D=1), die Schneeflockenkurve, deren Länge unendlich ist, hat eine Dimension zwischen Strecke (D=1) und Fläche (D=2).
Beim Sierpinski-Dreieck wird bei einer Verdopplung der linearen Ausdehnung (der Seitenlänge), also einem Skalierungsfaktor von s=2, eine Verdreifachung des Ausgangsbildes erreicht, also N=3. damit hat das Sierpinski-Dreieck die faktale Dimension \(D=\frac{\log3}{\log 2}\approx 1.585\). Die Dimension liegt also zwischen der einer Strecke und der einer Fläche.

14.4.1 Kästchenzählmethode

Man erhält einen Wert für die fraktale Dimension auch, indem man die sogenannte Kästchenzählmethode anwendet. Hierzu überdeckt man das Fraktal mit einem Gitter der Maschenweite \(\varepsilon\) überdeckt, und die Anzahl \(N\) der Gitterzellen bestimmt, die das Objekt überdeckt. Diese Anzahl wird natürlich von der Maschenweite abhängen. Trägt man das Ergebnis für verschiedene Maschenweiten doppelt logarithmisch auf, so sieht man, dass ein linearer Zusammenhang zwischen \(\log N\) und \(\log \frac{1}{\varepsilon}\) besteht . Man kann also eine Gerade bestimmen, so dass

\[\log N = D \cdot \log \frac{1}{\varepsilon} +b\]

bzw.

\[N= 10^{D \cdot \log \frac{1}{\varepsilon} +b} = 10^b\cdot \frac{1}{\varepsilon^D}\]

gilt. Die Steigung \(D\) wird als fraktale Dimension definiert2.

14.5 Das Chaos-Spiel

14.5.1 Cantor-Menge

Man kann selbstähnliche Fraktale auch über ein Chaos-Spiel erreichen. Es sei die Strecke \(\overline{AB}\) gegeben. Ein Floh hüpft auf dieser Strecke nach folgenden Regeln umher: Er startet bei \(\frac{2}{3}\) und wirft eine Münze. Bei Kopf springt er in Richtung A und zwar genau \(\frac{2}{3}\) der Entfernung bis A, Bei Zahl springt er in Richtung B und zwar genau \(\frac{2}{3}\) der Entfernung bis B. Diese Regel wird beliebig oft wiederholt. Wählt man A=0, B=1 und \(x_{alt} =\frac{2}{3}\), erhält man folgendes Schema:
Kopf: \(x_{neu}= x_{alt} - \frac{2}{3} \cdot x_{alt} = \frac{1}{3} \cdot x_{alt}\)
Zahl: \(x_{neu}= x_{alt} + \frac{2}{3} \cdot (1-x_{alt}) = \frac{2}{3} + \frac{1}{3} \cdot x_{alt}\)
Man erhält so die Zahlenfolge

\(x_0=\frac{2}{3}\)
\(x_1=\frac{1}{3} \cdot x_0=\frac{1}{3} \cdot \frac{2}{3}=\frac{2}{9}\)
\(x_2=\frac{2}{3} + \frac{1}{3} \cdot x_{1}=\frac{2}{3} + \frac{1}{3} \cdot \frac{2}{9} =\frac{20}{27}\)
\(x_3=\frac{1}{3} \cdot \frac{20}{27} = \frac{20}{81}\)
\(\ldots\)

Stellt man diese Folge graphisch dar, so entsteht nach und nach die Cantor-Menge. In Listing 14.1 ist ein pProgramm angegeben, das die Cantor-Menge über diesen Algorithmus erzeugt.

N=100; % Anzahl Punkte
% Startpunkt
x =2/3; % Startpunkt
 for j = 1:N
    p=randi(2)-1; % Zufallszahl  (1 oder 2)
    if p==1
       x=x/3;
    else 
        x=2/3+x/3;
    end
    %  Punkt zeichnen
    plot(x,1,'k.')
    hold all
end
Listing 14.1: Matlab Code zur Erzeugung der Cantor-Menge{}{}{}

Auch interessant: Betrachtet man diese Zahlen im Ternärsystem (Zahldarstellung zur Basis 3), so stellt man fest, dass die Ziffer 1 nicht vorkommt und dass sich von Schritt zu Schritt eine Null (bei Kopf) oder eine Zwei (bei Zahl) hinter dem Komma dazwischenschiebt:

\(x_0=\frac{2}{3} = 2 \cdot 3^{-1} = 0.2_{TER}\)
\(x_1=\frac{2}{9} = 0 \cdot 3^{-1} + 2 \cdot 3^{-2} = 0.02_{TER}\)
\(x_2=\frac{20}{27} = 2 \cdot 3^{-1} + 0 \cdot 3^{-2}+ 2 \cdot 3^{-3}= 0.202_{TER}\)
\(x_2= \frac{20}{81} = 0 \cdot 3^{-1} + 2 \cdot 3^{-2}+ 0 \cdot 3^{-3}+2 \cdot 3^{-4}= 0.0202_{TER}\)

14.5.2 Sierpinski-Dreieck

Ein Archäologe hat ein dreieckiges Gebiet abgesteckt, in dem er Dino-Knochen vermutet. Da er keine Ahnung hat wo, fängt er an einem beliebigen Ort im Dreieck an zu graben. Den nächsten Ort wählt er aus, indem er zuerst eine Ecke auswählt und dann den Mittelpunkt zwischen dieser Ecke und seiner aktuellen Position als neuen Grabungsort bestimmt. Trägt man die Grabungsorte auf, so entsteht nach und nach das Dreieck nach Sierpinski (1882-1969). Ein Matlab-Code zur Erzeugung des Sierpinski-Dreiecks ist in Listing 14.2 angegeben.

N=10000; %Anzahl der Schritte
vx=zeros(1,N);% Vektoren fuer die Punkte initialisieren
vy=zeros(1,N);
px(1)=0;% Eckpunkte
py(1)=0;
px(2)=100;
py(2)=0;
px(3)=50;
py(3)=87;

x =50; % Startpunkt
y =50;
for j = 1:N
    p=randi(3); % Zufallszahl erzeugen (1,2 oder 3)
    x=(x+px(p))/2;
    y=(y+py(p))/2;
    vx=[vx x]; % Punkt in Vektoren merken
    vy=[vy y];
end
plot(vx,vy,'k.') % alle Punkte schwarz zeichnen
Listing 14.2: Matlab Code zur Erzeugung des Sierpinski-Dreiecks

14.5.3 Der Barnsley-Farn

Abbildung 14.5: Barnsley-Farn

Zur Erzeugung des Farns nach Barnsley (*1946) wird ausgehend von einem Startpunkt \((x_0,y_0)\) eine von vier affinen Abbildung ausgewählt, die auf den Punkt losgelassen wird(Barnsley und Rising 1993). In jedem Schritt wird zufällig eine der vier Abbildungen ausgewählt. Um ein gleichmäßiges Bild zu erhalten, wird eine Abbildung umso häufiger ausgewählt, je größer ihr Bild (ihre Determinante) ist, das sie erzeugt.

\[\begin{aligned} \left ( \begin{array}{c} x_{neu} \\ y_{neu} \end{array} \right ) &= \left ( \begin{array}{cc} 0.85 & 0.04\\-0.04&0.85 \end{array}\right ) \cdot \left ( \begin{array}{c} x_{alt} \\ y_{alt} \end{array} \right ) + \left ( \begin{array}{c} 0 \\ 1.6 \end{array} \right )\\ \left ( \begin{array}{c} x_{neu} \\ y_{neu} \end{array} \right ) &= \left ( \begin{array}{cc} 0.2 & -0.26\\0.23&0.22 \end{array}\right ) \cdot \left ( \begin{array}{c} x_{alt} \\ y_{alt} \end{array} \right ) + \left ( \begin{array}{c} 0 \\ 1.6 \end{array} \right )\\ \left ( \begin{array}{c} x_{neu} \\ y_{neu} \end{array} \right )& = \left ( \begin{array}{cc} -0.15 & 0.28\\0.26&0.24 \end{array}\right ) \cdot \left ( \begin{array}{c} x_{alt} \\ y_{alt} \end{array} \right ) + \left ( \begin{array}{c} 0 \\ 0.44 \end{array} \right )\\ \left ( \begin{array}{c} x_{neu} \\ y_{neu} \end{array} \right )& = \left ( \begin{array}{cc} 0 & 0\\0&0.16\end{array}\right ) \cdot \left ( \begin{array}{c} x_{alt} \\ y_{alt} \end{array} \right ) + \left ( \begin{array}{c} 0 \\ 0 \end{array} \right ) \end{aligned}\]

Dieses Verfahren zur Erzeugung selbstähnlicher Abbildungen nennt man iteriertes Funktionensystem (IFS). Ein Matlab-Programm zur Erzeugung des Farns mittels des IFS ist in Listing 14.3 angegeben.

xalt = 1;% Startpunkt
yalt = 0;
N=10000; % Anzahl Punkte
vx=zeros(1,N);% Vektoren fuer die Punkte initialisieren
vy=zeros(1,N);
w1=0.79; % Wahrscheinlichkeiten (Summe=1)
w2=0.1;
w3=0.1;
w4=0.01;
for i = 1 : N
    q = rand; % Zufallszahl zwischen 0 und 1
    if q<w1
         x = .85*xalt + .04*yalt;
         y = -.04*xalt + .85*yalt + 1.6;
    else 
        if q<w1+w2
          x = .2*xalt - .26*yalt;
          y = .23*xalt +.22*yalt + 1.6;
        else
            if q<w1+w2+w3 
          x = -.15*xalt + .28*yalt;
          y = .26*xalt +.24*yalt + .44;
            else
           x=0;
           y=0.16*yalt;
            end
        end
    end
    vx=[vx x]; % Punkt in Vektoren merken
    vy=[vy y];
    xalt=x; % neuer Punkt ist naechster Startwert
    yalt=y;
end    
plot(vx,vy,'k.') % alle Punkte schwarz zeichnen
Listing 14.3: Matlab Code zur Erzeugung des Farns

14.6 Mandelbrot-Menge

Die Mandelbrot-Menge (Mandelbrot 1987) ist nach Benoit B. Mandelbrot (\(^*\)1924) benannt und wird manchmal auch als Apfelmännchen bezeichnet. Sie ist eine Teilmenge der komplexen Ebene \(\mathbb{C}\). Die komplexe Ebene besteht aus komplexen Zahlen \(z\), die sich aus einem Realteil \(a\) und einem Imaginärteil \(b\) zusammensetzen:

\[z =a+ i\cdot b \qquad \mbox{ mit } \qquad i=\sqrt{-1}\]

Der Betrag einer komplexen Zahl beträgt \(\vert z\vert =\sqrt{a^2+b^2}\)

Die Mandelbrot-Menge ist wie folgt definiert:

\[M= \lbrace c\in \mathbb{C}\;|\; (z_n)\; \mbox{bleibt beschränkt} ,\;\; z_{n+1} = z_{n}^2 +c, z_0=c \rbrace\]

Praktisch kann man die Beschränktheit bestimmen, indem man für jeden Punkt der Ebene nachschaut, ob die Werte der Iteration den Kreis um Null mit dem Radius 2 nach einer bestimmten Zeit verlassen. Hierzu bestimmt man den Abstand der komplexen Zahl vom Ursprung und überprüft, ob dieser kleiner als zwei ist: \(\vert z_n -0\vert <2\). Nach einer bestimmten Zeit bedeutet hierbei, dass man eine Anzahl an Iterationsschritten vorgibt. Bleiben alle Werte der Iteration innerhalb des Kreises, so zählt man den Ausgangspunkt zur Menge. Je größer man die Anzahl wählt, desto genauer kann man die Menge bestimmen. Ein Bild der Mandelbrot-Menge ist in Abbildung 14.6 gegeben, ein einfaches Matlab-Programm zur Erzeugung der Mandelbrotmenge in Listing 14.4.

minr=-2; % Grenzen festlegen
maxr=0.5;
mini=-1.2;
maxi=1.2;
delt=0.005; % Aufloesung
vr=[];% Vektoren fuer die Punkte initialisieren
vi=[];
for ci=mini:delt:maxi % Imaginaerteile
   for cr=minr:delt:maxr   %Realteile   
       zr=cr; % Realteil Iterationsstartwert
       zi=ci; % Imaginaerteil Iterationsstartwert
       count=0;
       while zr*zr+zi*zi<4 & count<50 % schauen ob es konvergiert
          temp=zr*zr-zi*zi+cr; % neuen Realteil zunaechst merken
          zi=2*zr*zi+ci; % Imaginaerteilteil des Iterationsschritts
          zr=temp; % Realteil des Iterationsschritts
          count=count+1;
       end
       if count>=50 % Punkt der Mandelbrotmenge
            vr=[vr cr];
            vi=[vi ci];     
       end
   end
end
plot(vr,vi,'k.') % alle Punkte der Mandelbrotmenge zeichenen
axis equal
Listing 14.4: Matlab Code zur Erzeugung der Mandelbrot-Menge{}{}{}

Die Farben in Abbildung 14.6, ergeben sich, wenn man die Punkte, für die die Iteration nicht beschränkt ist, je nach Divergenzgeschwindigkeit unterschiedlich einfärbt. Die Menge der Punkte, für die die Iteration konvergiert (schwarz), heißt Mandelbrot-Menge.

Abbildung 14.6: Mandelbrot-Menge (schwarz).
Die gesamte Grafik stellt den Bereich [-2,1] x [-1.5i,1.5i] dar.

14.6.1 Julia-Mengen

Eng verwandt mit der Mandelbrot-Menge sind die Julia-Mengen (Abbildung 14.7). Die Julia-Mengen sind nach Gaston M. Julia (1893-1978) benannt. Die Julia-Menge zu einem Punkt \(c\) ist eine Teilmenge der komplexen Ebene, die durch

\[J_c= \lbrace z\in \mathbb{C}\;|\; (z_n)\; \mbox{bleibt beschränkt}, \;\; z_{n+1} = z_{n}^2 +c, z_0=z \rbrace\]

definiert ist. Der Unterschied zur Mandelbrot-Menge besteht darin, dass ein Punkt \(c\) vorgegeben wird und für jeden Punkt \(z\) der Ebene nachgeschaut wird, ob die Iterationsfolge beschränkt bleibt. Man erhält also für jedes \(c\) eine Julia-Menge. Interessanterweise sind die Julia-Mengen, deren c-Werte der Mandelbrot-Menge angehören, zusammenhängende Mengen. Die Julia-Mengen, deren c-Werte außerhalb der Mandelbrot-Menge liegen, bestehen aus isolierten Punkten. Unter diesem Aspekt kann man die Mandelbrot-Menge als Inhaltsverzeichnis der Julia-Mengen auffassen.

 

 

 
Abbildung 14.7: Julia-Mengen zu den Punkten c=1.28 (links) c= 0.334 - 0.528 i (Mitte) und c= -0.776 + 0.216 i (rechts).

14.7 Anwendungen

Auf den ersten Blick erscheinen Fraktale als ganz hübsch, aber nicht sonderlich nützlich. In den letzten Jahren hat es aber eine ganze Reihe von praktischen Anwendungen gegeben:

  • Die Küstenlänge von England hat die Dimension \(D\approx1.23\).

  • Misst man den Stoffwechsel (metabolische Rate) S von Lebewesen und trägt diesen doppelt-logarithmisch über der Körpermasse M auf , so ergibt sich der lineare Zusammenhang \(\log S = a \cdot \log M +b\) mit einer Steigung von \(a \approx0.75\). Daraus kann man die Dimension schließen, wenn man annimmt, dass die Masse proportional zum Volumen ist und das Volumen proportional zur dritten Potenz der linearen Ausdehnung r. Es gilt \(S \sim M^a\), also \(S \sim r^{3a}\). Man erhält die Dimension \(D\approx 3 \cdot 0.75=2.25\).

  • Die Dimension der Hirnhaut, d.h. der Hirnoberfläche ist \(D\approx 2.79\) (Mandelbrot 1987).

  • Die Verästelungen der Bronchien sind nahezu selbstähnlich. Es ergibt sich eine Dimension von \(D\approx2.8\). Bei der Dosierung von Medikamenten muss dies berücksichtigt werden (Stypa 1997).

Barnsley, M. F., und H. Rising. 1993. Fractals Everywhere. Elsevier Science. https://books.google.de/books?id=oh7NoePgmOIC.
Mandelbrot, B. B. 1987. Die Fraktale Geometrie der Natur. Birkhäuser Basel. https://books.google.de/books?id=bkVNilU3SvwC.
Stypa, Jörn. 1997. „Charakterisierung des menschlichen Bronchialbaums als Fraktal. Diplomarbeit, Westfälische Wilhelms-Universität, Münster.

  1. Waclaw Sierpinski (1882-1969)↩︎

  2. Dies ist nur eine Möglichkeit, eine fraktale Dimension zu definieren. Sie wird Kästchenzähldimension (box counting dimension) genannt. Eine weitere Dimension ist die nach Felix Hausdorff (1868 bis 1942) benannte Hausdorff-Dimension, die für die hier betrachteten Fraktale aber dieselben Werte liefert.↩︎