Feigenbaum-Diagramm
Heute am 01.08.2006 habe ich mich mit chaotischen Vorgängen beschäftigt und mehrere Feigenbaumdiagramme mit einem kleinen Perl-Skript erstellt. Wenn die Zeit reicht, kommt vielleicht auch noch ein kleines Java-Applet. So ist nur eine Ausgabe für mein Plotter-Skript entstanden.
Heute am 03.08.2006 hat sich das Programm etwas geändert. die Zeichenroutine ist jetzt auch in y-Richtung variabel. Deshalb sind auch gleich ein paar http://www.xenia-rendtel.de/Download/Programmierung/Bilder hinzugekommen.
Hier kommt nun zuerst das kleine Programm:
feigenbaum.pl |
---|
#!/usr/bin/perl -w ################################################# ########### Erstellung eines Feigenbaum-Diagramms ########### Letzte Änderung: 02.08.2006 ################################################# use POSIX qw /floor ceil/; use Math::Trig; my $xanfangswert=0.5; my $xi=$xanfangswert; my $skalierung=90; my $j=200; my $rstart=3.7; my $rstop=3.99; my $schrittanzahl=2000; my $ymin=0.2; my $ymax=0.6; printf("skalierung %g \n", $skalierung); printf("achsenschnitt x=%g y=%g \n", $rstart,$ymin); printf("xachse layer=10 bereich=%g,4,", $rstart); printf("0.2 skala=normal text=\"\$r\$\"\n"); printf("yachse layer=10 bereich="); printf("%g,%g,0.2 skala=normal text=\"\$y\$\"\n", $ymin,$ymax); for ($schritt=0; $schritt<$schrittanzahl; $schritt++) { $r=$rstart+($rstop-$rstart)* ($schritt/($schrittanzahl-1)); $xi=$xanfangswert; for ($i=1;$i<=$j;$i++) { $xi=$r*($xi-$xi*$xi); } my $erster=$xi; my $ende=1; do { $xi=$r*($xi-$xi*$xi); $ende++; if (($xi<$ymax) && ($xi>$ymin)) { printf("plotxypunkt wert="); printf("%g,%g\n", $r*$skalierung,$xi*$skalierung); } } while ((abs(($xi-$erster)/$xi)>=0.0001) && ($ende<($schrittanzahl/10))); } |
Die Ergebnisse sehen wie folgt aus:
Letzte Änderung: 07.07.2015: 21:33:21 von X. Rendtel
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
Beruht auf einem Inhalt unter www.rendtel.de.