Le résultat d'une mesure correspond à l'ensemble des valeurs raisonnablement attribuables à la grandeur mesurée.
L'écart-type de cet ensemble de valeurs est appelée à l'incertitude-type.
Evaluation de type A : Lorsque la mesure est répétée plusieurs fois, l'expérimentateur obtient plusieurs valeurs de la grandeur mesurée. L'incertitude-type est l'écart-type de cet ensemble de valeurs.
Evaluation de type B : Lorsque l'expérience n'est pas répétée plusieurs fois, il faut mettre en oeuvre une autre méthode pour évaluer l'incertitude-type. Dans ce contexte, la méthode de Monte-Carlo consiste à simuler numériquement la répétition de l'expérience. L'écart-type de l'ensemble des valeurs obtenues lors des ces répétitions in silico fournit l'incertitude-type recherchée.
La méthode de Monte-Carlo est très utile à mettre en oeuvre dans le cas d'une propagation d'incertitudes, c'est-à-dire lorsque l'on souhaite déterminer l'incertitude-type sur une grandeur calculée à partir de grandeurs expérimentales, mesurées ou fournies.
Dans le cas d'un titrage acido-basique visant à déterminer la concentration d'un acide fort dans une solution, un expérimentateur :
L'équation de réaction support du titrage s'écrit :
\begin{equation} \mathsf{ H^+(aq)+HO^-(aq)=H_2O(l) \\ } \end{equation}La concentration en acide de la solution titrée s'obtient par une relation du type :
\begin{equation} \mathsf{ [H^+]_{titrée}=\frac{[HO^-]_{titrante} \cdot V_{eq}}{V_{sol}}\\ } \end{equation}L'incertitude sur la concentration en acide est donc le résultat d'incertitudes sur les grandeurs $\mathsf{ [H^+]_{titrée} \text{ , } [HO^-]_{titrante} \text{ et } V_{eq}}$. Celles-ci doivent être évaluées.
Proposition à adapter en fonction de la situation :
volume de solution titrée : l'expérimentateut a utilisé une pipette jaugée de $\mathsf{10mL}$ pour prélever le volume $\mathsf{V_{sol}}$. Selon l'habileté du manipulateur et la classe de la pipette, le volume effectivement prélevé a de grandes chances d'appartenir à l'intervalle $\mathsf{[9,9 \text{ , } 10,1] \text{ mL}}$ (valeurs à adapter selon le contexte et l'expérimentateur),
concentration de la solution titrante : selon la qualité des réactifs utilisés, la nature de la verrerie utilisée et l'habileté du préparateur, la solution titrante de concentration affichée $\mathsf{[HO^-]_{titrante} = 0,10 \text{ mol} \cdot L^{-1}}$ a de grandes chances d'appartenir à l'intervalle $\mathsf{[0.099 \text{ , } 0.101] \text{ mol} \cdot L^{-1}}$ (valeurs à adapter selon le contexte et l'expérimentateur),
volume équivalent : selon l'espacement entre les points de mesure sur la courbe de titrage, selon la méthode retenue pour évaluer le volume équivalent, selon la précision de la burette graduée utilisée, la capacité de l'expérimentateur à lire les volumes sur les graduations et à régler le zéro, on peut penser que le volume équivalent $\mathsf{V_{eq} = 9.6 \text{ mL}}$ a de grandes chances d'appartenir à l'intervalle $\mathsf{[9.6 \text{ , } 9.8] \text{ mL}}$ (valeurs à adapter selon le contexte et l'expérimentateur).
Lister les grandeurs expérimentales utiles pour le calcul de $\mathsf{ [H^+]_{titrée}}$ et associer à chacune, un intervalle au sein duquel on peut raisonnablement penser que celle-ci appartient,
Faire procéder à un tirage au sort aléatoire d'un jeu de valeurs pour chaque grandeur expérimentale $\mathsf{[HO^-]_{titrante} \text{ et } V_{sol} \text{ et } V_{eq}}$ et faire calculer la valeur de concentration $\mathsf{ [H^+]_{titrée}}$ obtenue avec ce jeu de valeurs.
Stocker la valeur dans une liste de résultats,
Calculer la moyenne des valeurs de concentration $\mathsf{ [H^+]_{titrée}}$ obtenues : meilleur estimateur de la concentration recherchée,
Calculer l'écart-type de l'ensemble des valeurs de concentration : incertitude-type associée à $\mathsf{ [H^+]_{titrée}}$.
La bibliothèque numpy
est ici utilisée pour simuler un processus aléatoire (numpy.random
).
Pour réaliser le tirage au sort :
Si l'on suppose que la valeur centrale de l'intervalle n'est pas plus probable que les valeurs latérales de l'intervalle, on peut utiliser la commande numpy.random.uniform(borne_inf , borne_sup)
.
Si l'on suppose que la valeur centrale de l'intervalle est plus probable que les valeurs latérales de l'intervalle, on peut utiliser la commande numpy.random.triangular(borne_inf , centre , borne_sup)
.
Si l'incertitude-type sur la grandeur est fournie (rare), on peut utiliser la commande numpy.random.normal(valeur centralee , incertitude-type)
.
import numpy as np
import matplotlib.pyplot as plt
N=100000 #Nombre de tirages simulés
Ca = [] #Liste des valeurs calculées de la concentration Ca
for k in range(N) : #Procédure de tirage
Vsol = np.random.uniform(9.9,10.1)
Veq = np.random.triangular(9.6 , 9.7 , 9.8)
Cb = np.random.uniform(.099 , .101)
Ca.append(Cb * Veq / Vsol) #Calcul de Ca
Ca_moy = sum(Ca)/N #Calcul de la valeur moyenne
uCa = np.std(Ca,ddof=1) #Calcul de l'écart-type
print(f'Concentration Ca : {Ca_moy} mol/L') #Affichage des résultats
print(f'Incertitude-type u(Ca) : {uCa} mol/L')
L'incertitude-type pourra être donnée avec deux chiffres : \begin{equation}\mathsf{ C_{a} = 0,09700 mol.L^{-1} \\ u_{C_{a}}=0,00089 mol.L^{-1} \\ } \end{equation}