Wir brauchen zwei neue Konzepte.
Bevor wir zu den Fraktalen kommen zwei klassische Aufgaben.
Aufgabe 1
Erstelle jeweils eine rekursive und eine nicht rekursive Version.
Als erstes Fraktal wollen wir das Sierpinski Dreieck berechnen.
IFS steht für Iteriertes Funktionen System, d.h. eine endliche Menge von Funktionen werden immer wieder aufgerufen und ausgeführt. Lest dazu den Artikel von Wikipedia über IFS, vor allem den Abschnitt Approximation der Grenzmenge.
Aufgabe 2
Gegeben sind die drei Eckpunkte $A,B$ und $C$ eines gleichseitigen Dreiecks mit Seitenlänge 100. Wähle als Startpunkt den Flächenschwerpunkt des Dreiecks. $$S(x|y)=\left(\frac{x_1+x_2+x_3}{3}|\frac{y_1+y_2+y_3}{3}\right)$$ Erstelle drei Funktionen $f_A(P_n)$, $f_B(P_n)$ und $f_C(P_n)$. $f_A(P_n)$ erhält als Parameter den letzten Punkt $P_n$. Der nächste Punkt ist dann die Mitte von $P_n$ und der Ecke $A$. Entsprechendes gilt für die Funktionen $f_B$ und $f_C$.
(a) Chaos Spiel
Der Befehl randint(0:2) liefert zufällig eine der drei Zahlen $\{0,1,2\}$, mit je einer Wahrscheinlichkeit von $\frac{1}{3}$. Wähle damit eine der drei obigen Funktionen aus und setze den berechneten Punkt. Wiederhole diesen Vorgang 10'000 bis 100'000 mal.
Eine schlanke Version wird ohne die drei Funktionen realisiert. Wie?
(b) Rekursive Version
Rufe im Hauptprogramm die Funktionen $f_A$, $f_B$ und $f_C$ nacheinander auf, starte dabei mit dem Schwerpunkt. Ergänze die Funktionen so, dass in allen Funktionen alle Funktionen wieder aufgerufen werden, bis zu einer vorgegebenen Rekursionstiefe. Ist diese Rekursionstiefe erreicht, dann soll der entsprechende Punkt gesetzt werden und die Funktion endet. Als Parameter wird immer der neu berechnete Punkt $P_{n+1}$ übergeben.
Einige Bemerkungen zur Aufgabe
Das IFS für das Barnsley Farn besteht aus vier affinen Abbildungen in der Form: $$ \vec{x}_{n+1}=A\cdot \vec{x_n}+\vec{b} \quad \Leftrightarrow \quad \left( \begin{array}{c} x_{n+1} \\ y_{n+1} \end{array} \right) = \left( \begin{array}{c c} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) \cdot \left( \begin{array}{c} x_{n} \\ y_{n} \end{array}\right) + \left( \begin{array}{c} b_x \\ b_y \end{array}\right) $$ 1. Abbildung: Stiel mit $p=0.02$ $$A_1=\left( \begin{array}{cc} 0 & 0 \\ 0 & 0.16 \end{array} \right) \qquad b_1=\left( \begin{array}{c} 0 \\ 0 \end{array} \right)$$ 2. Abbildung: linkes Blatt mit $p=0.1$ $$A_2=\left( \begin{array}{cc} 0.2 & -0.26 \\ 0.23 & 0.22 \end{array} \right) \qquad b_2=\left( \begin{array}{c} 0 \\ 1.6 \end{array} \right)$$ 3. Abbildung: rechtes Blatt mit $p=0.1$ $$A_3=\left( \begin{array}{cc} -0.15 & 0.28 \\ 0.26 & 0.24 \end{array} \right) \qquad b_3=\left( \begin{array}{c} 0 \\ 0.44 \end{array} \right)$$ 4. Abbildung: Kopiermaschine mit $p=0.78$ $$A_4=\left( \begin{array}{cc} 0.85 & 0.04 \\ -0.04 & 0.85 \end{array} \right) \qquad b_4=\left( \begin{array}{c} 0 \\ 1.6 \end{array} \right)$$
$p$ gibt die Aufrufwahrscheinlichkeit der entsprechenden Abbildung an.
Aufgabe 3