



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Dans ce document, Mr Pernot explique comment résoudre numériquement des équations différentielles d'ordre 1 à l'aide des méthodes d'EULER, HEUN et RK4. Il détaille les principes de chacune de ces méthodes et offre des exemples pour les mettre en pratique. Les méthodes numériques sont utilisées lorsque la solution analytique d'une équation différentielle n'est pas disponible.
Typology: Essays (high school)
1 / 5
This page cannot be seen from the preview
Don't miss anything!




Définition de l’équation différentielle, relation entre y’ et y :
y’ = f(y(t) ,t) pour t [a,b] # on a une equ diff
y(a) = y 0 # et une C.I
Exemple :
1 y’+ y = et^ avec y dépend de t
y’ = -y + et y’ = f(y,t) où f(y,t ) = -y + et
2 y’+ ty^2 = sin(t)
y’ = -ty^2 + sin(t) y’ = f(y,t) où f(y,t ) = -ty^2 + sin(t)
Remarques :
Une équation différentielle est une relation entre une fonction, inconnue y de x qu'il s'agit de déterminer, et ses dérivées y ', y'' ... y ( n ). Une équation différentielle du premier ordre est une équation différentielle ne faisant intervenir que la dérivée première.
Résoudre une équation différentielle rev ient à trouver une fonction y(t) dont les déri vées sont solutions de l’équation.
{P} ad met une unique solution sous certaines hypothèses (système déterministe). Il n ’est pas toujours possible de trouver une expression analytique formule pour la solution de {P}. Donc, il faut parfois mettre en place des méthodes numéri ques pour les résoudre.
h >0 est le pas de discrétisation avec h=(b-a)/n où n est le no mbre de points de calcul
(plus n est grand plus on est précis…mais attention aux erreurs arrondis car flottants !)
y 0 est une C.I t 0 = a, on connait y(t 0 )=y(a) = y 0
Quel est le principe de la méthode d’EULER?
Idée EULER : sur [t 0 ,t 0 +h], on rempl ace la soluti on par sa tangente.
rq : - si on veut valeur entre 2 points on interpole
_- pour améliorer précision, on réduit le pas h
a=t 0 t 1 =t 0 +h t 2 =t 1 +h
y 0
t y(t) sol. de {P} exacte
y 1
y 2 val. appr
y(t 2 )
y(t 1 )
hf(y1,t1 )
Dans le TP, pour programmer cet algorith me, vous devrez créer 2 listes :
t: liste des ti, par défaut initialisée à 0, discrétisation de l'intervalle [a,b] y: liste des yi, par défaut init ialisée à 0, appro ximation de la solution de {P}
Dans le TP, on va voir d' autres méthodes de résolution numéri que. On va analyser et comparer leur co mportements en fonction de h. On va pouvoir observer l'évolution de l'erreur en fonction de h (qui dépend aussi performances de la machine !)
On défin it l'erreur par: E(h) = max y (ti) - yi avec y sol de {P} et y0,...,yn sol approchées
On dit que la méthode est d' ordre au mo ins p si E(h) A.hp
On va essayer d'observer l'ordre des méthodes et de les comparer ( EULER, HEUN, RK4 ) On co mprend que si l'ordre est grand, c'est bien, car augmente la précision.
3.1. Méthode de HEUN (ordre 2)
Avec Heun, j'intègre de tn à tn+1.
y'(t) dt = f(y(t),t) dt y(tn+1) - y(tn) = f(y(t ),t) dt
y(tn+1) = y(tn) + f(y(t),t) dt (1) # ressemble euler
On va approcher par la méthode des trapèzes
g(t) dt = h*g(tn)+g(tn+1)
donc (1) y (tn+1) = y(tn) + (h/2)(f(y (tn),tn) + f(y(tn+1),tn+1)
= y(tn) + (h/ 2)(f(y(tn),tn) + f(y(tn) + hf(y(tn),tn),tn+1)
Et on retrouve la formu le du TP:
yn+1 = yn + (h/2)(f(yn,tn) + f(yn + hf(yn,tn),tn+1) # on fait simplifié écriture dans python : y(tn) yn
tn (^) tn+
y(tn)
y(tn+1)
y=g(t)
3.2. Méthode de RK4 : Runge Kutta (ordre 4)
Avec Heun, on a remplacé les rectangles (fonction cte) par des trapèzes (polynôme 1er ordre ) , que puis je faire d'autre? Et b ien passer par un polynôme du 2nd degré...
Attention, avec un degré 2 il faut 3 coefficients (pt milieu ). Je cherche la parabolle qui passe par ces 3 points approche aire au mieu x.
On arrive à la formu le du TP:
yn+1 = yn + (h/6)(f(yn,tn) + 2f(n,tn + h/2) + 2f(n,tn + h/2) + f(n, tn+1))
tn (^) tn+
y(tn)
y(tn+1)
y=g(t)
tn + tn+
tn+1+