#!/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)));
}


