function suites=araignee(f,U0,n)
//     Calcule des suites de n iteres de la fonction f. Les
//     valeurs initiales sont donnees dans le vecteur ligne U0.
//     La fonction represente les toiles d'araignees de ces suites. 
//
nbs = size(U0,"*");            // nombre de suites
U = U0; suites=U;              // initialisation
for i=1:n,
   U = f(U);                   // iteration
   suites = [suites;U]         // ajout d'un terme         
end;
                               // calcul d'echelles
xmin = min(suites); xmax = max(suites);
x = linspace(xmin,xmax,100); y=f(x);
ymin = min(y); ymax = max(y);
                               // cadre graphique
plotframe([xmin,ymin,xmax,ymax],[0,10,0,10],[%f,%f],["","x","f(x)"]);
plot2d(x,y,1,"000");           // representation de la fonction
plot2d(x,x,1,"000");           // premiere bissectrice
                               // formatage des suites
dble = suites.*.[1;1];         // valeurs dupliquees
arx = dble([1:2*n+1],:);       // abscisses
ary = dble([3:2*n+2],:);       // ordonnees
ary = [zeros(U0);ary];
                               // affichage
plot2d(arx,ary,2*ones(U0),"000");

function suites=araignee_verhulst(r,U0,n)
//     Calcule des suites de n iteres de la fonction f(x) = ax(1-x).
//     Les valeurs initiales sont donnees dans le vecteur ligne U0.
//     La fonction represente les toiles d'araignees de ces suites. 
//
deff("y=f(x)","y=r.*x.*(1-x)");
nbs = size(U0,"*");            // nombre de suites
U = U0; suites=U;              // initialisation
for i=1:n,
   U = f(U);                   // iteration
   suites = [suites;U]         // ajout d'un terme         
end;
                               // calcul d'echelles
xmin = 0; xmax = 1;
x = linspace(xmin,xmax,100); y=f(x);
ymin = 0; ymax = 1;
                               // cadre graphique
plotframe([xmin,ymin,xmax,ymax],[0,10,0,10],[%f,%f],["","x","f(x)"]);
plot2d(x,y,1,"000");           // representation de la fonction
plot2d(x,x,1,"000");           // premiere bissectrice
                               // formatage des suites
dble = suites.*.[1;1];         // valeurs dupliquees
arx = dble([1:2*n+1],:);       // abscisses
ary = dble([3:2*n+2],:);       // ordonnees
ary = [zeros(U0);ary];
                               // affichage
plot2d(arx,ary,2*ones(U0),"000");



