ENSAM-MEKNES 3EME ANNEE
TP N◦ 1 RESOLUTION NUMERIQUE
DES EDO 2022-2023
TP N◦ 1 Résolution numérique des EDO
Schémas d’Euler et ordre
Exercice 1 Euler explicite
On cherche à mettre en œuvre la méthode d’Euler explicite pour la résolution numérique du
problème de Cauchy (
y 0 (t) = f (t, y(t)), t ∈ [0, T ]
y(0) = y0 .
Elle consiste, pour un pas h donné, à construire une suite d’approximations (yn ) de la solution
y aux temps tn = nh, par la formule
yn+1 = yn + hf (tn , yn ).
Par la suite, on utilise l’exemple modèle y 0 = t − ty avec la condition initiale y(0) = 2. La
−t2
solution exacte de cet exemple est donnée par y(t) = 1 + e 2 .
A la fin de cette série de TP vous trouvez le programme principal, le programme du schéma
d’Euler explicite et le programme de la fonction f . (Voir au dos de la feuille)
1. Tester le programme et interpréter la figure affichée
2. Programmer la solution exacte, puis calculer l’erreur d’approximation;
3. Tracer les deux solutions sur la même figure;
4. Effectuer des simulations pour différentes valeurs du pas h (h = T /N avec N = 10 : 10 :
1000);
5. Tracer la courbe du log des erreurs d’approximation en fonction du log des pas h;
6. Quel est l’ordre obtenue numériquement du schéma d’Euler explicite.
L’ordre numérique est la pente de la droite de la régression linéaire des points.
Exercice 2 Euler point milieu
On utilise ici l’exemple modèle précédent y 0 (t) = t − ty(t), y(0) = 2. La solution exacte est
−t2
donnée par y(t) = 1 + e 2 .
Le schéma d’Euler point milieu consiste à construire une suite d’approximations (yn ) de la
solution y de la façon suivante :
yn+1/2 = yn + h2 f (tn , yn )
yn+1 = yn + hf (tn + h2 , yn+1/2 ).
1. Ecrire une fonction "EulerPointMilieu" qui permet de calculer la solution approchée yn
par la méthode d’Euler point milieu.
2. Tracer les deux solutions approchées (Euler explicite et point milieu) et la solution exacte
sur la même figure
3. Déterminer numériquement l’ordre de la méthode d’Euler point milieu.
1
ENSAM-MEKNES 3EME ANNEE
TP N◦ 1 RESOLUTION NUMERIQUE
DES EDO 2022-2023
4. Programmer le schéma semi-implicite et le schéma de Heun.
5. Programmer le schéma d’Euler implicite.
________________________________
# Programme principal
import numpy as np
import [Link] as plt
T=2.
t0=0
u0=2.
N=10
h=T/N
t,u=SchemaExp(fonct,u0,t0,T,N)
# ue = solext(t) # doit etre programme
# er=[Link]((ue-u),ord=[Link])
[Link](t,u,color=’k’,ls=’--’,label="solution approchée")
# [Link](t,ue,color=’b’,ls=’:’,label="solution exacte")
[Link](’time’)
[Link](’solution u’)
[Link](’Solution approchee par Euler explicite’)
[Link]()
[Link]()
________________________________
________________________________
#Schema Euler Explicite : fonction "SchemaExp"
#
def SchemaExp(f,u0,t0,T,N):
h=T/N
t=[Link](t0,T,N+1)
u=[Link](N+1)
u[0]=u0
for i in range(N):
u[i+1]=u[i]+h*f(t[i],u[i])
return t,u
______________________
________________________________
#programme de la fonction f
#
def fonct(t,u):
return t-t*u
________________________________
________________________________
# Calcul de l’ordre numerique
# lh = liste des pas
# ler : liste des erreurs correspondantes à lh
print([Link](lh,ler,1))
________________________________