Vous êtes sur la page 1sur 36

Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der

Pol Exercice

Rsolution dquations diffrentielles avec MATLAB


Solveurs ode

Djelouah Hakim
Facult de Physique Universit des Sciences et de la Technologie Houari Boumediene Algrie

8 fvrier 2009

Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Introduction Mthode Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme Cas gnral Exemple 2 : Equation de van der Pol Exercice

Introduction
Fonctions ode23 et ode45
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Les principales fonctions de MATLAB qui permettent la rsolution des quations diffrentielles sont :

Introduction
Fonctions ode23 et ode45
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Les principales fonctions de MATLAB qui permettent la rsolution des quations diffrentielles sont : ode23 : Mthode de Runge-Kutta dite dordre 2,3

Introduction
Fonctions ode23 et ode45
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Les principales fonctions de MATLAB qui permettent la rsolution des quations diffrentielles sont : ode23 : Mthode de Runge-Kutta dite dordre 2,3 ode45 : Mthode de Runge-Kutta dite dordre 4,5 (la plus utilise)

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

Dnition Soit lquation diffrentielle du second ordre connue sous le nom de quation de loscillateur harmonique : d 2y 2 + 0 y =0 dt 2 Pour rsoudre cette quation laide des solveurs ode, il faut lexprimer sous une forme vectorielle, pour cela :

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Expression sous forme vectorielle


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

Cration de 2 vecteurs de dimension 2 correspondant lordre de lquation diffrentielle : vecteur y : solution y (1) = y dy y (2) = dt vecteur dydt dydt (1) = dy dt d 2y dydt (2) = 2 . dt

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Expression sous forme vectorielle


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

Cration de 2 vecteurs de dimension 2 correspondant lordre de lquation diffrentielle : vecteur y : solution y (1) = y dy y (2) = dt vecteur dydt dydt (1) =

Cas gnral Exemple 2 : Equation de van der Pol Exercice

dy dt d 2y dydt (2) = 2 . dt Transformation de lquation diffrentielle dordre 2 en un systme de deux quations diffrentielles du premier ordre : Equation diffrentielle d y 2 + 0 y =0 dt 2 2 d y 2 = 0 y dt 2
2

Forme vectorielle dydt (1) = y (2)


2 dydt (2) = 0 y (1)

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim

On crit un chier function correspondant ces deux lignes


Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

dydt (1) = y (2) 2 y (1) dydt (2) = 0 Ecriture du chier function : oscillateur.m function dydt=oscillateur(t,y) omega=1 % 0 = 1 par exemple dydt(1)=y(2) dydt(2)=-omega.^2*y(1) dydt=dydt % on convertit la ligne en colonne.

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10]

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25]

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)
t : vecteur contenant les instants auxquels la solution a t calcule.

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)
t : vecteur contenant les instants auxquels la solution a t calcule. y : matrice deux colonnes

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)
t : vecteur contenant les instants auxquels la solution a t calcule. y : matrice deux colonnes - la premire colonne y( :,1) contient y (t )

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)
t : vecteur contenant les instants auxquels la solution a t calcule. y : matrice deux colonnes - la premire colonne y( :,1) contient y (t ) - la seconde colonne y( :,2) contient la drive dy /dt

Cas gnral Exemple 2 : Equation de van der Pol Exercice

Exemple 1 : Equation de loscillateur harmonique


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode
Exemple 1 : Oscillateur harmonique Reformulation Fichier function Programme

On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10] 2 On dnit les conditions initiales : dy /dt (0) = 0 et y (0) = 0.25 yinit=[0 0.25] 3 On appelle ode45 [t,y]=ode45(@oscillateur,deltat,yinit)
t : vecteur contenant les instants auxquels la solution a t calcule. y : matrice deux colonnes - la premire colonne y( :,1) contient y (t ) - la seconde colonne y( :,2) contient la drive dy /dt
4

Cas gnral Exemple 2 : Equation de van der Pol Exercice

On fait la reprsentation graphique de la solution en fonction de t : plot(t,y)

Reformulation du problme
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reformuler le problme sous la forme dun systme dquations diffrentielles du premier ordre. Pour utiliser les solveurs ODE, on doit dabord rcrire les quations diffrentielles sous la forme dun systme quivalent dquations diffrentielles du premier ordre.

Reformulation du problme
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reformuler le problme sous la forme dun systme dquations diffrentielles du premier ordre. Pour utiliser les solveurs ODE, on doit dabord rcrire les quations diffrentielles sous la forme dun systme quivalent dquations diffrentielles du premier ordre. On peut crire une quation diffrentielle quelconque d ny =f dt n t, y, dy d 2 y d n1 y , 2 , ..., n1 dt dt dt

sous la forme dun systme dquation diffrentielles du premier ordre en faisant le changement de variable suivant : y1 = y , y2 = dy d 2y d (n1) y , y3 = 2 , ..., yn = (n1) dt dt dt

Reformulation
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reformuler le problme sous la forme dun systme dquations diffrentielles du premier ordre. Le rsultat est un systme de n quations diffrentielles du premier ordre quivalent : dy = y2 dt d 2y = y3 dt 2 ... n d y = f (t , y1 , y2 , ..., yn ) dt n

Reformulation
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reformuler le problme sous la forme dun systme dquations diffrentielles du premier ordre. Le rsultat est un systme de n quations diffrentielles du premier ordre quivalent : dy = y2 dt d 2y = y3 dt 2 ... n d y = f (t , y1 , y2 , ..., yn ) dt n Remarque : Noter les indices gauche et droite du signe = dky = yk +1 dt k

Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 1

Equation de van der Pol (Equation diffrentielle du second ordre) d 2y dy +y =0 1 y2 dt 2 dt tant un paramtre scalaire.

Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 2 1

Equation de van der Pol (Equation diffrentielle du second ordre) d 2y dy +y =0 1 y2 dt 2 dt tant un paramtre scalaire. Il faut crer le vecteur solution yi selon le schma suivant : y1 = y dy y2 = dt do : d 2y 2 = 1 y1 y2 y1 dt 2

Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 2 1

Equation de van der Pol (Equation diffrentielle du second ordre) d 2y dy +y =0 1 y2 dt 2 dt tant un paramtre scalaire. Il faut crer le vecteur solution yi selon le schma suivant : y1 = y dy y2 = dt do : d 2y 2 = 1 y1 y2 y1 dt 2 Ensuite faire le changement de variable suivant ; dydt1 = y2
2 dydt2 = 1 y1 y2 y1

Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Lquation de van der Pol du second ordre d 2y dy 1 y2 +y =0 dt dt est ainsi remplace par le systme dquations diffrentielles du premier ordre : dydt (1) = y (2) dydt (2) = 1 y (1)
2

y (2) y (1)

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE.

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :
dydt=nom_de_fonction(t,y)

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :
dydt=nom_de_fonction(t,y) La sortie de cette fonction dydt est un vecteur colonne qui reprsente la drive de y.

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 3

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :
dydt=nom_de_fonction(t,y) La sortie de cette fonction dydt est un vecteur colonne qui reprsente la drive de y.

Le code ci-dessous reprsente lquation de van der Pol, pour = 1, dnie par la fonction vdp1.

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 3

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :
dydt=nom_de_fonction(t,y) La sortie de cette fonction dydt est un vecteur colonne qui reprsente la drive de y.

Le code ci-dessous reprsente lquation de van der Pol, pour = 1, dnie par la fonction vdp1.
function dydt=vdp1(t,y) dydt(1)=y(2) ; dydt(2)=(1-y(1).^2)*y(2)-y(1) ; %on convertit la ligne en colonne dydt=dydt ;

Fichier function
Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 3

crire le chier function qui dnit lquation diffrentielle. 1 Aprs avoir obtenu le systme dquations diffrentielles du premier ordre, il faut traduire ce systme par un chier function qui sera appel par le solveur ODE. 2 Cette fonction doit tre obligatoirement sous la forme :
dydt=nom_de_fonction(t,y) La sortie de cette fonction dydt est un vecteur colonne qui reprsente la drive de y.

Le code ci-dessous reprsente lquation de van der Pol, pour = 1, dnie par la fonction vdp1.
function dydt=vdp1(t,y) dydt(1)=y(2) ; dydt(2)=(1-y(1).^2)*y(2)-y(1) ; %on convertit la ligne en colonne dydt=dydt ; Remarque : vdp1 doit recevoir les arguments t et y bien que t napparaisse pas explicitement dans vdp1.

Exemple 2. Etape 3 :Utiliser un solveur ode45


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice 2 1

Choisir le solveur utiliser aprs avoir dni lintervalle de calcul et les conditions initiales :
Solveur ode45 Intervalle dtude : [0 20] Conditions initiales :
y(1)=2 y(2)=0

Lancer la rsolution laide de la commande : [t,y]=ode45(@vdp1,[0 20], [2 ;0]) ; Le rsultat du calcul est contenu
dans le vecteur temps t dans la matrice y deux colonnes
y( :,1) contient y1 ( y) y( :,2) contient y2 ( dy /dt ). Chaque ligne i correspond la solution y(i), dy /dt (i ) linstant t(i).

Exemple 2 . Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reprsenter la solution obtenue laide de plot(t,y( :,1),-,t,y( :,2),- -)

Exemple 2 . Equation de van der Pol


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Reprsenter la solution obtenue laide de plot(t,y( :,1),-,t,y( :,2),- -) title(Solution de lquation de van der Pol, \mu = 1) ;

Exercice : Oscillateur harmonique amorti


Rsolution dquations diffrentielles avec MATLAB Djelouah Hakim Introduction Mthode Cas gnral Exemple 2 : Equation de van der Pol Exercice

Rsoudre lquation diffrentielle suivante : d 2y dy 2 + 0 y =0 + 2 dt 2 dt Pour : 0 = 1; = 0.1; 0 = 1; = 1; 0 = 1; = 2; et en considrant les conditions initiales suivantes : y (0) = 1 dy /dt (0) = 0 Faire un trac graphique de tous les cas.