g = G*M/R**2 P = m*g
Seconde · Chapitre 5 · TP expérimental et numérique

Poids, masse et gravitation

Tu vas mesurer le poids de masses marquées, vérifier que \(P = m\,g\), puis utiliser Python pour calculer l'intensité de la pesanteur sur d'autres astres et jusqu'à l'altitude des satellites.

≈ 1 h 45 en toutDynamomètre + 5 activités PythonSeul ou en binômePython s'exécute dans la page
← Tous les cours ← Retour au cours
Partie 1
Problématique

Le poids est-il proportionnel à la masse ? Et que devient-il sur un autre astre ou loin de la surface de la Terre ?

Objectifs

  • Mesurer la valeur d'un poids avec un dynamomètre.
  • Établir expérimentalement la relation \(P = m\,g\) et déterminer \(g\).
  • Utiliser la loi de gravitation pour calculer \(g\) sur différents astres et en altitude.
  • Exploiter un graphique et repérer des erreurs d'unités dans un programme.

Compétences travaillées

  • Réaliser : mesurer avec un dynamomètre, programmer.
  • Analyser : reconnaître une proportionnalité sur un graphique.
  • Valider : comparer une valeur expérimentale à une valeur de référence.
  • Communiquer : présenter un graphique avec mesures et modèle.
L'éditeur Python de cette page

Le code s'exécute réellement dans ton navigateur. Au premier clic sur ▶ Exécuter, Python se télécharge (≈ 7 Mo, une seule fois, connexion Internet nécessaire). Le bouton Télécharger .py donne un fichier utilisable dans EduPython, Thonny, Basthon ou Capytale.

Raccourcis : Ctrl + Entrée exécute, Tab décale la ligne de 4 espaces.

Choisis ton parcours

Débutant en Python : fais les cinq activités dans l'ordre, en t'aidant des indices. À l'aise avec les variables et les boucles (en général à partir du deuxième trimestre) : l'activité 1 est facultative, commence directement à l'activité 2 et vise l'activité 5 sans indice.

1
Expérience : mesurer des poids au dynamomètre
≈ 20 min · en salle de TP

Matériel

  • une potence et sa noix de serrage ;
  • un dynamomètre gradué de 0 à 5 N (précision 0,02 N ou 0,05 N) ;
  • des masses marquées à crochet : 50 g, 100 g, 200 g ;
  • une balance électronique (pour vérifier les masses).

Protocole

Suspendre le dynamomètre à la potence, verticalement, et régler son zéro à vide.
Accrocher une masse de 50 g, attendre l'immobilité, lire la valeur du poids en se plaçant face à la graduation.
Recommencer avec 100 g, 150 g, 200 g, 250 g et 300 g (en combinant les masses).
Noter les mesures dans le tableau, puis dans les programmes Python.
\(m\) (g)50100150200250300
\(P\) mesuré (N)
Si tu ne peux pas faire l'expérience

Jeu de données pédagogique Les programmes contiennent les mesures suivantes, construites à partir de \(P = m\,g\) avec de petits écarts réalistes (lecture à ± 0,02 N près) : 0,48 ; 0,99 ; 1,46 ; 1,97 ; 2,44 ; 2,95 N. Remplace-les par tes propres mesures si tu as fait l'expérience.

Q1
Pourquoi faut-il régler le zéro du dynamomètre et le lire en se plaçant face à la graduation ?

Si le zéro est mal réglé, toutes les mesures sont décalées de la même quantité : c'est une erreur systématique. Lire en biais provoque une erreur de parallaxe : l'index paraît face à une autre graduation. Ces deux précautions réduisent les erreurs de mesure.

2
Activité 1 — Prévoir un poids
≈ 10 min · Niveau 1 : variables, conversion, print()
Ce que fait le programme

Il convertit une masse de grammes en kilogrammes, puis calcule le poids \(P = m\,g\). Pourquoi ? Pour prévoir ce qu'indiquera le dynamomètre avant de faire la mesure. Comment lire le résultat ? Une valeur en newtons, à comparer avec ta mesure.

À faire :

  1. Exécute le programme : le poids affiché est-il plausible pour une masse de 250 g ?
  2. Corrige la ligne de conversion pour que m_kg soit vraiment en kilogrammes.
  3. Ajoute le calcul du poids de la même masse sur la Lune (\(g_{\text{Lune}} = 1{,}62\ \text{N}\cdot\text{kg}^{-1}\)).
Indice 1 — physique. 1 kg = 1 000 g. Une masse en kilogrammes est donc un nombre plus petit que la même masse en grammes.
Indice 2 — variables. Pour passer des grammes aux kilogrammes, on divise par 1 000. Pour la Lune, crée une variable g_lune et calcule P_lune.
Indice 3 — code. m_kg = m_g / 1000, puis g_lune = 1.62 et P_lune = m_kg * g_lune.
Correction de l'activité 1
g = 9.81
m_g = 250

m_kg = m_g / 1000          # 250 g = 0,250 kg
P = m_kg * g

g_lune = 1.62
P_lune = m_kg * g_lune

print("Masse :", m_kg, "kg")
print("Poids prévu sur Terre :", round(P, 2), "N")
print("Poids sur la Lune :", round(P_lune, 2), "N")

Résultats attendus. Avant correction : une masse de 250 000 kg et un poids de 2 452 500 N, absurdes pour un petit objet. Après correction : 0,25 kg, 2,45 N sur Terre, 0,41 N sur la Lune.

Interprétation. 2,45 N est cohérent avec la mesure au dynamomètre (2,44 N). Sur la Lune, la même masse « pèserait » 6 fois moins.

Erreurs fréquentes. Multiplier par 1 000 au lieu de diviser ; garder les grammes dans \(P = m\,g\) (le résultat serait 1 000 fois trop grand).

3
Activité 2 — Déterminer g à partir des mesures
≈ 15 min · Niveau 2 : listes, boucle, moyenne
Ce que fait le programme

Pour chaque mesure, il calcule le rapport \(\dfrac{P}{m}\). Si le poids est proportionnel à la masse, ce rapport est constant : c'est \(g\). Le programme calcule ensuite la moyenne de ces rapports et l'écart relatif avec la valeur de référence \(9{,}81\ \text{N}\cdot\text{kg}^{-1}\). Comment lire le résultat ? Un écart relatif de quelques pour cent est normal pour des mesures au dynamomètre.

Écart relatif
\(\text{écart relatif} = \dfrac{|g_{\text{exp}} - g_{\text{réf}}|}{g_{\text{réf}}} \times 100\ \%\)

À faire : complète les lignes marquées ..., exécute, puis réponds à Q2.

Indice 1 — physique. Si \(P = m\,g\), alors \(g = \dfrac{P}{m}\), avec \(m\) en kilogrammes.
Indice 2 — listes. La masse de la mesure numéro i est m_g[i] (en grammes) ; le poids correspondant est P[i].
Indice 3 — code. m_kg = m_g[i] / 1000 et r = P[i] / m_kg.
Correction de l'activité 2
m_g = [50, 100, 150, 200, 250, 300]
P = [0.48, 0.99, 1.46, 1.97, 2.44, 2.95]

rapports = []
for i in range(len(m_g)):
    m_kg = m_g[i] / 1000
    r = P[i] / m_kg
    rapports.append(r)
    print("m =", m_kg, "kg   P =", P[i], "N   P/m =", round(r, 2), "N/kg")

g_exp = sum(rapports) / len(rapports)
ecart = abs(g_exp - 9.81) / 9.81 * 100
print("g expérimental :", round(g_exp, 2), "N/kg")
print("écart relatif :", round(ecart, 1), "%")

Résultats attendus. Rapports : 9,6 ; 9,9 ; 9,73 ; 9,85 ; 9,76 ; 9,83 N/kg. Moyenne : 9,78 N/kg. Écart relatif : 0,3 %.

Interprétation. Le rapport \(P/m\) est à peu près constant : le poids est proportionnel à la masse, et le coefficient de proportionnalité est \(g\). L'écart de 0,3 % est faible : la mesure est en accord avec la valeur de référence. Le premier rapport (9,6) est le plus éloigné : pour une petite masse, une erreur de lecture de 0,01 N pèse davantage en proportion.

Erreurs fréquentes. Diviser par la masse en grammes (rapports 1 000 fois trop petits) ; faire la moyenne des poids au lieu de la moyenne des rapports.

Q2
Le poids est-il proportionnel à la masse ? Ta valeur de g est-elle en accord avec 9,81 N/kg ? Pourquoi la première mesure donne-t-elle le rapport le plus éloigné ?

Oui : \(P/m\) reste proche de 9,8 N/kg pour toutes les masses, donc \(P\) est proportionnel à \(m\). \(g_{\text{exp}} = 9{,}78\ \text{N}\cdot\text{kg}^{-1}\), soit un écart de 0,3 % : accord satisfaisant. Pour 50 g, le poids n'est que de 0,48 N : une erreur de lecture de 0,01 N représente 2 % de la mesure, contre 0,3 % pour 300 g. Les petites mesures sont relativement moins précises.

4
Activité 3 — Mesures et modèle sur un même graphique
≈ 15 min · Niveau 3 : comparer expérience et théorie
Ce que fait le programme

Il place les points de mesure \((m\ ;\ P)\) et trace la droite du modèle \(P = 9{,}81 \times m\). Pourquoi ? Un graphique montre d'un coup si les mesures suivent le modèle. Comment le lire ? Une situation de proportionnalité donne des points alignés sur une droite passant par l'origine.

À faire : le programme calcule déjà la liste m_kg. Complète la liste P_modele, ajoute la courbe du modèle, la légende, les titres et les unités.

Indice 1 — physique. Le modèle prévoit \(P = g \times m\) avec \(g = 9{,}81\ \text{N}\cdot\text{kg}^{-1}\) et \(m\) en kg.
Indice 2 — listes. La masse en kg qu'on vient d'ajouter est m_kg[i]. Pour tracer une ligne sans points, utilise '-' au lieu de 'o'.
Indice 3 — code. P_modele.append(9.81 * m_kg[i]) ; puis plt.plot(m_kg, P_modele, '-', color='navy', label='modèle P = 9,81 m'), plt.legend(), plt.xlabel("m (kg)"), plt.ylabel("P (N)").
Correction de l'activité 3
import matplotlib.pyplot as plt

m_g = [0, 50, 100, 150, 200, 250, 300]
P = [0, 0.48, 0.99, 1.46, 1.97, 2.44, 2.95]

m_kg = []
P_modele = []
for i in range(len(m_g)):
    m_kg.append(m_g[i] / 1000)
    P_modele.append(9.81 * m_kg[i])

plt.plot(m_kg, P, 'o', color='red', label='mesures')
plt.plot(m_kg, P_modele, '-', color='navy', label='modèle P = 9,81 m')
plt.title("Poids en fonction de la masse")
plt.xlabel("m (kg)")
plt.ylabel("P (N)")
plt.legend()
plt.grid()
plt.show()

Résultat attendu. Les points rouges sont presque exactement sur la droite bleue, qui passe par l'origine et atteint 2,94 N pour 0,300 kg.

Interprétation. Les mesures sont alignées sur une droite passant par l'origine : le poids est proportionnel à la masse. Le modèle \(P = m\,g\) décrit bien l'expérience. Le point (0 ; 0) a été ajouté car une masse nulle a un poids nul.

Erreurs fréquentes. Tracer le modèle avec 'o' (des points au lieu d'une droite) ; oublier plt.legend() (les étiquettes label ne s'affichent pas).

5
Activité 4 — g ailleurs : autres astres et altitude
≈ 20 min · Niveau 4 : utiliser un modèle, faire varier un paramètre
Ce que fait le programme

Partie A. Avec la loi de gravitation, il calcule \(g = G\,\dfrac{M}{R^{2}}\) pour plusieurs astres. Partie B. Il calcule \(g\) à une altitude \(h\) au-dessus de la Terre, avec \(g(h) = G\,\dfrac{m_T}{(R_T + h)^{2}}\), pour \(h\) allant de 0 à 36 000 km, et trace la courbe. Pourquoi ? Pour savoir si les satellites échappent à la gravité de la Terre. Comment lire le résultat ? Une courbe qui décroît : plus on s'éloigne, plus \(g\) est faible.

Données

Valeurs de référence Masses et rayons équatoriaux des astres d'après la NASA (arrondis à 3 chiffres significatifs).

À faire : complète les deux lignes marquées .... Puis réponds à Q3 en lisant les valeurs affichées pour l'ISS (400 km) et pour un satellite géostationnaire (35 800 km).

Indice 1 — physique. \(g = G\,\dfrac{M}{R^{2}}\) (exercice 6). En altitude, la distance au centre de la Terre est \(R_T + h\), avec \(h\) converti en mètres.
Indice 2 — variables. Pour l'astre numéro i : M[i] et R[i]. Dans la boucle de la partie B, h est en kilomètres : en mètres, c'est h * 1000.
Indice 3 — code. g = G * M[i] / R[i]**2 et d = RT + h * 1000.
Correction de l'activité 4
import matplotlib.pyplot as plt
G = 6.67e-11

astres = ["Mercure", "Vénus", "Terre", "Mars", "Jupiter", "Lune"]
M = [3.30e23, 4.87e24, 5.97e24, 6.42e23, 1.90e27, 7.35e22]
R = [2.44e6, 6.05e6, 6.37e6, 3.39e6, 7.15e7, 1.74e6]

for i in range(len(astres)):
    g = G * M[i] / R[i]**2
    print(astres[i], ": g =", round(g, 2), "N/kg")

mT = 5.97e24
RT = 6.37e6
h_km = []
g_h = []
for h in range(0, 36001, 100):
    d = RT + h * 1000                # altitude convertie en mètres
    h_km.append(h)
    g_h.append(G * mT / d**2)
    if h == 0 or h == 400 or h == 35800:
        print("altitude", h, "km : g =", round(G * mT / d**2, 2), "N/kg")

plt.plot(h_km, g_h, '-', color='navy')
plt.title("Intensité de la pesanteur terrestre en fonction de l'altitude")
plt.xlabel("altitude h (km)")
plt.ylabel("g (N/kg)")
plt.grid()
plt.show()

Résultats attendus. Mercure 3,7 ; Vénus 8,87 ; Terre 9,81 ; Mars 3,73 ; Jupiter 24,79 ; Lune 1,62 N/kg. En altitude : 9,81 N/kg au sol ; 8,69 N/kg à 400 km ; 0,22 N/kg à 35 800 km.

Interprétation. Jupiter, très massive, a le \(g\) le plus fort malgré son grand rayon. Autour de la Terre, \(g\) diminue avec l'altitude mais ne s'annule jamais : à 400 km (ISS), il vaut encore 89 % de sa valeur au sol ; à l'altitude des satellites géostationnaires, il n'en reste que 2 %. Les satellites restent soumis à l'attraction terrestre : c'est elle qui les maintient en orbite.

Erreurs fréquentes. Écrire d = h (oublier le rayon de la Terre) ou d = RT + h (oublier la conversion km → m : \(h\) serait négligeable et \(g\) ne varierait presque pas).

Q3
Que vaut g à l'altitude de l'ISS (400 km) ? Que penser de l'affirmation « dans l'espace, il n'y a plus de gravité » ?

Le programme affiche \(g \approx 8{,}69\ \text{N}\cdot\text{kg}^{-1}\) à 400 km, soit 89 % de la valeur au sol. L'affirmation est fausse : la gravité terrestre diminue avec la distance mais ne disparaît jamais. Les astronautes flottent parce que la station et eux tombent ensemble autour de la Terre (exercice 7).

6
Activité 5 — Le programme de Nina
≈ 15 min · Niveau 5 : trouver et corriger des erreurs
La situation

Nina veut calculer \(g\) à l'altitude de l'ISS. Son programme contient quatre erreurs : deux l'empêchent de fonctionner, deux donnent un résultat faux sans message. Corrige une erreur à la fois, et utilise un ordre de grandeur pour repérer les erreurs silencieuses.

Indice 1 — méthode. Corrige d'abord ce que Python signale. Quand le programme tourne, compare le résultat à 9,81 N/kg : à 400 km d'altitude, \(g\) doit être un peu plus petit.
Indice 2 — où chercher. Une parenthèse ouverte doit être fermée. Comment écrit-on « au carré » en Python ? Relis les unités de RT et de h, et le signe de l'exposant de G.
Indice 3 — les quatre corrections. Fermer la parenthèse du print ; écrire d**2 ; G = 6.67e-11 ; distances en mètres : RT = 6.37e6 et h = 400e3.
Correction de l'activité 5
G = 6.67e-11         # erreur 3 : exposant négatif
mT = 5.97e24
RT = 6.37e6          # erreur 4 : distances en mètres
h = 400e3

d = RT + h
g = G * mT / d**2    # erreur 2 : la puissance s'écrit **
print("g à l'altitude de l'ISS :", round(g, 2), "N/kg")   # erreur 1 : parenthèse fermée

Erreur 1 (bloquante). La parenthèse du print n'est pas fermée : erreur d'écriture.

Erreur 2 (bloquante). ^ n'est pas la puissance en Python (c'est une opération sur les nombres entiers écrits en binaire) : Python refuse de l'appliquer à un nombre décimal. Le carré s'écrit d**2.

Erreur 3 (silencieuse). 6.67e11 vaut \(6{,}67\times10^{11}\), et non \(6{,}67\times10^{-11}\) : le résultat est \(10^{22}\) fois trop grand.

Erreur 4 (silencieuse). Avec des distances en km, \(d^2\) est \(10^{6}\) fois trop petit, donc \(g\) est \(10^{6}\) fois trop grand.

Résultat après correction. \(g = 8{,}69\ \text{N}\cdot\text{kg}^{-1}\). Avec seulement les erreurs 1 et 2 corrigées, le programme affichait environ \(8{,}7\times10^{28}\ \text{N}\cdot\text{kg}^{-1}\) : une valeur absurde, repérable immédiatement par comparaison avec 9,81.

Q4
Explique comment une simple comparaison avec 9,81 N/kg permet de détecter les erreurs 3 et 4.

À 400 km, on est un peu plus loin du centre de la Terre qu'au sol : \(g\) doit être un peu inférieur à 9,81 N/kg, donc de l'ordre de 9. Un résultat comme \(10^{28}\) ou \(10^{6}\) est impossible : il signale une erreur d'unité ou de puissance de dix. Toujours confronter un résultat à un ordre de grandeur attendu.

7
Conclusion et auto-évaluation
≈ 10 min
Q5
Réponds à la problématique : le poids est-il proportionnel à la masse ? Que devient-il sur un autre astre, ou loin de la Terre ?

Les mesures au dynamomètre montrent que le poids est proportionnel à la masse : \(P = m\,g\), avec \(g_{\text{exp}} = 9{,}78\ \text{N}\cdot\text{kg}^{-1}\), en accord avec \(9{,}81\ \text{N}\cdot\text{kg}^{-1}\) (écart de 0,3 %). Le coefficient \(g\) dépend de l'astre, car le poids est la force de gravitation qu'il exerce : \(g = G\,M/R^{2}\) (1,62 N/kg sur la Lune, 24,8 N/kg sur Jupiter). Loin de la surface, \(g\) diminue comme l'inverse du carré de la distance au centre, sans jamais s'annuler : 8,69 N/kg à l'altitude de l'ISS. La masse, elle, reste partout la même.

Grille d'auto-évaluation

A = je sais faire seul · B = avec un peu d'aide · C = partiellement · D = à retravailler.

CompétenceABCD
Mesurer un poids avec un dynamomètre en limitant les erreurs
Convertir des grammes en kilogrammes et calculer P = m·g
Déterminer g à partir de mesures et calculer un écart relatif
Comparer des mesures et un modèle sur un graphique
Utiliser la loi de gravitation pour calculer g
Détecter une erreur d'unité grâce à un ordre de grandeur
Clique sur A, B, C ou D pour chaque compétence.
Fiche professeur

Organisation

Durée totale estimée : 105 min. En séance de 1 h 30 : partie expérimentale et activités 1 à 3 ; activités 4 et 5 et conclusion en fin de séance, à la maison ou en séance suivante. Le parcours « à l'aise » (activité 1 facultative) fait gagner environ 10 min.

Préparation

Vérifier le zéro des dynamomètres ; prévoir des masses marquées de 50, 100 et 200 g par binôme et une balance commune.

Sécurité

Ne pas dépasser le calibre du dynamomètre (5 N, soit environ 500 g).

Points de vigilance

Faire lire le dynamomètre à hauteur des yeux. Distinguer systématiquement masse (kg, balance) et poids (N, dynamomètre) dans les réponses écrites.

Différenciation

Aide : Donner le tableau de mesures pré-rempli pour les masses ; rappeler g = 9,8 N/kg.

Approfondissement : Utiliser l'activité de gravitation pour calculer son propre poids sur la Lune et sur Mars.

Évaluation (sur 20)

Exploitation de la proportionnalité P = m × g (activités 2 et 3, 8 pts) ; activité 4 (gravitation, 4 pts) ; activité 5 (4 pts) ; Q5 (4 pts).

Les corrections détaillées des activités Python et des questions sont dans les encadrés de chaque partie.

TP terminé, bravo !

Pour consolider : exercices 6, 7 et 10, puis le quiz du cours.

Exercices corrigés Retour au cours