Vous êtes sur la page 1sur 4

TD : Résolution approchée d’une EDO

Exercice 1 : Extrait du CNC session 2015 Filières MP-PSI-TSI


On souhaite résoudre l’équation différentielle :
d 2y
dt2 = ay + b dy
dt Avec a=-3.0 et b=-1.0
La fonction odeint() du module scipy.integrate a pour syntaxe :
scipy.integrate.odeint (fonction f, valeur initiale en a, subdivision de [a, b]).
La fonction odeint() ne permet de résoudre que des équations d’ordre 1.
Q1. Expliquer comment on peut transformer l’équation (E) en une équation du premier
ordre.
Q2. Le principe d’utilisation de la fonction odeint() permet d’obtenir une estimation
numérique de la solution du problème de Cauchy :

Y 0 (t) = F (Y (t), t)







 Y (t0 ) = Y0
Écrire en Python une fonction F(z,t) qui prend en argument un vecteur colonne z composé de deux élé-
ments, la variable t et qui retourne un tableau (array du module numpy) composé également de deux élé-
ments. La librairie numpy est très riche en fonctionnalités (np.arrange(), np.linspace() , np.array(),
np.ones(), np.sin(), np.histogram(), np.concatenate(), ...)
Lors de l’implémentation de la fonction F(), préciser bien à quoi correspondent les différents paramètres
mis en oeuvre.
Q3. On souhaite avoir la représentation suivante de cette équation différentielle :

Pour la courbe représentée dans la ”Figure 1” le nombre d’échantillons générés est égal à 100.
Implémenter dans le langage Python, en utilisant la fonction odeint() citée précédemment, la formule
(E) générant le graphique précédent.
Attention vous devez pour les valeurs initiales qui vous manquent estimer leurs valeurs en observant la
courbe de cette figure.
La librairie matplotlib permet de tracer toutes sortes de graphiques notamment avec la sous librairie
matplotlib.pyplot.

Fouad NAFIS : fouadnafis@gmail.com 1/3 MP-PSI-TSI


- Solution -
Question 1

En posant Y=[y,y1] avec y1 dérivé premier de y par rapport à t dont Y1 derivé de Y sera le vecteur [y1,y2] avec
y2 dérivé seconde de y et y1’ dérivé première de y
prenant Y1=[y1,y2]=[[0,1],[a,b]]*[y,y1]=[[0,1],[a,b]]*Y=F(Y,t) qui est une equation différentielle de degré 1
Question 2
Code Python :
1 import numpy as np
2 from scipy.integrate import odeint
3 import matplotlib.pyplot as plt
4 def F(z,t): # z est le vecteur Y definit dans la question précédente et t la variable muette.
5 return np.array([z[1],-3*z[0]-z[1]])

Question 3
Code Python :
1 Lx=np.linspace(0,5,100)
2 Y0=[0.05,0.7]
3 LL=odeint(F,Y0,Lx)
4 Ly=LL[:,0]
5 plt.title("figure2")
6 plt.plot(Lx,Ly)
7 plt.show()

Fouad NAFIS : fouadnafis@gmail.com 2/3 MP-PSI-TSI


Année 2020-2021
Lycée Omar Ibn AlKhattab - Meknès 13. – Calcul Scientifique

Exercice 2 :
Q1. Résoudre l’équation différentielle de 2nd ordre suivante en utilisant la méthode d’Euler
sur l’intervalle [0, 5] :




x00 − 0.5(1.x2 )x0 + x = 0

















x0 (0) = 0.1









x(0) = 0




Q2. Tracer la courbe de cette solution

Exercice 3 :
Q1. Résoudre l’équation différentielle de 2nd ordre suivante en utilisant la méthode d’Euler
sur l’intervalle [0, 5] :




x00 − 0.5(1.x2 )x0 + x = 0

















x0 (0) = 0.1









x(0) = 0




Q2. Tracer la courbe de cette solution

Exercice 4 :
Q1. En utilisant la fonction odeint de scipy, donner la solution du système suivant :

Fouad NAFIS : fouadnafis@gmail.com 3/3 MP-PSI-TSI


Année 2020-2021
Lycée Omar Ibn AlKhattab - Meknès 13. – Calcul Scientifique






x0 = cos(t)y










y 0 = sin(t)x





Q2. Tracer la courbe de x et de y en fonction de t

Fouad NAFIS : fouadnafis@gmail.com 4/3 MP-PSI-TSI


Année 2020-2021

Vous aimerez peut-être aussi