8 - 1 I.N.S.S.E.T. – Université de Picardie
Licence Maths et SPI – 2ème année
Programmation avec Matlab M. Marcoux
TP 8
Equations différentielles
1. Introduction
L’objectif de ce TP est de résoudre numériquement une équation différentielle.
Nous nous limiterons ici au cas des équations différentielles linéaires à coefficients constants du premier ordre.
Les points suivants seront abordés :
Ø Scripts fonction. Paramètres d’entrée et de sortie Ø Boucle for
2. Rappels mathématiques et préparation
Ø Allez dans le répertoire correspondant à votre nom : c:\tpmatlab\votrenom\
Ø Créez un répertoire TP8 et allez dans celui-ci.
a) Premier ordre
On s’intéresse au cas du circuit R-L alimenté par une tension continue Ve
R i
L
V
eV
s8 - 2 On rappelle que dans ce cas l’application de la loi d’Ohm donne l’équation différentielle reliant le courant i(t) et la tension Ve suivante :
Ve
i dt R
i
Ld + =
Ø Mettez cette équation sous la forme f(t,i) dt
i d =
Ø Déterminez la solution générale de cette équation en fonction d’une constante d’intégration k
Ø Donnez la solution exacte du problème en considérant comme condition initiale 0
) 0 (t = = i
Les valeurs numériques sont les suivantes : R=40Ω, L=3H et Ve =2V
Ø Réalisez un script intitulé "solexacte.m" traçant la courbe commentée de la solution exacte pour le circuit RL entre l’instant t=0 et l’instant final (durée) indiqué par l’utilisateur
Tentons maintenant d’obtenir numériquement la solution de ces équations.
Le but sera en fait d’obtenir le tracé de la solution de l’équation différentielle, sans en connaître à priori sa forme analytique.
b) Méthode d’Euler
Soit à résoudre l’équation différentielle suivante :
=
=
= ) 0
0 (
) , (
y t
y
y t dt f dy
(1)
En supposant y(t) connue à l’instant t, le développement en série de Taylor de y(t+∆t) au voisinage de t donne :
! ...
4 ) (
! 3
) (
! 2
) ) (
( )
( 4
4 4 3
3 3 2
2
2 + ∆ + ∆ +
+ ∆
∆ +
=
∆
+ dt
y d t dt
y d t dt
y d t dt
y td t y t t y
8 - 3 A l’ordre 1, on obtient :
) , ( )
( )
( )
( y t t f y t
dt y td t y t t
y +∆ = +∆ = +∆
Pour ∆t constant, on a :
) ,
1 i ( i i
i y t f y t
y+ = +∆ (2)
y étant connue à t=0, la fonction peut être déterminée à tout autre instant ultérieur.
En répétant itérativement ce calcul, on abouti à un tracé de la solution de l’équation de départ (1).
3. Manipulation
a) Equation du premier ordre – Méthode d’Euler
Ø Ecrire un script fonction "f.m" qui code la fonction f(t,i) de la partie 2-a de la préparation
Ø Ecrivez un script "Euler1.m" qui code la méthode d’Euler permettant de résoudre une équation différentielle (1) à l’aide de la relation (2)
Conseils :
• Paramètres d’entrée : le pas de calcul ∆t, et la durée du calcul T
• Paramètres de sortie : les valeurs de y (ordonnée) et t (abscisse)
• L’évaluation se fera sur un certain intervalle pour la variable t (limite inférieure en 0)
• Utilisez une boucle for pour l’évaluation de la relation (2). Il s’agira d’obtenir un vecteur pour y.
• A l’issue du calcul, faites le tracé de la fonction y(t) et enregistrez le.
Ø Testez le script, et commentez la courbe obtenue. Choisir judicieusement les valeurs (pas et durée du calcul)
8 - 4
b) Erreur
Ø Faire un script "erreur.m" traçant sur un même graphique la solution exacte et la solution approchée obtenue par la méthode d’Euler précédente et traçant sur une autre courbe l’erreur (écart entre ces 2 solutions)
Ø Regardez l’erreur obtenue pour différents pas d’intégration. Commentez.
c) Application
Ø Ecrivez un script "Euler2.m" effectuant le tracé de la réponse du circuit R-L en régime sinusoïdal forcé : le signal d’entrée étant :
) 2 sin(
)
(t E f t
Ve = π avec E=2V et f =100Hz Ø Commentez
d) Fonctions intégrées
L’objectif de ces fonctions est de résoudre graphiquement une équation différentielle.
Ø Recherchez l’aide de la fonction ode23
Sa syntaxe est : [t,y]=ode23('fun',[ab],y0)
On obtient ainsi deux vecteurs y et t donnant la solution de l’équation différentielle contenue dans le script "fun.m", sur l’intervalle [a,b], avec comme condition initiale y0.
Ø Réalisez un script "finteg.m" utilisant la fonction ode23 pour obtenir le tracé de la solution de l’équation de la question 2-a et celle de la question 2-c
Ø Réalisez un script "compare.m" effectuant la comparaison des résultats obtenus par cette fonction intégrée, par la méthode d’Euler et avec la solution exacte
Ø Commentez