Physique-chimie · 2de · Enseignement commun · Fiche n°6

Toute pipette
a sa variabilité.

Prélève 25 mL d'eau avec la même pipette, vingt fois de suite, et pèse à chaque fois ce que tu obtiens : tu ne trouveras jamais exactement le même volume. Cette fiche te propose d'explorer avec Python cette variabilité, propre à toute mesure expérimentale, pour cinq pièces de verrerie différentes.

verrerie.py — aperçumesure n°1 — V = 25.00 mL
10 20 30 25

Objectif de la fiche : exploiter des séries de mesures répétées pour introduire la notion de variabilité d'une grandeur physique et d'incertitude-type, en calculant moyennes et écarts-types puis en traçant des histogrammes avec Python.

Cette fiche est autonome : tu n'as besoin d'aucun autre document, toutes les mesures sont recopiées directement dans le script. 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).

00

Les mesures

À savoir
  • 25 mL d'eau sont prélevés avec une pièce de verrerie donnée, puis versés dans un récipient posé sur une balance tarée. La masse pesée est convertie en volume (1 g d'eau ≈ 1 mL). L'opération est répétée 20 fois avec la même pièce.
  • Cinq pièces de verrerie ont été testées : l'éprouvette graduée, la pipette graduée et la pipette jaugée (toutes deux censées délivrer 25 mL), la fiole jaugée et le bécher.
  • Deux catégories existent : une pièce IN (éprouvette, fiole jaugée, bécher) est destinée à contenir un volume donné ; une pièce EX (pipette graduée, pipette jaugée) est destinée à le délivrer. Cette différence aura son importance dans l'analyse finale.
  • Le script ci-dessous est déjà complet : copie-le tel quel dans Thonny (ou dans Basthon) pour commencer.
etape0_mesures.py
import numpy as np
import matplotlib.pyplot as plt

# 20 volumes mesurés (mL) pour chaque pièce de verrerie

# Éprouvette graduée (IN)
Veprouvette = [25.02, 25.06, 25.21, 25.17, 25.12, 25.13, 25.07, 25.20, 25.03, 25.16,
        25.12, 25.16, 25.10, 25.06, 25.08, 25.13, 25.09, 25.16, 25.18, 25.14]

# Pipette graduée (EX)
Vpg = [24.76, 24.75, 24.71, 24.97, 24.61, 24.68, 24.81, 24.82, 24.75, 24.76,
        24.87, 25.1, 24.85, 25, 25.1, 25.12, 24.75, 25.12, 24.9, 24.84]

# Pipette jaugée (EX)
Vpj = [24.97, 24.96, 24.87, 24.94, 24.98, 24.87, 24.96, 24.98, 24.92, 24.96,
        24.98, 24.97, 24.95, 24.98, 24.99, 24.89, 24.88, 24.93, 24.95, 24.95]

# Fiole jaugée (IN)
Vfiole = [24.66, 24.62, 24.80, 24.73, 24.77, 24.71, 24.70, 24.74, 24.73, 24.68,
        24.70, 24.71, 24.77, 24.78, 24.71, 24.75, 24.73, 24.75, 24.68, 24.71]

# Bécher (IN)
Vbecher = [23.24, 25.37, 24.60, 25.45, 23.98, 25.24, 24.69, 25.56, 24.75, 24.45,
        24.44, 25.55, 25.46, 24.63, 24.30, 24.49, 24.12, 25.30, 25.46, 25.39]
01

Moyenne et écart-type

Consigne
  • La fonction np.mean(liste) calcule la moyenne d'une liste de valeurs, et np.std(liste) calcule son écart-type — un indicateur de la dispersion des valeurs autour de la moyenne.
  • Calcule la moyenne et l'écart-type de Vpj (la pipette jaugée), puis affiche-les avec print.
etape1_moyenne_ecarttype.py
# TODO : moyenne et écart-type des volumes délivrés par la pipette jaugée
moyenne_pj = np.____(Vpj)
ecart_type_pj = np.___(Vpj)

print('moyenne pipette jaugée (mL) :', moyenne_pj)
print('écart-type pipette jaugée (mL) :', ecart_type_pj)
Indice

Les deux fonctions recherchées existent directement dans numpy et portent le nom, en anglais, des deux grandeurs statistiques demandées : la moyenne (« mean ») et l'écart-type (« standard deviation », abrégé std).

Résultat attendu

Une moyenne proche de 24,94 mL et un écart-type proche de 0,04 mL : la pipette jaugée délivre un volume très régulier, à peine 4 centièmes de mL d'écart-type autour de sa moyenne.

02

Visualiser la dispersion avec un histogramme

Consigne
  • La fonction plt.hist trace un histogramme à partir d'une liste de valeurs. Elle prend en arguments la liste, le nombre de classes (bins) et éventuellement une couleur.
  • Trace l'histogramme de Vpj, avec bins=10 et une couleur bleue (color='b').
  • Ajoute l'étiquette de l'axe des ordonnées "Fréquence".
etape2_histogramme.py
plt.figure(1)

# TODO : histogramme des volumes délivrés par la pipette jaugée
plt.hist(___, bins=__, color='_')
plt.ylabel("_________")
plt.show()
Résultat attendu

Des barres bleues resserrées autour de 24,95 mL, sur un intervalle très étroit (moins de 0,15 mL de large en tout) : c'est la traduction visuelle du petit écart-type que tu viens de calculer.

03

Superposer deux histogrammes

Consigne
  • Pour comparer deux distributions sur le même graphe, plt.hist accepte une liste de listes : plt.hist([Vpj, Vpg], ...) trace les deux histogrammes côte à côte.
  • Pour que les deux histogrammes utilisent la même échelle, précise range=(min(liste_totale), max(liste_totale)), où liste_totale juxtapose toutes les valeurs des deux listes (Vpj + Vpg concatène deux listes Python).
  • Utilise bins=10, et deux couleurs différentes avec color=['b', 'y'].
  • Ajoute une légende avec plt.legend(['Pipette jaugée', 'Pipette graduée']) pour savoir quelle couleur correspond à quelle pipette.
etape3_superposition.py
plt.figure(2)

# TODO : liste juxtaposant toutes les valeurs, pour caler l'échelle des deux histogrammes
liste_totale = ___ + ___

# TODO : histogrammes superposés de Vpj et Vpg
plt.hist([___, ___], range=(min(___________), max(___________)), bins=10, color=['_', '_'])
plt.ylabel("_________")
plt.legend(['______________', '_______________'])
plt.show()
Indice

Vpj + Vpg ne fait pas une addition terme à terme ici : pour des listes Python (pas des tableaux numpy), + les met bout à bout, ce qui donne une liste de 40 valeurs.

Résultat attendu

Deux nuages de barres bien distincts : les barres bleues (pipette jaugée) resserrées autour de 24,9-25,0 mL, et les barres jaunes (pipette graduée) beaucoup plus étalées, de 24,6 à 25,1 mL environ — la dispersion de la pipette graduée saute aux yeux.

04

Analyse et conclusion

Moyennes et écarts-types obtenus (les 5 pièces)

pièceÉprouvettePipette graduéePipette jaugéeFiole jaugéeBécher
Moyenne (mL)25,1224,8624,9424,7224,82
Écart-type (mL)0,0550,160,0390,0430,64
À retenir
  • L'écart-type d'une distribution est un indicateur de la dispersion des volumes délivrés : plus il est grand, plus les mesures s'étalent autour de la moyenne. Cette étude statistique permet de déterminer l'incertitude-type à associer à une mesure unique — pour la pipette jaugée, on retiendra u(Vpj) ≈ 0,04 mL.
  • La pipette graduée et la pipette jaugée ont des moyennes très proches (24,86 et 24,94 mL), mais un écart-type très différent (0,16 contre 0,04 mL) : la pipette jaugée est nettement plus précise, bien qu'elle ne soit graduée qu'avec un seul trait.
  • La fiole jaugée a un écart-type comparable à celui de la pipette jaugée (0,043 contre 0,039 mL), mais sa moyenne (24,72 mL) est plus éloignée des 25 mL visés. Cela s'explique par leur fonction différente : une pièce IN comme la fiole est conçue pour contenir précisément un volume, une pièce EX comme la pipette jaugée est conçue pour le délivrer précisément — deux usages, deux façons d'être fiable.
  • Conséquence pratique : pour réaliser une dilution avec la meilleure précision possible, mieux vaut prélever le liquide avec une pipette jaugée, puis le diluer dans une fiole jaugée — chaque pièce utilisée pour l'usage auquel elle est destinée.

Pense-bête — statistiques et histogrammes

np.mean(liste)moyenne des valeurs
np.std(liste)écart-type des valeurs
liste1 + liste2concatène deux listes Python
binsnombre de classes de l'histogramme
range=(min,max)même échelle pour comparer deux histogrammes
IN / EXpièce qui contient / qui délivre un volume

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.