Hans Walser, [20080126a]
Sierpinski, Cantor & Co
Ein Uralt-Trick, das
Sierpinski-Dreieck zu generieren, besteht darin, dass man zunŠchst die drei
Eckpunkte , , des
gleichseitigen Dreieckes nimmt. Anschlie§end wird eine Punktfolge mit dem
Startpunkt rekursiv
definiert:
Dabei ist r eine Zufallszahl aus {0, 1, 2}. FŸr ergibt sich das
gewšhnliche Sierpinski-Dreieck. Es sind 4000 Punkte gezeichnet.
Problematisch bei
diesem Verfahren ist, dass wir viele Punkte brauchen (Speicher, Rechenzeit) und
dass es Probleme mit der Auflšsung gibt.
Das Sierpinski-Dreieck
hat die fraktale Dimension
NatŸrlich variieren wir
nun das .
FŸr erhalten wir:
Das sieht noch ganz
ordentlich nach Fraktal aus. FŸr die fraktale Dimension erhalten wir:
Das ist nicht eben
ãfraktalÒ.
FŸr erhalten wir:
Die Punkte scheinen (fŸr ) Ÿberall dicht
im Dreieck zu liegen. Die fraktale Dimension ist 2.
FŸr gibt es auch
etwas Schšnes.
FŸr reisen die
Punkte ab.
FŸr haben die Punkte
den Schwerpunkt als Limes.
Wir kšnnen auch die
Eckenzahl variieren. FŸr nur 2 Ecken und erhalten wir die
Ÿbliche Cantor-Menge (das so genannte Cantorsche Diskontinuum):
Die Cantor-Menge hat
die fraktale Dimension .
FŸr (goldener
Schnitt) erhalten wir die unendlich fortgesetzte Unterteilung im goldenen
Schnitt.
Das Viereck ist
langweilig.
Die fraktale Dimension
ist , das Doppelte der fraktalen Dimension der Cantor-Menge.
Beim FŸnfeck fahren wir
gleich mit dem goldenen Schnitt los:
Beim Sechseck arbeiten
wir mit .
Wir erkennen im Zentrum
die Kochsche Schneeflocke.
Beim Siebeneck versuchen
wir es mit .
Die Bilder wurden mit
MuPAD gezeichnet. Nachfolgend das Programm fŸr das Sierpinski-Dreieck.
n:=3:
m:=4000:
lambda:=0.5:
delta:=PI/2:
for k from 0 to n-1 do
P[k]:=cos(k*2*PI/n+delta)+I*sin(k*2*PI/n+delta):
end_for:
Q[0]:=P[0]:
r:=random(0..n-1):
for j from 1 to m do
Q[j]:=lambda*Q[j-1]+(1-lambda)*P[r()]:
end_for:
Punkt:=k->plot::Point2d([Re(P[k]), Im(P[k])], PointSize=2,
PointColor=[0,0,1]):
Qunkt:=j->plot::Point2d([Re(Q[j]), Im(Q[j])], PointSize=0.5,
PointColor=[1,0,0]):
plot(Punkt(k)$k=0..n-1, Qunkt(j)$j=1..m, Scaling=Constrained,
Axes=None, Width=140, Height=140, BorderWidth=1/4*unit::mm):