Fichier feigenbaum.mp (figure 2) — Modifié le 23 Juin 2008 à 11 h 01

feigenbaum.mp (figure 2)
Source

prologues:=2;
verbatimtex
etex

 %%%%%%%%%%%%%%%%%%%%%%%%%%


beginfig(1)

    numeric rmin, rmax, r, dr, n, ux, uy;
    rmin := 2.9; rmax := 3.9;
    r := rmin; n := 300; %175
    dr := (rmax - rmin)/n;
    ux := 8cm; uy := 8cm;
    for i = 1 upto (n/2):
        x := 0.5; % our starting point
        for j=1 upto 90: % initial iterations
            x := r*x*(1-x);
        endfor
        for j=1 upto 20: % the next 20 iterations
            x := r*x*(1-x);
            draw (r*ux,x*uy) withpen pencircle scaled .3pt;
        endfor
        r := r+dr;
    endfor;

    for i = ((n/2) +1) upto n:
        x := 0.5; % our starting point
        for j=1 upto 80: % initial iterations
            x := r*x*(1-x);
        endfor
        for j=1 upto 300: % the next 300 iterations
            x := r*x*(1-x);
            draw (r*ux,x*uy) withpen pencircle scaled .2pt;
        endfor
        r := r+dr;
    endfor;
    % draw axes and labels
    draw (rmin*ux,0) -- (rmax*ux,0);
    draw (rmin*ux,0) -- (rmin*ux,uy);
    labeloffset := 0.25cm;
    label.bot(decimal(rmin), (rmin*ux,0));
    label.bot(decimal((rmin+rmax)/2), ((rmin+rmax)/2*ux,0));
    label.bot(decimal(rmax), (rmax*ux,0));
    label.lft(decimal(0), (rmin*ux,0));
    label.lft(decimal(0.5), (rmin*ux,0.5*uy));
    label.lft(decimal(1), (rmin*ux,uy));
    label.bot(btex $r$ etex, ((rmax-0.2)*ux,0));
    label.lft(btex orbit etex rotated 90, (rmin*ux,0.75*uy));


endfig;


beginfig(2);

  numeric rmin, rmax, r, dr, n, ux, uy;
 rmin := 3.5; rmax := 3.95;
 r := rmin; n := 200; %175
 dr := (rmax - rmin)/n;
 ux := 8cm; uy := 8cm;
 for i = 1 upto n:
   x := 0.5; % our starting point
   for j=1 upto 50: % initial iterations
     x := r*x*(1-x);
   endfor
     for j=1 upto 250: % the next 300 iterations
         x := r*x*(1-x);
         draw (r*ux,x*uy) withpen pencircle scaled .3pt;
     endfor
     r := r+dr;
   endfor;


 % draw axes and labels
 draw (rmin*ux,0) -- (rmax*ux,0);
 draw (rmin*ux,0) -- (rmin*ux,uy);
 labeloffset := 0.25cm;
 label.bot(decimal(rmin), (rmin*ux,0));
 label.bot(decimal((rmin+rmax)/2), ((rmin+rmax)/2*ux,0));
 label.bot(decimal(rmax), (rmax*ux,0));
 label.lft(decimal(0), (rmin*ux,0));
 label.lft(decimal(0.5), (rmin*ux,0.5*uy));
 label.lft(decimal(1), (rmin*ux,uy));
 label.bot(btex $r$ etex, ((rmax-0.2)*ux,0));
 label.lft(btex orbit etex rotated 90, (rmin*ux,0.75*uy));


 endfig;

 
beginfig(3);

   numeric rmin, rmax, r, dr, n, ux, uy;
 rmin := 3.8; rmax := 3.99;
 r := rmin; n := 180; %175
 dr := (rmax - rmin)/n;
 ux := 8cm; uy := 8cm;
 for i = 1 upto n:
   x := 0.5; % our starting point
   for j=1 upto 50: % initial iterations
     x := r*x*(1-x);
   endfor
     for j=1 upto 300: % the next 300 iterations
         x := r*x*(1-x);
         draw (r*ux,x*uy) withpen pencircle scaled .2pt;
     endfor
     r := r+dr;
   endfor;


 % draw axes and labels
 draw (rmin*ux,0) -- (rmax*ux,0);
 draw (rmin*ux,0) -- (rmin*ux,uy);
 labeloffset := 0.25cm;
 label.bot(decimal(rmin), (rmin*ux,0));
 %label.bot(decimal((rmin+rmax)/2), ((rmin+rmax)/2*ux,0));
 label.bot(decimal(rmax), (rmax*ux,0));
 label.lft(decimal(0), (rmin*ux,0));
 label.lft(decimal(0.5), (rmin*ux,0.5*uy));
 label.lft(decimal(1), (rmin*ux,uy));
 label.bot(btex $r$ etex, ((rmax-0.2)*ux,0));
 label.lft(btex orbit etex rotated 90, (rmin*ux,0.75*uy));


 endfig;


beginfig(4);

  numeric rmin, rmax, r, dr, n, ux, uy;
rmin :=0; rmax := 3.585;
r := rmin; n := 1000; %175
dr := (rmax - rmin)/n;
ux := 8cm; uy := 8cm;
for i = 1 upto 950:
  x := 0.5; % our starting point
  for j=1 upto 50: % initial iterations
    x := r*x*(1-x);
  endfor
    for j=1 upto 20: % the next 100 iterations
        x := r*x*(1-x);
        draw (r*ux,x*uy) withpen pencircle scaled .5pt;
    endfor
    r := r+dr;
  endfor;
  for i = 951 upto n:
  x := 0.5; % our starting point
  for j=1 upto 50: % initial iterations
    x := r*x*(1-x);
  endfor
    for j=1 upto 200: % the next 100 iterations
        x := r*x*(1-x);
        draw (r*ux,x*uy) withpen pencircle scaled .3pt;
    endfor
    r := r+dr;
  endfor;


% draw axes and labels
draw (rmin*ux,0) -- (rmax*ux,0);
draw (rmin*ux,0) -- (rmin*ux,uy);
labeloffset := 0.25cm;
label.bot(decimal(rmin), (rmin*ux,0));
label.bot(decimal((rmin+rmax)/2), ((rmin+rmax)/2*ux,0));
label.bot(decimal(rmax), (rmax*ux,0));
label.lft(decimal(0), (rmin*ux,0));
label.lft(decimal(0.5), (rmin*ux,0.5*uy));
label.lft(decimal(1), (rmin*ux,uy));
label.bot(btex $r$ etex, ((rmax-0.2)*ux,0));
label.lft(btex orbit etex rotated 90, (rmin*ux,0.75*uy));


endfig;

 end