Академический Документы
Профессиональный Документы
Культура Документы
Pol Exercice
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)
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 :
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
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 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
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.
On crit un chier .m appel equadiff dans lequel 1 On dnit le domaine dtude : tinitial = 0, tnal = 10 deltat=[0 10]
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]
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)
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.
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
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 )
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
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
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 (Equation diffrentielle du second ordre) d 2y dy +y =0 1 y2 dt 2 dt tant un paramtre scalaire.
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 (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
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.
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).
Reprsenter la solution obtenue laide de plot(t,y( :,1),-,t,y( :,2),- -) title(Solution de lquation de van der Pol, \mu = 1) ;
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.