Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

maple pour méthode euler

Posté par
lyly65412
24-11-08 à 20:48

bonjour je suis débutante en maple et j'aurai voulu savoir quel était le problème de ce programme de la méthode d'euler car le graph n'apparait pas


eul:proc(F,a,b,y0,n)
h:=(b-a)/n;
t[0]:=a;
y[0]:=y0;
P:=[t[0],y[0]];
for i from 1 to n
             do y[i]:=y(t)[i-1]+h*F([i-1],y[i-1]);
                      t[i]:=a+i*h;
                       P: P(t[i],y[i]);
od;
plot([P]);        
end;


ensuite pour l'utiliser je fais
eul(t,y),y,1,1,1,10); par exemple et il me recopie cette ligne
merci de votre aide

édit Océane : forum modifié

Posté par
perroquet
re : maple pour méthode euler 24-11-08 à 20:59

Bonjour, lyly65412


Citation :

eul:proc(F,a,b,y0,n)


Il faut écrire:
eul:=proc(F,a,b,y0,n);
(ne pas oublier le signe  = )

Citation :

P: P(t:[i],y[i]);


Il faut écrire
P:=[op(P),[t[i],y[i]];

Il y a sans doute d'autres erreurs ...

Posté par
gui_tou
re : maple pour méthode euler 24-11-08 à 21:02

Bonsoir perroquet et lyly

Citation :
eul(t,y),y,1,1,1,10);


bizarre, eul n'a que 5 arguments

Posté par
lyly65412
re : maple pour méthode euler 24-11-08 à 21:07

en fait c le prof qui a donné les 5 premiéres lignes nous on doit faire la boule for

merci de votre aide ça fait plaisir

Posté par
lyly65412
re : maple pour méthode euler 24-11-08 à 21:09

quand je le test maintenant il met
Error, (in eul) eul uses a 3rd argument, b, which is missing

Posté par
gui_tou
re : maple pour méthode euler 24-11-08 à 21:11

Citation :
> restart;with(plots)igits:=30:

> a:=-1:b:=1:n:=10:x[0]:=-1:y[0]:=evalf(exp(-1)):L:=[]:
> for k from 0 to n do
> x[k+1]:=evalf(x[k]+(b-a)/n):
> y[k+1]:=evalf(y[k]*(x[k+1]-x[k])+y[k]):
> L:=[op(L),[x[k],y[k]]]:
> od:
> L:
> Cl:=plot(L):Cf:=plot(exp(x),x=-1..1,color=blue):
> plots[display]({Cl,Cf});


exemple de truc qui marche

Posté par
lyly65412
re : maple pour méthode euler 24-11-08 à 21:27


en fait c'est un dm donc il faut reprendre ce qu'il nous a donné les 5 premiéres lignes
merci

Posté par
perroquet
re : maple pour méthode euler 24-11-08 à 21:28

Bonsoir, gui_tou

Je pense que lyly64512 préfère utiliser la syntaxe de son professeur.
Voici donc un programme qui fonctionne (en Maple 9):

eul:=proc(F,a,b,y0,n);
h:=(b-a)/n;
t[0]:=a;
y[0]:=y0;
P:=[[t[0],y[0]]];
for i to n do y[i]:=y[i-1]+h*F(t[i-1],y[i-1]);
t[i]:=a+i*h;
P:=[op(P),[t[i],y[i]]];od;
plot(P);
end;

F:=(t,y)->y;
eul(F,0,1,1,10);

Cela tracera la solution approchée de l'équation différentielle y'=y par la méthode d'Euler avec 10 points.

Posté par
lyly65412
re : maple pour méthode euler 24-11-08 à 21:32

merci bcp perroquet c'est trés sympa je l'ai testé il marche impeccable je vé pouvoir continuer le dm

merci encore

Posté par
lyly65412
re : maple pour méthode euler 24-11-08 à 21:41

juste une question à quoi sert le "op"


et en fait ou doit on changer la fonction

Posté par
perroquet
re : maple pour méthode euler 24-11-08 à 21:56

Le "op" sert à enlever  les crochets [  ], on les rajoute ensuite. On aurait pu s'en passer en écrivant:

P:=[t[0],y[0]];
for i to n do y[i]:=y[i-1]+h*F(t[i-1],y[i-1]);
t[i]:=a+i*h;
P:=P,[t[i],y[i]];od;
plot([P]);
end;

(je n'ai pas testé la modification ... et je ne la conseille pas ou alors, il est préférable de sauvegarder le vieux programme avant de créer le nouveau)


La fonction F est introduite à la ligne:

F:=(t,y)->y;
(ici, on a   F(t,y)=y )

Donc, pour changer de fonction F, c'est en rajoutant une ligne de ce type avant d'appeler la procédure  eul



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !