TP D`INFORMATIQUE PTSI : INGENIERIE NUMERIQUE ET

publicité
TP D’INFORMATIQUE PTSI : INGENIERIE NUMERIQUE ET SIMULATION :
TP 3 : RESOLUTION NUMERIQUE D’EQUATIONS DIFFERENTIELLES
I) Système d’équations différentielles d’ordre 1 : Système proies – prédateurs
Nous souhaitons étudier l’évolution dans le temps de deux populations x(t) et y(t), où :
 x représente le nombre de proies, par exemple des lapins
 y représente le nombre de prédateurs, par exemple des renards.
Un modèle simple permet de décrire les relations entre proies et prédateurs.
 En l’absence de prédateurs, l’évolution propre des proies est régie par l’équation : x’(t) = r . x(t), r
étant le taux d’accroissement intrinsèque des proies, sans prédation.
 En présence de prédateurs, la population subit un prélèvement proportionnel au produit des deux
populations :
x’(t) = r . x(t) – p . x(t) . y(t)
 En l’absence de proies, la population des prédateurs a tendance à disparaitre : y’(t) = - d . y(t).
 En présence de proies, on ajoute un terme d’accroissement proportionnel au produit des deux
populations :
y’(t) = - d . y(t) + q . x(t) . y(t)
 Lorsque les deux populations sont présentes sur un même territoire, leur évolution conjointe est régie
par le système :
 x' (t)  r . x(t) - p . x(t) . y(t)
 y'(t)  - d . y(t)  q . x(t) . y(t)


x(t 0 )  x 0


y(t0 )  y 0
On pourra tester avec r = 1.1 ; p = 0.01 ; d = 1.2 ; q = 0.005 ; x0 = 50 ; y0 = 50.
Le principe de la méthode d’Euler vue en cours pour résoudre une équation différentielle d’ordre 1 reste
tout à fait valable pour résoudre un système d’équations différentielles d’ordre 1. La seule différence sera
la nécessité de décrire le système d’équations par deux fonctions à trois variables F(t, x, y) et G(t, x, y)
telles que :
x’(t) = F(t, x(t), y(t))
y’(t) = G(t, x(t), y(t)).
Dans notre exemple, on aura ainsi :
F(t, x, y) = x (1.1 – 0.01 y)
G(t, x, y) = y (0.005 x – 1.2)
Question 1 : Ecrire une fonction « Euler2_liste(F, G, t0, tf, x0, y0, n) » qui traduit en Python le problème
précédent (t0 et tf sont les bornes définissant l’intervalle d’étude, et n est le nombre d’intervalles
découpant [t0,tf]). Cette fonction retournera une liste contenant les différentes valeurs pour le temps, une
liste contenant les différentes valeurs du nombre de proies, et une liste contenant les différentes valeurs
du nombre de prédateurs.
Appeler cette fonction avec les valeurs numériques fournies, et avec t0 = 0, tf = 20, et n = 1000.
Tracer l’évolution des populations de proies et de prédateurs au cours du temps.
Question 2 : Ecrire de même une fonction « Euler2_tableau(F, G, t0, tf, x0, y0, n) » qui utilise des
tableaux Numpy. Appeler cette fonction avec les valeurs numériques fournies, et avec t0 = 0, tf = 20, et n
= 1000. Tracer l’évolution des populations de proies et de prédateurs au cours du temps.
II) Equation différentielle d’ordre 2 : Le pendule simple :
A) Méthode générale :
On prendra comme expression générale de ce type d’équation l’expression suivante :
y’’(t) + a(t) . y’(t) + b(t) . y(t) = f(t)
(E)
y1 ' (t)  y 2 ( t )
y1 ' (t)  y 2 ( t )
 y (t)  y(t) 

Si on pose :  1


y 2 (t)  y'(t) y 2 ' (t)  f(t) - a(t) . y 2 (t) - b(t) .y1 ( t ) y 2 ' (t)  F(t, y1 (t), y 2 (t))
Le fait de résoudre l’équation (E) revient donc à résoudre un système d’équations différentielles du 1 er
ordre, comme nous l’avons vu dans le paragraphe I).
B) Pendule simple :
On considère une barre 1 en acier de longueur L1, de section constante s1 et de masse M1. Cette barre est

en liaison pivot avec un bâti O d’axe O, z  . Le paramètre angulaire θ 1 oriente la barre 1 par rapport à

l’axe O, x  descendant.
On considère dans la suite le modèle équivalent situé à droite sur la Figure 1, pour lequel on considère
que la masse de la barre est équi-répartie à ses extrémités. On note m1 la masse ponctuelle équivalente
M
située à l’extrémité A de la barre 1. On a donc m1 = 1 .
2
1) Etude sans frottements :
Nous allons dans un premier temps effectuer une analyse du pendule en considérant que les frottements
visqueux ou secs peuvent être négligés. On peut montrer que l’équation différentielle régissant le
mouvement du pendule peut se mettre sous la forme :
θ + g sin( θ ) = 0
(E1)
1
1
L1
En ce qui concerne les conditions initiales, on supposera que le lâcher du pendule depuis une position θ10
est réalisé à vitesse nulle ( θ = 0).
10
Dans la suite, on prendra les valeurs numériques suivantes : M1 = 1 kg ; L1 = 1 m.
a) Etude pour de petits angles :
On suppose dans cette partie que l’angle de lâcher est θ10 = 10°.
Cet angle étant relativement petit (donc sin 1  1), on peut réécrire l’équation différentielle (E 1) sous la
forme :
θ + g θ = 0
(E1’)
1
1
L1
g
.
L1
La solution exacte de cette équation différentielle (E 1’) est, en utilisant les conditions initiales :
θ1 (t)  θ10 . cosω1 . t 
On pose ω1 
Question 3 : Tracer sur une durée de 3 périodes du mouvement l’évolution de cette solution exacte en
fonction du temps.
Nous souhaitons comparer la solution théorique dans le cas des petits angles avec la solution trouvée
numériquement grâce à la méthode de résolution des équations différentielles d’Euler.
Question 4 : Mettre en œuvre l’algorithme de résolution de l’équation de (E 1’). Pour cela, on pose :
x(t) = θ1 (t) et y(t) = θ 1 (t) .
g
L’équation (E1’) : θ1 +
θ 1 = 0 est alors équivalente au système de deux équations :
L1
 x' (t)  y(t)

 y'(t)  - g . x(t)

L1
On pourra tracer l’évolution de 1(t) (sur 3 périodes, avec n = 10000) et superposer à la courbe de la
solution exacte.
Question 5 : Comparer la solution exacte et la solution numérique pour plusieurs pas de temps de calcul.
Tracer les courbes sur un même graphique en légendant proprement les courbes en y ajoutant de la
couleur. Tracer également sur une autre fenêtre l’écart entre les deux solutions. Commentaires.
b) Etude pour des angles quelconques :
On souhaite maintenant valider l’hypothèse des petits angles. On conserve dans un premier temps θ10 =
10°.
Question 6 : Résoudre numériquement l’équation différentielle (E1). Comparer alors avec la solution
numérique trouvée lors de la résolution de (E 1’) : on tracera l’évolution de θ 1 en fonction du temps. Que
dire de l’hypothèse des petits angles : la simplification de l’équation différentielle de départ est-elle
justifiée ?
Nous nous intéressons maintenant à des angles de lâcher un peu plus grands : 45° ; 90° ; 135° ; 179°. La
vitesse initiale est toujours nulle.
Question 7 : Comparer l’évolution des solutions de chacune des équations différentielles pour ces 4
valeurs d’angles initiaux (comparaison graphique de l’évolution de θ 1 en fonction du temps). On tracera
les quatre évolutions sur quatre graphiques tracés sur une même figure.
Question 8 : Que se passe-t-il théoriquement pour la valeur θ10 = 180° ? Numériquement (tester la
résolution pour cette valeur bien particulière…) ?
2) Prise en compte des frottements :
On considère désormais que les frottements dans la liaison pivot ne sont plus négligeables et ceux-ci sont
modélisés comme des frottements secs. Les forces de frottements dans l’air sont modélisées par une force
proportionnelle à la vitesse. Avec toutes ces considérations, l’équation différentielle (E 1) devient :
m1 . L1 . θ1 + µ . L1 . θ 1 + m1 . g . sin( θ 1 ) + f( θ 1 ) = 0
(E2)
 µ . L1 . θ 1 représente les forces de frottements visqueux.
 f( θ 1 ) est la composante des frottements secs :
f( θ 1 ) = f1 si θ 1 > 0 et f( θ 1 ) = - f1 si θ 1 < 0.
On prendra les valeurs numériques suivantes : µ = 0,01 N.s/m et f1 = 0,05 N.
Question 9 : Dans le cas où l’on considère un lâcher du pendule depuis un angle θ10 = 90°, mettre en
œuvre la résolution de cette nouvelle équation différentielle et tracer l’évolution de θ 1 en fonction du
temps (sur 20 secondes). Observations ?
Question 10 : Mettre en œuvre une méthode pour déterminer numériquement le temps d’arrêt du pendule
à une demie seconde près. On prendra comme conditions d’arrêt un angle inférieur à 5° et une vitesse de
rotation inférieure à 0,001 rad/s.
Question 11 : Tracer alors sur un même graphique, deux sous-figures représentant l’angle et la vitesse en
fonction du temps, jusqu’au moment où le pendule s’arrête.
C) Pendule double :

On ajoute en liaison pivot d’axe A, z  avec la barre 1 de la partie précédente une barre 2 de masse M2 et
de longueur L2.
Les hypothèses quant à la formulation d’un modèle équivalent sont les mêmes que pour le pendule
simple.
M1 M 2
La masse ponctuelle équivalente m 1 au point A vaut alors m1 =
, et la masse ponctuelle

2
2
M
équivalente m2 au point B alors m2 = 2 .
2
On se place dans le cas où les frottements sont négligés au niveau de chaque liaison. Les deux équations
différentielles couplées régissant le mouvement sont les suivantes :


 2
 2
θ  - m 2 sin θ1 - θ 2  L1 cosθ1 - θ 2  θ1  L 2 θ 2  g cosθ 2  - m1 g sin θ1 
1
L1 m1  m 2 sin 2 θ1 - θ 2 
 2
 2
θ  sin θ1 - θ 2  m1  m 2  L1 θ1  g cosθ1   m 2 L 2 cosθ1 - θ 2  θ 2
2
L 2 m1  m 2 sin 2 θ1 - θ 2 








Les données numériques sont les suivantes :
 Rappels pour la barre 1 : M1 = 1 kg ; L1 = 1 m.
 Concernant la barre 2 : M2 = M1 / 2 ; L2 = L1 / 2.
Question 12 : Résoudre ces équations différentielles afin de pouvoir tracer les évolutions de θ 1 et θ 2 en
fonction du temps sur une même figure (on tracera sur une durée d’environ 40 secondes, en rouge θ 2 et
en bleu θ 1 ).
Question 13 : Sur une nouvelle fenêtre graphique, tracer en bleu la trajectoire du point A et en rouge, la
trajectoire du point B.
Téléchargement