Non-isochronisme et « erreur circulaire » d'une horloge
Exercice de TD · niveau 2 · mécanique (MPSI), chapitre 8 — Mouvement d'un solide · D. Le pendule pesant
Énoncé
On reprend le pendule pesant, , avec et , lâché sans vitesse depuis l'amplitude .
1) Capacité numérique. Écrire un script Python qui intègre l'équation du mouvement et mesure la période en détectant les passages successifs de par zéro dans le même sens. Calculer pour , , , et .
2) Comparer à la formule de Borda, , établie au chapitre 3. Jusqu'où est-elle fiable ? Que devient quand ?
3) Une horloge à balancier est réglée pour battre juste quand l'amplitude vaut . En s'encrassant, l'amplitude tombe à . L'horloge avance-t-elle ou retarde-t-elle ? De combien de secondes par jour ?
4) On ajoute un frottement visqueux de moment , avec . Montrer que . Modifier le script pour suivre l'énergie mécanique et commenter sa décroissance.
Corrigé
La stratégie. On intègre numériquement avec une grande précision et l'on repère les instants où s'annule en décroissant ; leur écart est la période. On vérifie ainsi la formule de Borda du chapitre 3 et l'on mesure son domaine de validité.
1) Le script. On écrit le système du premier ordre , et l'on utilise la détection d'événements de solve_ivp : la fonction passage s'annule quand , et direction = -1 ne retient que les passages où décroît, un par période.
import numpy as np
from scipy.integrate import solve_ivp
w0 = 2.0 # pulsation propre (rad/s)
T0 = 2*np.pi/w0
def champ(t, Y):
theta, omega = Y
return [omega, -w0**2*np.sin(theta)]
def passage(t, Y): # theta = 0, en decroissant
return Y[0]
passage.direction = -1
def periode(th0):
sol = solve_ivp(champ, (0, 10*T0), [th0, 0.0],
events=passage, rtol=1e-11, atol=1e-12)
tp = sol.t_events[0] # un passage par periode
return np.mean(np.diff(tp))
for th0 in (np.radians(5), 0.5, 1.0, 2.0, 3.0):
r = periode(th0)/T0
print(f"{th0:.3f} rad T/T0 = {r:.5f} Borda = {1+th0**2/16:.5f}")
Le script affiche :
0.087 rad T/T0 = 1.00048 Borda = 1.00048
0.500 rad T/T0 = 1.01585 Borda = 1.01562
1.000 rad T/T0 = 1.06633 Borda = 1.06250
2.000 rad T/T0 = 1.32890 Borda = 1.25000
3.000 rad T/T0 = 2.57123 Borda = 1.56250La suite du corrigé est sur Adloun
Le corrigé rédigé en entier, avec les autres exercices du chapitre et le tuteur qui guide sans donner la réponse.
Voir le corrigé completGratuit : il suffit de créer un compte (e-mail, nom d'utilisateur, mot de passe, classe), et tu arrives directement sur le corrigé.
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.