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 Bilder hinzugekommen.
Hier kommt nun zuerst das kleine Programm:
| feigenbaum.pl |
|---|
| 1 #!/usr/bin/perl -w 2 3 ################################################# 4 ########### Erstellung eines Feigenbaum-Diagramms 5 ########### Letzte Änderung: 02.08.2006 6 ################################################# 7 8 use POSIX qw /floor ceil/; 9 use Math::Trig; 10 11 my $xanfangswert=0.5; 12 my $xi=$xanfangswert; 13 my $skalierung=90; 14 my $j=200; 15 my $rstart=3.7; 16 my $rstop=3.99; 17 my $schrittanzahl=2000; 18 my $ymin=0.2; 19 my $ymax=0.6; 20 21 22 23 printf("skalierung %g \n", 24 $skalierung); 25 printf("achsenschnitt x=%g y=%g \n", 26 $rstart,$ymin); 27 28 printf("xachse layer=10 bereich=%g,4,", 29 $rstart); 30 printf("0.2 skala=normal text=\"\$r\$\"\n"); 31 32 printf("yachse layer=10 bereich="); 33 printf("%g,%g,0.2 skala=normal text=\"\$y\$\"\n", 34 $ymin,$ymax); 35 36 for ($schritt=0; $schritt<$schrittanzahl; $schritt++) { 37 $r=$rstart+($rstop-$rstart)* 38 ($schritt/($schrittanzahl-1)); 39 40 $xi=$xanfangswert; 41 for ($i=1;$i<=$j;$i++) { 42 $xi=$r*($xi-$xi*$xi); 43 44 } 45 my $erster=$xi; 46 my $ende=1; 47 48 do { 49 $xi=$r*($xi-$xi*$xi); 50 $ende++; 51 if (($xi<$ymax) && ($xi>$ymin)) { 52 printf("plotxypunkt wert="); 53 printf("%g,%g\n", 54 $r*$skalierung,$xi*$skalierung); } 55 } 56 while ((abs(($xi-$erster)/$xi)>=0.0001) && 57 ($ende<($schrittanzahl/10))); 58 } 59 |
Die Ergebnisse sehen wie folgt aus:
Letzte Änderung: 18.03.2010: 19:19:48 von X. Rendtel





