Deux façons d'évaluer une incertitude avec Python. Quand on peut répéter la mesure : l'incertitude de type A, qui diminue avec le nombre de mesures. Quand le résultat se calcule à partir de plusieurs grandeurs mesurées : la simulation de Monte-Carlo.
7.1 Combien de mesures faut-il ?
Rappel de cours — Incertitude de type A
u(x̄) = s(x)√n
L'incertitude-type de la moyenne s'écrit avec un seul chiffre significatif, arrondi à l'excès ; la moyenne est arrondie au même rang.
On reprend les vingt mesures du pH de l'eau du robinet (exercice 3.1). La première partie du programme trace l'histogramme et calcule le résultat. La seconde calcule l'incertitude-type en ne gardant que les 5, 10, 15 puis 20 premières mesures.
- Exécuter. Écrire le résultat de la mesure du pH.
- Compléter les deux lignes de la boucle, puis exécuter de nouveau.
- Comment l'incertitude évolue-t-elle avec le nombre de mesures ? Combien de fois plus de mesures faut-il, environ, pour la diviser par deux ?
- Les
n premières mesures forment la tranche mesures[:n].
- Leur incertitude-type :
np.std(serie, ddof=1) / np.sqrt(n).
Voir une solution
for n in nombres:
serie = mesures[:n]
incertitudes.append(np.std(serie, ddof=1) / np.sqrt(n))
Avec les vingt mesures : moyenne 7,618, u = 0,0093, d'où pH = 7,62 ± 0,01. L'histogramme montre les mesures regroupées autour de 7,62. L'incertitude passe de 0,023 (5 mesures) à 0,014, 0,011 puis 0,009 (20 mesures) : quatre fois plus de mesures la divisent par 2 environ, comme le prévoit le √n de la formule. Mesurer plus améliore la précision, mais de moins en moins vite.
7.2 Monte-Carlo : les fentes de Young
Rappel de cours — Composer des incertitudes
Pour une grandeur obtenue par produit ou quotient, λ = i × bD, on compose les incertitudes relatives :
u(λ) = λ × √(u(i)i)² + (u(b)b)² + (u(D)D)²
Méthode de Monte-Carlo
On tire au hasard des valeurs possibles de chaque grandeur, selon son incertitude ; on recalcule le résultat un grand nombre de fois ; l'écart-type des résultats obtenus est l'incertitude-type du résultat.
Application de la fiche de cours : avec des fentes de Young distantes de b = 0,50 mm (u = 0,01 mm), à D = 1,00 m de l'écran (u = 0,01 m), on mesure l'interfrange i = 2,20 mm (u = 0,05 mm). On calcule λ = i × b / D et son incertitude, de deux façons.
- Compléter les lignes
b_sim, D_sim et lam_sim, puis exécuter. Décrire l'histogramme.
- Exécuter plusieurs fois. L'incertitude obtenue change-t-elle beaucoup ?
- Compléter la ligne
u_formule avec la formule du rappel, et comparer les deux incertitudes. Écrire le résultat.
b_sim et D_sim s'écrivent comme i_sim : loi normale, centrée sur la valeur mesurée, d'écart-type son incertitude-type.
lam_sim se calcule comme λ, avec les tableaux simulés.
- La formule :
lam * np.sqrt((u_i / i) ** 2 + (u_b / b) ** 2 + (u_D / D) ** 2).
Voir une solution
b_sim = np.random.normal(b, u_b, N)
D_sim = np.random.normal(D, u_D, N)
lam_sim = i_sim * b_sim / D_sim
...
u_formule = lam * np.sqrt((u_i / i) ** 2 + (u_b / b) ** 2 + (u_D / D) ** 2)
L'histogramme des 100 000 valeurs simulées est en cloche, centré sur λ = 1,10 × 10⁻⁶ m. D'une exécution à l'autre, u(λ) ne change que dans le troisième chiffre : 3,5 × 10⁻⁸ m, la valeur que donne la formule. On écrit λ = (1,10 ± 0,04) µm. La simulation n'a demandé aucune formule d'incertitude : c'est son intérêt quand la relation devient compliquée.
Bon à savoir
Dans les sujets d'ECE n° 1 et 78 (banque 2026), chaque grandeur est simulée selon ce qu'on sait d'elle : loi normale quand on connaît son incertitude-type, loi uniforme quand on connaît une tolérance « ± » de fabricant (fiole, pipette, fentes). Le sujet 22 fait le même calcul avec une boucle for, un tirage à la fois : plus lent, mais le principe est identique.