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.
>
|
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);
|

|