0% ont trouvé ce document utile (0 vote)
356 vues2 pages

TP Edo 1

Ce document présente un TP sur la résolution numérique des équations différentielles ordinaires par les schémas d'Euler explicite et point milieu. Le document détaille les étapes pour implémenter ces schémas sur un exemple et déterminer leur ordre numérique.

Transféré par

Kawtar Addal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
356 vues2 pages

TP Edo 1

Ce document présente un TP sur la résolution numérique des équations différentielles ordinaires par les schémas d'Euler explicite et point milieu. Le document détaille les étapes pour implémenter ces schémas sur un exemple et déterminer leur ordre numérique.

Transféré par

Kawtar Addal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSAM-MEKNES 3EME ANNEE

TP N◦ 1 RESOLUTION NUMERIQUE
DES EDO 2020-2021

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 .
Les fichiers Matlab "prg_principal.m", "EulerExp.m" et "f1.m" contiennent respectivement 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 2020-2021

________________________________
%FICHIER : "prg_principal.m"
% Programme principal
clear all
close all
T=2.; % temps final
N=50; % Nombre de pas de temps
y0=2.; % solution initiale
[yap,tps]=EulerExp(@myfunc,y0,N,T);
plot(tps,yap)
xlabel(’temps t’);
ylabel(’y’);
title(’Solution approchee par Euler explicite’);
________________________________

________________________________
%FICHIER : "EulerExp.m"
%
function [liste_y,liste_t]=EulerExp(f,y0,N,T)
t=0; liste_t=[0];
y=y0; liste_y=[y0];
h=T/N;
for i=1:N
y=y+h*f(t,y);
t=t+h;
liste_t=[liste_t,t];
liste_y=[liste_y,y];
end
________________________________

________________________________
%FICHIER : "f1.m"
%
function yp = f1(t,y)
yp=t-t*y;
end
________________________________

________________________________
% Calcul de l’ordre numerique
% liste_h = [Link]
% liste_e : la liste des erreurs correspondantes à liste_h

polyfit(log(liste_h),log(liste_e),1)
________________________________

Vous aimerez peut-être aussi