MathePrisma Logo

Fraktale Plantagen

Fraktale Plantagen

Nicht nur für Programmierer

Algorithmus mit zwei IFS

Ob Programmierer oder nicht: Vielleicht verstehst du so den Algorithmus für ein IFS mit Hierarchisierung noch besser:

Vorausgesetzt wird

  • die Existenz eines Motiv-IFS mit den Funktionen \(f_1, f_2, ..., f_n\) und den zugehörigen Auswahlwahrscheinlichkeiten \(w_{f_1}, w_{f_2}, ..., w_{f_n}\) mit \(\sum_{i=1}^nw_{f_i}=1\)
  • die Existenz eines Hierarchie-IFS mit den Funktionen \(g_1, g_2, ..., g_m\) und den zugehörigen Auswahlwahrscheinlichkeiten \(w_{g_1}, w_{g_2}, ..., w_{g_m}\) mit \(\sum_{j=1}^mw_{g_j}=1\)
  • ein fester Hierarchie-Faktor \(k\), der bestimmt, dass das Hierarchie-IFS \(k\)-mal so oft wie das Motiv-IFS eingesetzt wird (z.B. \(k=5\))

Prozedur Motiv-IFS mit Hierarchie (Chaosspiel)

Setze einen Punkt \(P\) beliebig;
Wiederhole...
Wähle gewichtet nach den \(w_{f_i}\) zufällig eine Zahl \(s\) aus \(1, 2, ..., n\);
\(P=f_s(P)\); //Voriteration mit dem Motiv-IFS, ca. 100 Schritte genügen
...bis ein Punkt \(P_0\) des Attraktors (Motiv) erreicht ist;
Setze \(P=P_0\);
Setze \(Q=P_0\);
Wiederhole...

Wähle zufällig eine Zahl \(z\) aus \(1, 2, ..., k\);
Falls \(z=1\):

Wähle gewichtet nach den \(w_{f_i}\) zufällig eine Zahl \(s\) aus \(1, 2, ..., n\);
// Eine Funktion des Motiv-IFS herausgreifen
Setze \(Q=f_s(Q)\);
Setze \(P=Q\);
Zeichne \(Q\);

Andernfalls:

Wähle gewichtet nach den \(w_{g_i}\) zufällig eine Zahl \(t\) aus \(1, 2, ..., m\);
// Eine Funktion des Hierarchie-IFS herausgreifen
Setze \(P=g_t(P)\);
Zeichne \(P\);

...bis das Bild dicht genug erscheint.

Wie die Ausdrücke \(f_s(Q)\) bzw. \(g_t(P)\) berechnet werden, zeigt die Unterseite zum mathematischen Hintergrund (von Seite 5) und ausführlicher das erste Fraktale-Modul. Vielleicht hast du jetzt Lust, dazu ein eigenes Programm zu schreiben. Die Programmiersprache kannst du dir aussuchen...