Objectif de la fiche : tester la validité de la troisième loi de Kepler à partir des données du Système solaire, en déduire la masse du Soleil, puis appliquer le même raisonnement pour déterminer la masse de l'astéroïde Eugénie à partir du mouvement de son satellite.
Cette fiche est autonome : tu n'as besoin d'aucun autre document, les données sont recopiées directement dans le script (pas besoin de fichier tableur). 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).
Les données du Système solaire
- Le tableau ci-dessous, issu du site de l'Observatoire de Paris, donne pour les huit planètes le demi-grand axe
ade leur orbite (en unités astronomiques, UA) et leur période de révolutionT(en années). - Dans un contexte professionnel, ces données viendraient souvent d'un fichier tableur (
.xlsx), chargé en Python avec le moduleopenpyxl. Ici, pour rester autonome sans avoir besoin d'un fichier séparé, on les recopie directement dans deuxnp.array. - Le script ci-dessous est déjà complet : copie-le tel quel dans Thonny (ou dans Basthon) pour commencer.
La 3e loi de Kepler appliquée au Système solaire
| planète | Mercure | Vénus | Terre | Mars | Jupiter | Saturne | Uranus | Neptune |
|---|---|---|---|---|---|---|---|---|
| a (UA) | 0,3871 | 0,7233 | 1,0000 | 1,5237 | 5,2026 | 9,5547 | 19,218 | 30,109 |
| T (an) | 0,2408 | 0,6152 | 1,0000 | 1,8808 | 11,862 | 29,457 | 84,020 | 164,77 |
La troisième loi de Kepler affirme que le rapport a³/T² devrait être à peu près constant pour toutes les planètes tournant autour du même astre : c'est ce que tu vas vérifier.
import numpy as np
import matplotlib.pyplot as plt
# Demi-grand axe (UA) : Mercure, Vénus, Terre, Mars, Jupiter, Saturne, Uranus, Neptune
at = np.array([0.3871, 0.7233, 1.0000, 1.5237, 5.2026, 9.5547, 19.218, 30.109])
# Période de révolution (année)
tt = np.array([0.2408, 0.6152, 1.0000, 1.8808, 11.862, 29.457, 84.020, 164.77])
Vérifier la loi de Kepler
- Calcule
a3, le cube deat(at**3), ett2, le carré dett(tt**2). - Trace
a3en fonction det2, en croix rouges ('rx'), avec une grille.
# TODO : cube de a et carré de T
a3 = (__)**_
t2 = (__)**_
plt.grid()
plt.plot(__, __, '__')
plt.show()
Un graphe où sept des huit points sont écrasés près de l'origine, en bas à gauche : l'orbite de Neptune, bien plus grande que les autres, écrase l'échelle et empêche d'apprécier la validité de la loi pour les planètes proches du Soleil. C'est l'occasion de réfléchir aux échelles de représentation.
Zoomer sur les planètes proches
- Le slicing
at[:4]garde uniquement les 4 premiers éléments d'un tableau : les 4 planètes les plus proches du Soleil (Mercure, Vénus, Terre, Mars). - Crée
attetttt, restreints à ces 4 planètes, puis recalculea3ett2à partir de ces nouveaux tableaux et retrace le graphe.
# TODO : ne garde que les 4 premières planètes
att = at[:__]
ttt = tt[:__]
a3 = (att)**3
t2 = (ttt)**2
plt.grid()
plt.plot(t2, a3, '__')
plt.show()
Cette fois, les 4 points s'alignent bien sur une droite passant par l'origine : la loi de Kepler semble vérifiée. Comme les données sont exprimées en UA et en années, la pente de cette droite vaut ici environ 1 — un résultat propre à ces unités particulières, pas une propriété physique générale.
Passer aux unités internationales
- Pour que la pente de la droite ait un sens physique exploitable, il faut travailler en unités du Système International : le mètre pour les distances, la seconde pour les durées.
- 1 UA ≈
1.5*10**11m. 1 année ≈365*24*3600s. - Reprends toutes les planètes (pas seulement les 4 premières) : convertis
aten mètres (ar) ettten secondes (tr), recalculea3ett2, puis modélise le nuage de points par une droite grâce ànp.polyfit(t2, a3, 1)— le degré 1 signifie qu'on cherche une droite, pas une courbe.
# TODO : conversion en unités SI (mètres et secondes)
ar = at * (___*10**__)
tr = tt * (___*24*3600)
a3 = (ar)**3
t2 = (tr)**2
plt.grid()
plt.plot(t2, a3, '__')
plt.show()
# TODO : modélise le nuage de points par une droite (degré 1)
mod = np.polyfit(__, __, _)
print('mod :', mod)
Indice
mod contient 2 valeurs pour une droite a3 = mod[0]*t2 + mod[1] : mod[0] est le coefficient directeur (la pente), c'est lui qui va nous intéresser à l'étape suivante. mod[1] devrait être proche de 0, puisque la droite passe par l'origine.
Les 8 planètes s'alignent maintenant sur une droite, avec une pente mod[0] de l'ordre de 3,4 × 10¹⁸ (en m³/s²) : bien loin de 1, car on n'est plus en UA et en années.
En déduire la masse du Soleil
- La troisième loi de Kepler s'écrit
T² = (4π² / (G·M)) × a³, oùG = 6,67×10⁻¹¹ N·m²·kg⁻²est la constante de gravitation etMla masse de l'astre central (ici, le Soleil). - En traçant
a³en fonction deT², la pentemod[0]que tu viens d'obtenir vaut doncG×M / (4π²). On en déduitM = mod[0] × 4π² / G. - En Python,
πs'obtient avecnp.pi.
G = 6.67e-11
# TODO : masse du Soleil déduite de la pente de la droite
Msoleil = mod[_] * 4 * np.pi**_ / _
print('Masse du Soleil (kg) :', Msoleil)
Une masse de l'ordre de 2 × 10³⁰ kg, très proche de la valeur tabulée de la masse du Soleil (1,989 × 10³⁰ kg) : la méthode fonctionne.
Peser l'astéroïde Eugénie
- L'astéroïde Eugénie possède un petit satellite naturel, observé par optique adaptative : sa période de révolution est de
4,7 jourset le demi-grand axe de son orbite vaut1190 km. - Un seul couple (a, T) suffit ici : convertis-les en unités SI (mètres et secondes), puis applique directement la formule
M = 4π²a³ / (G T²)— c'est la même relation qu'à l'étape précédente, réarrangée pour calculer une masse à partir d'un seul point de mesure plutôt que d'une pente.
# TODO : conversion en unités SI
a_sat = 1190 * ____
T_sat = 4.7 * 24 * ____
# TODO : masse de l'astéroïde, à partir de la même relation de Kepler
Meugenie = 4 * np.pi**2 * a_sat**_ / (G * T_sat**_)
print("Masse d'Eugénie (kg) :", Meugenie)
Indice
1 km = 1000 m. 1 jour = 24*3600 s. La formule est symétrique en a_sat au cube et T_sat au carré, exactement comme a3 et t2 aux étapes précédentes.
Une masse de l'ordre de 6 × 10¹⁸ kg pour l'astéroïde Eugénie — plus de 10 ordres de grandeur inférieure à celle du Soleil, ce qui donne une idée de l'immense différence de masse entre une étoile et un astéroïde.
Pense-bête — la 3e loi de Kepler
| T² = 4π²a³/(GM) | relation entre période, orbite et masse centrale |
| pente de a³=f(T²) | vaut GM/4π² |
| np.polyfit(x,y,1) | modélise un nuage de points par une droite |
| 1 UA | ≈ 1,5×10¹¹ m |
| 1 année | ≈ 365×24×3600 s |
| G | 6,67×10⁻¹¹ N·m²·kg⁻² |
Pas de Thonny sous la main ? Utilise Basthon
Ouvrir dans un nouvel onglet ↗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.