PMG2527 1/Rekursion Fraktale

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
<font color=darkgreen size=6>''Fraktale''</font>

Mit selbstähnlichen Figuren bzw. Objekten beschäftigt sich heute ein ganzes Teilgebiet der Mathematik, die ''fraktale Geometrie''. Ihre Untersuchungsergebnisse reichen in die Funktions- und Berechnbarkeitstheorie hinein und haben einen wesentlichen Einfluss auf die ''Chaosforschung'' komplexer dynamischer Systeme.<br />

[[Bild:Mandelbrot1.png|miniatur|Die vielleicht berühmteste fraktale Struktur: Das Apfelmännchen]]

Der Begriff '''Fraktal''' (lat. fractus "gebrochen") geht auf den französisch-US-amerikanischen Mathematiker '''Benoît Mandelbrot''' (* 20. November 1924; † 14. Oktober 2010) zurück. Mit ihm werden natürliche oder künstliche Gebilde bzw. geometrische Muster bezeichnet, die einen hohen Grad an Selbstähnlichkeiten aufweisen.

Klassische selbstähnliche oder fraktale Figuren sind das Sierpinski-Dreieck und die Koch-Schneeflocke:

<blockquote>[[Bild:Sierpinski_Koch1.GIF]]</blockquote>

 Beschreibe beide ''Fraktale'' verbal.



=== <font color=darkgreen size=4>''Quadratpflanze''</font> ===


Die Bilder zeigen die Entstehung einer Quadratpflanze.<br>
Bei jedem neuen Aufruf beträgt die Seitenlänge jeweils nur noch ein Drittel der vorherigen.<br>


[[Bild:Thomas_Pflanze.JPG]]

* Finde in der "Quadratpflanze" die einfachere in der komplizierteren wieder.
** Formuliere also die "grundlegenden Gedanken" für das Zeichnen der Pflanze.
** Nach welcher Rekursionsvorschrift werden "Quadratpflanzen" erzeugt?
* Zeichne den nächsten (vierten) Schritt in der Entwicklung.
* Analog zum Baum soll eine "Quadratpflanze" mit der Turtle gezeichnet werden.<br>


<canvas w=800 h=500></canvas>
<run id="69a4112f12135">
var c = new Canvas(1);
c.clear(); // Zeichenfläche löschen

var turtle = new Turtle(1); // neuer Turtle auf Zeichenfläche 1

turtle.move(100,400);
turtle.right(90);

function pflanze(l,n) {
if (n>1){   turtle.forward(l);
            turtle.left(90);
            pflanze(l/3,n-1);
//ergänzen

}
}
pflanze(200,3);

</run>



<code id="69a4112f11fdd" hidden>
function pflanze(l,n){
if (n>1) {  turtle.forward(l);
            turtle.left(90);
            pflanze(l/3,n-1);
            turtle.right(90);
            pflanze(l/3,n-1);
            turtle.right(90);
            pflanze(l/3,n-1);  
            turtle.left(90);
            turtle.forward(l);
          }
else     turtle.forward(l);
} 
</code>


=== <font color=darkgreen size=4>''Sierpinski-Dreieck''</font> ===


Diese selbstähnliche Figur ist nach dem polnischen Mathematiker '''Wacław Franciszek Sierpiński''' (* 14. März 1882; † 21. Oktober 1969) benannt. Die nachfolgende Abbildung zeigt die Konstruktion dieses Dreiecks: (interessantes zur Anwendung auch unter [http://en.wikipedia.org/wiki/Sierpinski_triangle])

<blockquote>[[Bild: Sierpinski1.GIF]]</blockquote>


<canvas w=800 h=500></canvas>

<run id="69a4112f1219e">
var c = new Canvas(2);
c.clear(); // Zeichenfläche löschen

var turtle = new Turtle(2); // neuer Turtle auf Zeichenfläche 2

turtle.move(300,350);

function sierpinski(l,t) {
if (t>1){   sierpinski(l/2, t-1);
            turtle.forward(l/2);
            sierpinski(l/2, t-1);
            turtle.left(60);
            
//ergänzen

}
}

sierpinski(300,5);

</run>



<code id="69a4112f1204c" hidden>
function sierpinski(l,t) { 
if (t>1) { 
sierpinski(l/2, t-1);
turtle.forward(l/2);
sierpinski(l/2, t-1);
turtle.left(60);
turtle.backward(l/2);
turtle.right(60);
sierpinski(l/2, t-1);
turtle.right(60);
turtle.backward(l/2);
turtle.left(60);
}
else {
turtle.forward(l);
turtle.right(120);
turtle.forward(l); 
turtle.right(120);
turtle.forward(l);
turtle.right(120);
}
}
</code>



=== <font color=darkgreen size=4>''Koch-Schneeflocke''</font> ===


Der schwedische Mathematiker '''Helge von Koch''' (* 25. Januar 1870; † 11. März 1924) stellte im Jahr 1904 einen stetigen Graphen vor, der an keiner Stelle differenzierbar ist.
Die sogenannte Koch-Schneeflocke setzt sich aus drei dieser Koch-Kurven zusammen, die auf den Seiten eines gleichseitigen Dreiecks angeordnet sind:

<blockquote>[[Bild: Kochkurve1.GIF]]</blockquote>


<canvas w=800 h=500></canvas>

<run id="69a4112f12213">
var c = new Canvas(3);
c.clear(); // Zeichenfläche löschen

var turtle = new Turtle(3); // neuer Turtle auf Zeichenfläche 3

turtle.move(300,350);

function koch(l,t) {
if (t>1){   koch(l/3,t-1);
            turtle.left(60);
//ergänzen

}
}

koch(300,3);
turtle.right(120);
koch(300,3);
turtle.right(120);
koch(300,3);
turtle.right(120);

</run>



<code id="69a4112f120b7" hidden>
function koch(l,t){ 
if (t>1) {
koch(l/3, t-1);
turtle.left(60);
koch(l/3, t-1);
turtle.right(120);
koch(l/3, t-1);
turtle.left(60);
koch(l/3, t-1);
}
else turtle.forward(l);
}

</code>



=== <font color=darkgreen size=4>''Hilbert'' </font> <font color=black size=2> - zum Weiterarbeiten </font> ===



Beispiel in Logo hier: [[http://programmingwiki.de/Logo_Hilbert]]

Informationsfilm [https://www.youtube.com/watch?v=6_fE5n_0WAo hier] 



<canvas w=800 h=500></canvas>

<run id="69a4112f1227b">
var c = new Canvas(4);
c.clear(); // Zeichenfläche löschen

var turtle = new Turtle(4); // neuer Turtle auf Zeichenfläche 4

turtle.move(300,350);

// eigener Versuch

</run>



=== <font color=darkgreen size=4>''Fraktale im "Matheprisma"'' </font> <font color=black size=2> - nützliche Hilfen und Spiele </font> ===



Fraktale als "Baumplantagen": [https://www.matheprisma.uni-wuppertal.de/Module/Frakplan/pages/node3.htm]

Fraktale und Chaosspiel: [https://www.matheprisma.uni-wuppertal.de/Module/Fraktal/pages/node3.htm]


== Musterlösungen ==

Hier Musterlösungen zum Vervollständigen... <document>PWiki_Rekursion_Musterlösungen.pdf</document>