next up previous contents index
suivant: Les quadriques monter: Les méthodes numériques pour précédent: La méthode du point   Table des matières   Index

La méthode de Heun

La méthode de Heun consiste à approcher, au voisinage de t0, la solution de l'équation différentielle y'(t) = f (t, y(t)),  y(t0) = y0 t0 $ \in$ [a;b], par une parallèle à la droite de pente 1/2*(f (t0, y0) + f (t0 + h, y0 + h*f (t0, y0))) c'est à dire, par une pente égale à la moyenne des pentes des tangentes :
- de la solution au point (t0, y0) (la pente de la tangente en ce point vaut f (t0, y0)) et
- de la solution obtenue par la méthode d'Euler au point d'abscisse t0 + h (point de coordonnées (t0 + h, y0 + h*f (t0, y0)) et la pente de la tangente en ce point vaut f (t0 + h, y0 + h*f (t0, y0))).
Donc, la méthode de Heun fait passer du point (t0, y0) au point (t1, y1) avec :
t1 = t0 + h et y1 = y0 + h/2*(f (t0, y0) + f (t0 + h, y0 + h*f (t0, y0))).
On remarquera que :
euler_f(f,t0,y0,h)=(t0+h,y0+h*f(t0,y0))
On va donc écrire la fonction :
heun_f(f,t0,y0,h)=
(t0+h,y0+h/2*(f(t0,y0)+f(t0+h,y0+h*f(t0,y0))))

qui réalise une seule étape de cette méthode et qui permet de passer d'un point d'abscisse t0 au point d'abscisse t0 + h, ces points étant situés sur le graphe de la solution approchée par cette méthode.
heun_f(f,t0,y0,h):={
local t1,y1;
t1:=t0+h;
y1:=y0+h/2*(f(t0,y0)+f(t0+h,y0+h*f(t0,y0)));
return (t1,y1);
}
Il reste à écrire une fonction qui renvoie la séquence des segments obtenus par cette méthode, pour avoir le dessin dans l'écran graphique obtenu comme réponse.
On peut écrit la même fonction que précédemment en remplacant simplement tous les appels à euler_f par heun_f ou encore utiliser la fonction trace_methode avec comme valeur de methode le fonction heun_f.
On valide les differentes fonctions :
euler_f, ptmilieu_f, heun_f et trace_methode.
On tape par exemple pour avoir le tracé de la solution sur [-1;1] de :
y' = y vérifiant y(0) = 1 par les 3 méthodes avec un pas de 0.1 :
f(t,y):=y trace_methode(euler_f,f,0,1,0.1,-1,1) et
trace_methode(ptmilieu_f,f,0,1,0.1,-1,1) ou
trace_methode(heun_f,f,0,1,0.1,-1,1) ou

next up previous contents index
suivant: Les quadriques monter: Les méthodes numériques pour précédent: La méthode du point   Table des matières   Index
Documentation de giac écrite par Renée De Graeve