Suites récurrentes

Bonjour,
Une question toute simple: quel logiciel utiliser pour représenter les premiers termes d'une suite récurrente u_{n+1}=f(u_n) et avoir un beau graphique à montrer aux éudiants?
Je voudrais bien sur partir de u_0 puis utiliser les projections orthogonales sur C_f et y=x.
Je sais que ça doit programmable en Maple, mais comme je suis un peu rouillé, je voudrais un truc tout prêt si cela est existe?

Merci,

PS: J'ai PocketCAS sur Ipad qui donne de jolis graphiques, mais je n'ai rien trouvé pour les suites récurrents, et pas de réponse du support en ligne...

Réponses

  • Salut,

    Voici une procédure pour Maple V.4 :
    with(plots):
    srec:=proc(f,a,nb,x1,x2,y1,y2)
    p1:=plot([f(x),x],x=x1..x2,y=y1..y2,color=[blue,green]);
    u:=a;l:=[u,0];
    for i from 1 to nb do v:=evalf(f(u));l:=l,[u,v],[v,v];u:=v od;
    p2:=plot([l],x=x1..x2,y=y1..y2,color=red);
    display(p1,p2);
    end;
    

    f est la fonction, a est le premier terme de la suite, nb le nombre de termes à représenter, x1, x2, y1 et y2 les valeurs minimales et maximales sur les axes.

    Exemples:
    srec(x->ln(1+x),2,10,0,2,0,2);
    srec(x->1-x^2,0.5,20,-1,1,-1,1);
    srec(x->2-x^2,0.5,200,-2,2,-2,2);
    
  • Merci, je vais essayer.
  • Bonjour,
    La procédure marche très bien mais j'ai tout de même une petite question.
    Avec Maple 13 sous Linux j'ai un message qui me dit "attention, les variables seront locales"
    J'ai essayé avec Xcas (une version libre de Maple) et j'ai eu le message "attention les variables sont globales" et le sur le dessin il n'y avait pas les deux courbes mais pas les segments de droite. Savez-vous pourquoi?
    Merci,
  • "Savez-vous pourquoi? "

    Oui, pour maple, les variables qui sont utilisées dans la fonction (a, p1, i...) sont locales, c'est-à-dire qu'elles sont créées au moment de la procédure, utilisées, puis effacées à la fin.
    Pour XCas, les variables sont créées une fois pour toute, et continuent d'exister (et d'avoir une valeur) après utilisation de la procédure.

    Pour éviter ce genre d'avertissement, tu peux spécifier toi-même ce qui est local et ce qui est global :
    srec:=proc(f,a,nb,x1,x2,y1,y2)
            local p1,u,l,i,p2:
            p1:=plot([f(x),x],x=x1..x2,y=y1..y2,color=[blue,green]);
            u:=a;l:=[u,0];
            for i from 1 to nb do 
                    v:=evalf(f(u));l:=l,[u,v],[v,v];u:=v:
            end do:
            p2:=plot([l],x=x1..x2,y=y1..y2,color=red);
            display(p1,p2);
    end proc;
    
  • Avec Maple, toutes les variables non déclarées d'une procédure sont considérées comme locales. Manifestement avec Xcas c'est le contraire.

    Je viens télécharger Xcas et de tester la procédure : la figure attendue s'affiche bien mais dans une autre fenêtre.

    Sinon avec Xcas, pour le tracé des suites récurrentes, il y a l'instruction plotseq : http://www-fourier.ujf-grenoble.fr/~parisse/giac/doc/en/casexo/node196.html.
  • Un lien pour dessiner des suites récurrentes en TikZ, parce que c'est plus joli (et on peut les animer) : animation suites récurrentes

    Cordialement,

    Ritchie
  • Je déterre ce sujet et je propose un code tikz qui permet de programmer soi-même les itérations. Il nécessite la librairie math et probablement calc. J'utilise le paquet tkz-fct pour le tracé du repère et de la représentation graphique de ma fonction $f: x \mapsto \sqrt{1+x}$.
    \begin{tikzpicture}[scale=3]
    \tkzInit[xmin=-1,xmax=3,ymax=2]\tkzDrawXY\tkzLabelXY
    \tkzFct[ color=red]{sqrt(\x+1)}
    \tkzFct[samples=2,color=black]{x}
    \node[above] at (2,2) {$y=x$};
    \node[above right,color=red] at (3,2) {$y=f(x)$};
    
    \tikzmath{
    function f(\u) {%
    	return sqrt(1+\u);
    	};
    real \u0, \u1, \u2, \u3, \u4;
    \u0=-.5;
    \u1=f(\u0);
    \u2=f(\u1);
    \u3=f(\u2);
    \u4=f(\u3);
    }
    \newcount\j
    \foreach \i in {1,2,3}{%
    	\pgfmathsetcount{\j}{\i+1}
    	\draw[dashed,line width=.2pt] (\u\i,0) node[below] {$u_\i$} -- (\u\i,{f(\u\i)}) -- (0,{f(\u\i)}) node[left] {$u_{\the\j}$};
    }
    
    \draw[color=blue,thick] (\u0,0) -- (\u0,\u1) node[above left] {$M_0$} -- (\u1,\u1) -- (\u1,\u2) node[above left] {$M_1$} -- (\u2,\u2) -- (\u2,\u3) node[above left] {$M_2$} -- (\u3,\u3) -- (\u3,\u4) node[above left] {$M_3$} -- (\u4,\u4);
    \end{tikzpicture}
    

    Voilà, enjoy!

    Edit : Je me suis rendu compte que l'on pouvait optimiser le code pour le tracé du dernier \draw, mais j'y suis revenu plusieurs fois avant d'obtenir ce résultat. L'intérêt était de présenter la fonction \tikzmath qui permet de programmer ses propres fonctions pour éviter un calcul fastidieux d'itérées.33803
  • Salut,

    C'est très sympa de sortir un code Latex pour ça.
    S'il te plaît, précise comment obtenir les librairies math et calc.
    Ce ne sont pas des package n'est-ce pas ?

    @+
    Fred
Connectez-vous ou Inscrivez-vous pour répondre.