Résolution numérique d'équations différentielles Python
Résolution numérique d'équations différentielles Python
1 Position du problème
Un projectile est lancé depuis l’origine du repère O avec la vitesse initiale v0 = 10 m.s-1, avec un angle
α par rapport à l’horizontale, dans un champ de pesanteur et dans le cas où les
frottements sont négligeables.
2
v0
La portée du tir est égale à xmax = sin( 2 ) 10,2 sin( 2 ) ; maximale pour α = π/4
g
L’ensemble des points accessibles par le projectile, pour une vitesse initiale v0 donnée, se situent sous
2
v0 g 2
une courbe appelée parabole de sûreté et d’équation y s ( x ) x
2 g 2v0 2
Démonstration :
Déterminer l’équation de la trajectoire yS(x) délimitant la zone des points que peut atteindre le projectile
lancé de O avec une vitesse v0 donnée, de norme constante et de direction α (entre 0 et π/2).
Aide : écrire l’équation de la trajectoire parabolique y(x) puis remplacer 1/(cosα)2 par 1 + (tanα)2 afin
d’obtenir une équation du second degré en tanα. Se demander alors à quelle condition (sur y et x) il
existe un angle α tel que le point M de coordonnées (x,y) peut être atteint (à v0 fixé).
3 Courbes et commentaires
A l’oral :
- vidéo-projeter et expliquer succinctement la
démonstration de l’équation de la parabole de
sûreté (sans détailler les calculs) en expliquant
clairement ce qu’elle représente.
- interpréter les courbes tracées.
- vidéo projeter le programme Python et
commenter-le succinctement.
1 / 15
TP Python MPSI 2018-2019
1 Position du problème
L’allongement x d’un ressort horizontal soumis à des frottements fluides (ou la tension aux bornes du
condensateur dans le cas d’un circuit RLC série) vérifie l’équation différentielle :
3 Courbes et commentaires
A l’oral :
2 / 15
TP Python MPSI 2018-2019
1 Position du problème
3 Courbes et commentaires
A l’oral :
- vidéo projeter et expliciter
succinctement la démonstration
de l’équation différentielle
adimensionnée du pendule.
- justifier les tracés dans le cas
des petites oscillations
- justifier les tracés dans le cas
des oscillations d’amplitude plus
importante
- interpréter les courbes tracées
dans le plan de phase
- vidéo projeter le programme
Python et commenter la
méthode de résolution.
3 / 15
TP Python MPSI 2018-2019
1 Position du problème
- Cas 1 : un électron de charge -e et de masse m est placé au point O (origine du repère) avec
une vitesse initiale V0 V0 u x dans un champ magnétique B Bu z .
eB
Les vitesses Vx et Vy vérifient les équations : et avec
m
- Cas 2 : une particule de charge positive q et de masse m est placée au point O (origine du
repère) sans vitesse initiale dans un champ électromagnétique : E E u y et B Bu z
qB
Les vitesses Vy et Vz vérifient les équations : et avec
m
- Effectuer le changement de variable t* = ωt afin d’adimensionner les équations différentielles
B B
précédentes ; on notera Vx dx dt * et Vy dy dt ; x x et y*
* * * *
y
E E
3 Courbes et commentaires
A l’oral :
- vidéo projeter et commenter
succinctement les démonstrations des
équations différentielles vérifiées par les
coordonnées de la particule.
- comparer les courbes obtenues avec
les solutions analytiques, celles du cas
1 ayant été vues en cours et celles du
cas 2 étant :
E
y x( t ) [ t sin( t )]
B
E
y( t ) [ 1 cos( t )]
B
- vidéo projeter le programme Python et
commenter la méthode de résolution.
4 / 15
TP Python MPSI 2018-2019
1 Position du problème
Un système de masse m soumis à un champ gravitationnel (centripète en 1/r2), aussi appelé champ
Newtonien, suit une trajectoire de type conique : une hyperbole, une parabole ou une ellipse (dont le
cercle est un cas particulier). La trajectoire suivie dépend des conditions initiales.
On peut prouver que les coordonnées polaires (r , θ) décrivant la position du système vérifient les
équations différentielles :
d 2r 1 1
3 2
dt 2
r r OM
(remarque : il s’agit en fait de coordonnées réduites sans dimension r )
d 1 r0
2
dt r
( t 0 ) 0
avec 1 ; 1;0 ; 0 ; 0
dr
(t 0) 0
dt α étant un paramètre constant égal à l’énergie mécanique
r( t 0 )
1 1 adimensionnée du système : Em E0 1;
Remarques :
- un rappel qui peut-être utile : les coordonnées cartésiennes sont égales à x = r cos(θ) et y = r sin(θ)
- A la date t = 0, l’angle θ est fixé à 0, la valeur de rest fixé à 0 (donc tangente initiale selon u 0
c'est-à-dire verticale) mais la valeur de r(t = 0) dépend de la valeur de α (donc de la valeur de
l’énergie mécanique) et n’est pas la même pour chaque courbe tracée.
3 Courbes et commentaires
A l’oral :
- décrire les différentes courbes coniques
θ obtenues.
- interpréter les différents types de courbes
obtenues (courbes fermées ou ouvertes).
- vidéo projeter le programme Python et
commenter la méthode de résolution.
5 / 15
TP Python MPSI 2018-2019
1 Position du problème
Soit une particule de masse m située dans un puits non linéaire d’énergie potentielle
x x
( )2 ( )2
E p ( x ) E0 [ 1 e ] ou E p ( x ) 1 e en utilisant la variable adimensionnée E p ( x ) E p ( x ) E0
L * L *
Déterminer la force qui dérive de l’énergie potentielle Ep(x) et en déduire l’équation différentielle vérifiée
par l’abscisse x de la particule (dans le cas où les frottements sont négligeables).
x t L E0
En posant les variables adimensionnées x* et t* avec t0 et v0 on peut
L t0 v0 m
montrer que x* vérifie l’équation différentielle non linéaire : (démonstration non
demandée)
Tracer la courbe E p ( x* ) 1 e ( x
* * 2
)
-
3 Courbes et commentaires
A l’oral :
- vidéo projeter et commenter
succinctement la démonstration de
l’équation différentielle vérifiée par x (pas
celle vérifiée par x*).
- commenter les tracés des courbes
obtenues.
- vidéo projeter le programme Python et
commenter la méthode de résolution.
6 / 15
TP Python MPSI 2018-2019
1 Position du problème
Soit un projectile lancé avec une vitesse initiale v0 dans un champ de pesanteur
(l’axe (Oy) est dirigé vers le haut) et soumis à une force de frottement
dv*
Montrer alors que v* vérifie l’équation différentielle *
1 v* 2
dt
3 Courbes et commentaires
A l’oral :
- vidéo projeter et commenter
succinctement les démonstrations
demandées.
- commenter les tracés des courbes
obtenues.
- vidéo projeter le programme Python et
commenter la méthode de résolution.
7 / 15
TP Python MPSI 2018-2019
1 Position du problème
- Soit une particule de masse m située dans un puits d’énergie potentielle parabolique
E p ( x ) x 2 centré sur x = 0. Déterminer la force qui dérive de l’énergie potentielle Ep(x) et en
déduire l’équation différentielle vérifiée par l’abscisse x de la particule (dans le cas où les
frottements sont négligeables).
- Etablir de même l’équation différentielle vérifiée par l’abscisse x de la particule dans le cas où la
dx
force de frottement est selon (Ox) et du type Fx µ
dt
- Pour un double puits paraboliques symétriques par rapport à x = 0, on peut proposer
l’expression de l’énergie potentielle suivante : E p ( x ) 4 x 2 4 x 4 1
En déduire de même les équations différentielles vérifiées par x dans les cas avec et sans
frottement.
3 Courbes et commentaires
A l’oral :
- vidéo projeter et commenter
succinctement les démonstrations
demandées.
- commenter les tracés des courbes
obtenues.
- étudier l’influence de la vitesse initiale
dans le cas du double puits.
8 / 15
TP Python MPSI 2018-2019
1 Position du problème
On étudie un équilibre chimique entre les espèces chimiques A, B, C et D.
On modélise cet équilibre par l’équation suivante : A + B = C + D (avec des nombres
stœchiométriques égaux à 1 pour simplifier).
On note K la constante de la réaction.
Du point de vu cinétique, on note k1 la constante cinétique pour la réaction se faisant dans le sens
direct et on considère pour simplifier que les ordres partiels sont égaux à 1 pour les espèces A et B.
On note de la même façon k2 la constante cinétique pour la réaction se faisant dans le sens inverse et
on considère pour simplifier que les ordres partiels sont égaux à 1 pour les espèces C et D.
d [ A]
- Justifier que k1 [ A ][ B ] k 2 [ C ][ D ]
dt
d[ B] d[C ] d[ D]
- En déduire par analogie les expressions de , et .
dt dt dt
- Démontrer l’expression de la constante de réaction K en fonction des constantes cinétiques k1
et k2.
3 Courbes et commentaires
A l’oral :
- vidéo projeter et commenter
succinctement les démonstrations
demandées.
- vidéo projeter le programme Python et
commenter la méthode de résolution.
9 / 15
TP Python MPSI 2018-2019
1 Position du problème
On s'intéresse à un filtre passe-bande d'ordre 2 réalisé à l'aide d'un circuit RLC. On chercher à
simuler la réponse à une tension sinusoïdale. On rappelle que la tension d'entrée et la tension de
d 2s ds de
sortie sont reliées par l'équation différentielle : LC 2 RC s RC
dt dt dt
La continuité du courant dans la bobine et de la tension aux bornes du condensateur imposent
respectivement :
s 0 0 et
dt L
0 e0 uc 0
ds R
3 Courbes et commentaires
A l’oral :
- Présenter le principe de la démonstration
de l’ équation différentielle proposée.
- vidéo projeter le programme Python et
commenter la méthode de résolution.
10 / 15
TP Python MPSI 2018-2019
XI Attracteur de Lorenz
1 Position du problème
En 1963, le météorologue Edward Lorenz cherchait à modéliser certains phénomènes
météorologiques. Ne pouvant résoudre analytiquement les équations (non-linéaires) de la mécanique
des fluides, et ne disposant que d'un ordinateur de puissance limitée, il entreprit de simplifier
fortement ses équations pour décrire un phénomène de convection (instabilité de Rayleigh-Bénard). Il
aboutit au système d'équations différentielles (adimensionnées) suivant :
dx
dt t y t xt
dy
t xt y t xt z t
dt
dz
dt t xt y t z t
Pour certaines valeurs de σ, ρ et β, le système comporte un attracteur étrange : pour des conditions
initiales (presque) quelconques, il évolue vers un ensemble appelé « attracteur de Lorenz ».
2 Résolution numérique avec Python
- Pour les simulations, on pourra prendre dans un premier temps σ = 10, ρ = 28 et β = 8/3, faire
varier t entre 0 et 80 et choisir comme condition initiale (0,1 ; 0,1 ; 0,1).
- Résoudre numériquement le système d'équations différentielles. Tracer (en 3 dimensions) la
« trajectoire » (x(t),y(t),z(t)). Vérifier que le système évolue vers l'attracteur pour des
conditions initiales variées.
- Diminuer la valeur de ρ ; comment le système évolue-t-il ?
- Question subsidiaire : supprimer les termes non-linéaires du système différentiel et étudier le
comportement du système (on pourra faire varier t entre 0 et 0,1). Quel est l'effet de la non-
linéarité ?
Pour tracer des courbes en en 3D :
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#
fig=plt.figure()
ax=fig.gca(projection='3d')
ax.plot(X,Y,Z)
plt.show()
où X, Y et Z sont les listes (ou des tableaux numpy contenant les coordonnées des différents points.
3 Courbes et commentaires
A l’oral :
- Présenter succinctement le système
d’équations différentielles.
- vidéo projeter le programme Python
et commenter la méthode de
résolution.
11 / 15
TP Python MPSI 2018-2019
1 Position du problème
L'oscillateur de Wien est un montage électronique constitué d'un filtre passe-bande (appelé filtre de
Wien) et d'un montage amplificateur réalisé avec un AO/ALI :
La particularité de ce montage est que la moindre fluctuation de tension dans ce montage peut y faire
naître des oscillations (sous réserve que les paramètres du montage soient bien choisis). Le filtre est
d 2 u3
caractérisé par l'équation différentielle : RC
du du
3RC 3 u3 RC 2
2
2
dt dt dt
R
et le montage amplificateur par la relation : u2 Gu1 avec G 1 2
R1
Quand le montage est bouclé, les différentes tensions vérifient l’équation différentielle :
2
RC 2 d u
2
3 G RC
du
u 0
dt dt
2 Résolution numérique avec Python
On cherche à simuler le comportement de ce montage.
- Programmer la résolution numérique de cette équation dans le cas où G < 3, G = 3 et G > 3.
On pourra prendre les conditions initiales u(0) = 10 mV et u'(0) = 0 ainsi que les valeurs R =
10 kΩ et C = 10 nF.
- En fait, le montage amplificateur ne peut pas produire un signal de sortie infiniment grand ; la
tension de sortie est limitée par une valeur appelée tension de saturation Vs
Vs si Gu1 Vs
u 2 Gu1 si Gu1 Vs
V si Gu V
s 1 s
12 / 15
TP Python MPSI 2018-2019
3 Courbes et commentaires
A l’oral :
- Présenter le principe de la démonstration
de la première équation différentielle
proposée.
- vidéo projeter le programme Python et
commenter la méthode de résolution.
1 Position du problème
On s'intéresse à un filtre passe-bas d'ordre 1 réalisé à l'aide d'un circuit RC. On chercher à simuler la
réponse à une tension sinusoïdale. On rappelle que la tension d'entrée et la tension de sortie sont
ds
reliées par l'équation différentielle : RC se
dt
On supposera le condensateur initialement chargé : s 0 0 . Dans un premier temps, on pourra
prendre R = 1 kΩ et C = 100 nF. La tension d'entrée peut être écrite sous la forme : et e0 cos 2ft
avec par exemple f = 1 kHz et e0 = 1 V.
2 Résolution numérique avec Python
- Résoudre l’équation différentielle avec Python.
- Etudier l'effet du régime transitoire : que ce passe-t-il en fonction de s0 ? Observe-t-on ce
régime transitoire en TP d'électronique ?
- En régime établi, étudier le comportement du filtre en fonction de la fréquence d'entrée.
3 Courbes et commentaires
A l’oral :
- Démontrer l’équation différentielle
proposée.
- vidéo projeter le programme
Python et commenter la méthode de
résolution.
13 / 15
TP Python MPSI 2018-2019
1 Position du problème
On considère une barre métallique homogène de isolant thermique
longueur L et de section S, dont les parois latérales métal
sont calorifugées.
Ses extrémités sont plongées dans deux bains
liquides, dont les températures sont maintenues à
des valeurs fixées T0 et T1 (bain thermostaté pour T T1
0
ce qui concerne T0 et mélange eau-glace pour ce
qui concerne T1).
La barre est initialement à la température T1 ; on souhaite simuler l’évolution au cours du temps du profil de
température T(x,t).
2T 1 T
La température T(x,t) vérifie l’équation différentielle 0 avec κ une constante appelée
x 2 t
diffusivité thermique (vu en spé).
T ( x ,t ) T1
On introduira la grandeur adimensionnée ( x ,t ) qui mesure l’écart de température ramené à
T0 T1
l’écart maximal et qui vérifie la même équation différentielle que T(x,t).
Déterminer ( x ,0 ) ainsi que les conditions aux limites ( 0, t ) et ( L , t ) aux extrémités.
3 Courbes et commentaires
A loral :
- commenter les profils de température
obtenus (conditions aux limites et
évolution au cours du temps).
- interpréter la courbe obtenue en
régime stationnaire.
.
- vidéo projeter le programme Python et
commenter la méthode de résolution
14 / 15
TP Python MPSI 2018-2019
- -
2 II et …
- -
- -
3 III et …
- -
- -
4 IV et …
- -
- -
5 V et …
- -
- -
6 VI et …
- -
- -
7 VII et …
- -
- -
8 VIII et …
- -
- -
9 IX et …
- -
- -
10 X et …
- -
- -
11 XI et …
- -
- -
12 XII et …
- -
15 / 15