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).
Les mesures
- 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.
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]
Moyenne et écart-type
- La fonction
np.mean(liste)calcule la moyenne d'une liste de valeurs, etnp.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 avecprint.
# 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).
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.
Visualiser la dispersion avec un histogramme
- La fonction
plt.histtrace 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, avecbins=10et une couleur bleue (color='b'). - Ajoute l'étiquette de l'axe des ordonnées
"Fréquence".
plt.figure(1)
# TODO : histogramme des volumes délivrés par la pipette jaugée
plt.hist(___, bins=__, color='_')
plt.ylabel("_________")
plt.show()
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.
Superposer deux histogrammes
- Pour comparer deux distributions sur le même graphe,
plt.histaccepte 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_totalejuxtapose toutes les valeurs des deux listes (Vpj + Vpgconcatène deux listes Python). - Utilise
bins=10, et deux couleurs différentes aveccolor=['b', 'y']. - Ajoute une légende avec
plt.legend(['Pipette jaugée', 'Pipette graduée'])pour savoir quelle couleur correspond à quelle pipette.
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.
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.
Analyse et conclusion
Moyennes et écarts-types obtenus (les 5 pièces)
| pièce | Éprouvette | Pipette graduée | Pipette jaugée | Fiole jaugée | Bécher |
|---|---|---|---|---|---|
| Moyenne (mL) | 25,12 | 24,86 | 24,94 | 24,72 | 24,82 |
| Écart-type (mL) | 0,055 | 0,16 | 0,039 | 0,043 | 0,64 |
- 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 + liste2 | concatène deux listes Python |
| bins | nombre de classes de l'histogramme |
| range=(min,max) | même échelle pour comparer deux histogrammes |
| IN / EX | pièce qui contient / qui délivre un volume |
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.