Apprendre Maple Suite récurrente du type u[n+1]=f(u[n])
 
  Page d'accueilPage d'accueil   RechercherRechercher   Forum de discussionForum de discussion   ContactContact   SommaireSommaire 
  Cours MapleCours Maple   Travaux dirigésTravaux dirigés   Thèmes d'activitésThèmes d'activités   MapletsMaplets 
Ecran MapleEcran Maple  TéléchargementTéléchargement  BibliographieBibliographie  LiensLiens  

 

Page d'accueil   Maplets   << Page précédente   Page suivante >>




Suite récurrente du type:  u[n+1] = f ( u[n] )
© Alain Le Stang - "Apprendre Maple" - 2004

Sélectionner Edit/Execute/Worksheet ou cliquer le bouton !!! pour exécuter ce Maplet.

 

 

> restart:
> with(Maplets[Elements]):with(Maplets[Examples]):

 
> nomFichier:='nomFichier': nouvGraphe:=NULL:

 

Procédure graphe_suite:
Cette procédure donne pour résultat la représentation graphique des termes de la suite récurrente
de premier terme u0  et définie par : pour tout n entier naturel ,   u[n+1]  =f ( u[n] ) .
f
: fonction , u0 : premier terme, nbiter : nombre d'itérations , titre : Légende du graphique.
 

> graphe_suite:=proc(f,u0,nbiter,titre)
global nouvGraphe;
local a,S,k,mini,maxi,m1,m2;
 a:=evalf(u0);
 m1:=a:m2:=m1:
 S:=[a,0],[a,evalf(f(a))];
 for k to nbiter do
   a:=evalf(f(a));
   if a<m1 then m1:=a end if;
   if a>m2 then m2:=a end if;
   S:=S,[a,a],[a,f(a)];
 end do;
 S:=[S];     
 mini:=m1-(m2-m1)/10:
 maxi:=m2+(m2-m1)/10;
 nouvGraphe:=plots[display]([ plot({x,f(x)},x=mini..maxi,color=[black,blue]),
                  plot(S,x=mini..maxi,color=red)],scaling=constrained,title=titre);
end proc:



Procédure termes:

Cette procédure donne pour résultat la liste des premiers termes [ u[0], u[1], ... , u[nbiter] ] de la suite récurrente de premier terme u0 et définie par : pour tout n entier naturel ,   u[n+1]  =f ( u[n] ) .
f
: fonction , u0 : premier terme, nbiter : nombre d'itérations
 

> termes:=proc(f,u0,nbiter)
local a,k,S;
a:=evalf(u0):S:=a;
for k to nbiter do
 a:=evalf(f(a)):S:=S,a
end do;
[S]
end proc;

 

Procédure MontreTable:
Cette procédure lance le maplet d'exemples ShowTable permettant de visualiser la liste des valeurs des premiers termes  n , u[n] de la suite récurrente.
 

 

> MontreTable:=proc(fonc,var,u0,nbiter)
local k,ts;
 ts:=termes(unapply(fonc,var),u0,nbiter);
 Maplets:-Examples:-ShowTable(
  [["n=", "u[n]="], seq( [k,evalf(ts[k])], k = 1..nbiter )],
  'title' = "Premiers termes", 'height'=400)
end proc;

 

Procédures d'enregistrement du graphique sous format .gif :

> Enregistrer := proc()
global nomFichier,nouvGraphe;
if assigned( nomFichier ) then
  plotsetup( 'gif', 'plotoutput' = nomFichier );
  print( nouvGraphe );
  plotsetup( 'default' );
  nomFichier:='nomFichier'
else
  EnregSous();
end if;
end proc;

 
> EnregSous := proc()
global nomFichier;
local nnomFichier;
  try
    nnomFichier := Maplets:-Examples:-GetFile(
    'title' = "Enregistrer sous",
    'filefilter' = "gif",
    'approvecaption' = "Enregistrer"
     );
  catch:
    return;
  end try;
  if nnomFichier[-4..-1] = ".gif" then
    nomFichier := nnomFichier;
  else
    nomFichier := cat( nnomFichier, ".gif" );
  end if;
 Enregistrer();
end proc;
 

 

Procédure de réinitialisation des 2 variables globales :

> RAZ:=proc()
global nouvGraphe,nomFichier;
   nouvGraphe:=NULL;nomFichier:='nomFichier';
end proc;

 

Maplet:

> suiteRecMaplet := Maplet( Window( "Suite récurrente u[n+1]=f(u[n])",
   BoxColumn('vscroll'='as_needed',
   ["Fonction f: ", TextField['fonc'](),"de la variable: ", TextField['var'](3)],
   ["      Premier terme: ",TextField['u0']()],
   ["Nombre d'itérations: ",TextField['nbiter']()],
   [" Titre du graphique: ",TextField['titre']()],
   Plotter['PL1'](),
   [ Button['Rep']("Graphe",Evaluate( 'PL1'= 'graphe_suite(unapply(fonc,var),u0,nbiter,titre)')),
     Button("Premiers termes", Evaluate('function' = "MontreTable",Argument(fonc),Argument(var),
     Argument(u0),Argument(nbiter) ) ),
     Button("Effacer", Action(SetOption('fonc' = ""), SetOption('var' = ""), SetOption('u0' = ""),
   SetOption('nbiter'=""), SetOption('titre'=""), Evaluate('function' = "RAZ"), Evaluate( 'PL1' = 'plot(undefined,x=-10..10,axes=NONE)'      ))),
    Button("Aide", RunWindow('Aide')),
    Button("Enregistrer", Evaluate('function' = "Enregistrer") ),
    Button("Quitter", Shutdown())]
) ),
Window['Aide']('title' = "Description", 'layout' = 'Description', width=400, height=250),
Font['F1']('family'="Comic Sans MS", 'bold'='false', 'italic'='false', size=12),
BoxLayout['Description'](
 BoxColumn('border'=true, 'inset'=0, 'spacing'=4,
    BoxRow('inset'=0, 'spacing'=0,
       TextBox('wrapped'=true, 'width'=80, 'height'=15,  'font'='F1',
        'editable'='false', 'value'=
       "Ce maplet donne la représentation graphique des premiers termes de la suite récurrente de premier terme u0 et définie pour tout n entier naturel par:   u[n+1]=f(u[n]).\nPour cela, cliquer le bouton ""Graphe"" après avoir rempli les 5 différents champs:\nFonction, nom de la variable, premier terme, nombre d'itérations, titre.\n\nCe maplet permet également de visualiser les valeurs des premiers termes de la suite récurrente.\nPour cela, cliquer le bouton ""Premiers termes"".\n\nPour sauvegarder le graphique créé au format .gif, cliquer le bouton ""Enregistrer""."
       )
    ),
    BoxRow('inset'=0, 'spacing'=0,
       Button("Fermer", 'font'='F1', CloseWindow('Aide') )
    )
  )
)
):
Maplets[Display](suiteRecMaplet);

 



 

 

haut de cette page


©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.