Page 1 sur 1

Algorithme sur la méthode d'Euler

Publié : mar. oct. 04, 2011 5:11 pm
par bvin
Ça ne concerne pas les secondes bien sûr, mais les terminales. Comme il y a écrit "et plus generallement au lycee" (d'ailleurs, il y a une faute generallement -> généralement), je poste ici.

Pour mes élèves de TS, j'aimerai faire un petit algorithme pour illustrer la méthode d'Euler appliquée à la fonction telle que f'=f et f(0)=1.
Je teste donc comme ceci :
expo():={
local a,b,n;
saisir("nombre de pas souhaité",n);
a:=0;
b:=0;
afficher(a,b);
tantque (a<1) faire
segment(point([a,(1+1.0/n)^b]),point([a+1.0/n,(1+1.0/n)^(b+1)]));
a:=a+1.0/n;
b:=b+1;
afficher(a,b);
ftantque;
}
J'ai beau le tester comme un programme, sans fonction dans une session à part, avec différents pas ...Rien ne s'affiche.
Quelqu'un a-t-il une idée de l'erreur (grossière) ?
Merci d'avance

Re: Algorithme sur la méthode d'Euler

Publié : mar. oct. 04, 2011 6:27 pm
par alb
Je compile le code du niveau 1
Je tape expo() dans le niveau 2
J'ai bien l'affichage dans la zone intermédiaire en bleu
et aussi le polygone dans la fenêtre DispG
Pas de problème donc
Ah si un détail insignifiant, j'aurais mis un s à aimerai :-)
Un truc amusant, je teste dans une session vierge mais le titre d'un graphique d'une autre session est conservé dans DispG

Re: Algorithme sur la méthode d'Euler

Publié : mar. oct. 04, 2011 7:32 pm
par bvin
J'ai mis le s à aimerai :wink:
mais je n'ai toujours pas de polygone et pas de fenêtre DispG ...
Mon problème est là (aussi !)

Re: Algorithme sur la méthode d'Euler

Publié : mar. oct. 04, 2011 7:55 pm
par bvin
Bon ok ... Ça marche. Je ne voyais pas la fenêtre DispG ...
J'aimerai(s ?) dire que c'est l'interface de mon netbook (la fenêtre DispG se trouvait tout en dessous), mais j'ai bien peur que ce ne soit pas le seule raison ...
Merci !!

Re: Algorithme sur la méthode d'Euler

Publié : mar. oct. 04, 2011 8:18 pm
par alb
On peut aussi voir les choses comme ça:

Code : Tout sélectionner

Euler(h,a,b,y0):={
  local nuage,X,Y,N,k,P;
  nuage:=point(a,y0);
  X:=a;
  Y:=y0;
  N:=(b-a)/h;
  pour k de 1 jusque N faire
    X:=a+k*h;
    Y:=Y+h*g(a+(k-1)*h);
    P:=point(X,Y);
    nuage:=nuage,P;
  fpour
  retourne polygone_ouvert(nuage)
}
qu'on peut illustrer ainsi

Code : Tout sélectionner

g(x):=1/x;Euler(-0.1,1,0.2,0);Euler(0.1,1,3,0);plot(ln(x),x=0..3,couleur=rouge)
On peut adapter ce programme à la fonction exp:

Code : Tout sélectionner

EulerExp(h,a,b,y0):={
  local nuage,X,Y,N,k,P;
  nuage:=point(a,y0);
  X:=a;
  Y:=y0;
  N:=(b-a)/h;
  pour k de 1 jusque N faire
    X:=a+k*h;
    Y:=(1+h)*Y;
    P:=point(X,Y);
    nuage:=nuage,P;
  fpour
  retourne polygone_ouvert(nuage)
}

Re: Algorithme sur la méthode d'Euler

Publié : mer. oct. 05, 2011 1:07 pm
par bvin
Et merci pour les exemples qui me donnent des idées.