Physique-chimie · Terminale · Enseignement de spécialité · Fiche n°5

La même aire,
balayée encore et encore.

Tu as déjà étudié le mouvement de Mercure en seconde, puis en première, pour en tirer la masse du Soleil. Cette fiche revient sur les mêmes données pour illustrer une propriété plus surprenante : le segment qui relie Mercure au Soleil balaie des aires égales en des durées égales, quelle que soit la position de la planète sur son orbite.

constante_aires.py — aperçuC ≈ constante

Objectif de la fiche : utiliser un langage de programmation pour étudier la relation approchée entre la variation du vecteur vitesse d'un système modélisé par un point matériel entre deux instants voisins et la somme des forces appliquées sur celui-ci, en l'appliquant ici à la « constante des aires » de Mercure.

Cette fiche est autonome : tu n'as besoin d'aucun autre document, elle reprend le script déjà construit en première (fiche « masse du Soleil »). Chaque étape contient un script incomplet à compléter, puis à copier-coller dans Thonny (ou dans la console Basthon tout en bas de la page si tu n'as pas Thonny sous la main).

+

Contexte : la loi des aires

À savoir
  • Le mouvement de Mercure autour du Soleil a déjà été étudié deux fois dans cette série : pour vérifier la loi de Kepler et peser le Soleil, puis pour retrouver sa masse à partir de la variation du vecteur vitesse. Cette fiche revient une troisième fois sur les mêmes données, pour illustrer une propriété différente : la constante des aires.
  • D'après la deuxième loi de Kepler, le segment reliant une planète au Soleil balaie des aires égales en des durées égales, quelle que soit la position de la planète sur son orbite. Mercure va donc plus vite près du Soleil, et plus lentement loin de lui — de façon à toujours balayer la même aire par unité de temps.
  • En coordonnées cartésiennes, cette aire balayée par unité de temps s'exprime par la grandeur C = x·vy − y·vx (à un facteur 2 près) : si la loi des aires est vérifiée, cette expression doit rester constante tout au long de l'orbite, quelle que soit la position considérée.
00

Reprise : positions et vecteurs vitesse

À savoir
  • Ce script reprend exactement celui déjà construit en première : le modèle d'orbite circulaire pour Mercure, puis la construction de vxl et vyl par différences centrées.
  • Le script ci-dessous est déjà complet : copie-le tel quel dans Thonny (ou dans Basthon) pour commencer.
etape0_reprise.py
import numpy as np
import matplotlib.pyplot as plt

# Modèle d'orbite circulaire pour Mercure
r = 0.387
Torb = 87.969
t = 8 * np.arange(11)
theta = 2 * np.pi * t / Torb

x = r * np.cos(theta)
y = r * np.sin(theta)

# Vecteurs vitesse par différences centrées
vxl = []
m = np.arange(len(t) - 2)
for i in m :
    vxl.append((x[i+2] - x[i]) / (t[i+2] - t[i]))

vyl = []
for i in m :
    vyl.append((y[i+2] - y[i]) / (t[i+2] - t[i]))
01

Passer aux unités SI

Consigne
  • Convertis les positions x et y en mètres. Comme vxl et vyl ont 2 valeurs de moins que x et y, retire d'abord le dernier élément avec x[:-1], puis le premier avec [1:] : les deux ensemble reviennent à ne garder que les positions intermédiaires, celles qui correspondent réellement aux vitesses calculées.
  • Convertis aussi vxl et vyl en m/s (multiplie par 1,5×10¹¹ m/UA, divise par 24×3600 s/jour).
etape1_unites_si.py
# TODO : positions en mètres, en retirant le dernier terme
dx = x[:__] * 1.5*10**11
dy = y[:__] * 1.5*10**11

# TODO : vitesses en m/s
vyln = 1.5*10**11 * np.array(___) / (24*3600)
vxln = 1.5*10**11 * np.array(___) / (24*3600)

# TODO : retire aussi le premier terme des distances, pour correspondre aux vitesses
dxn = dx[_:]
dyn = dy[_:]
Indice

Après les deux découpages successifs ([:-1] puis [1:]), dxn et dyn ne contiennent plus ni le tout premier ni le tout dernier point de l'orbite : exactement la même plage que vxl et vyl.

02

Calculer la constante des aires

Consigne
  • Calcule Cs = dxn·vyln − dyn·vxln pour tous les points de mesure, puis trace Cs en fonction du numéro de point n = np.arange(len(t)-2), en points bleus avec la légende 'constante des aires'.
etape2_constante_aires.py
# TODO : la constante des aires, pour chaque point de mesure
Cs = (___*_____ - ___*_____)
n = np.arange(len(t) - _)

plt.plot(_, __, '__', label='__________________')
plt.grid()
plt.xlabel('______________')
plt.ylabel('___________')
Résultat attendu

Un nuage de 9 points, tous à peu près à la même hauteur (autour de 2,5×10¹⁵), quel que soit le point de l'orbite considéré : c'est exactement ce que prédit la loi des aires.

03

Modéliser par une constante

Consigne
  • Comme dans les fiches précédentes, modélise Cs par une constante avec np.polyfit(n, Cs, 0), affiche la valeur trouvée avec "%.1e"%..., puis superpose cette droite horizontale au nuage de points.
  • Utilise plt.ylim(0, 3*10**15) pour bien situer le nuage de points sur le graphe.
etape3_modelisation.py
# TODO : modélise Cs par une constante
mod = np.polyfit(_, __, _)
Cmods = float(mod[_])
print('la constante des aires est de l ordre de', "%.1e"%Cmods)

# TODO : droite horizontale du modèle
Cmodgs = 0*n + mod[_]
plt.plot(n, Cmodgs, '__', label="_______")
plt.ylim(0, 3*10**15)
plt.legend()
plt.show()
Résultat attendu

La console affiche une constante des aires de l'ordre de 2,5×10¹⁵ m²/s. Sur le graphe, la droite rouge du modèle passe quasiment au milieu de tous les points bleus, à l'exception de deux ou trois qui s'en écartent légèrement — un écart attribuable aux approximations de la méthode des différences centrées, pas à une remise en cause de la loi elle-même.

+

Conclusion

À retenir
  • La quasi-constance de C illustre numériquement la loi des aires de Kepler, conséquence directe du caractère central de la force gravitationnelle exercée par le Soleil sur Mercure : une force toujours dirigée vers un même point ne peut pas faire varier l'aire balayée par unité de temps.
  • Cette propriété n'est pas propre à Mercure ni même à la gravitation : elle se généralise à tout mouvement soumis à une force centrale, et correspond à la conservation d'une grandeur physique fondamentale, le moment cinétique.

Pense-bête — la constante des aires

x[:-1]retire le dernier élément
x[1:]retire le premier élément
C = x·vy − y·vxdouble de l'aire balayée par unité de temps
C constantesignature d'une force centrale
loi des aires2e loi de Kepler
np.polyfit(x,y,0)modélise par une constante (une moyenne)

Pas de Thonny sous la main ? Utilise Basthon

Ouvrir dans un nouvel onglet ↗
Basthon est une console Python qui tourne directement dans le navigateur, sans rien installer. Colle ici (avec Ctrl+V ou Cmd+V) le code copié avec les boutons « Copier le code » ci-dessus, puis appuie sur Entrée pour l'exécuter.