Outils pour utilisateurs

Outils du site


bts:python:propagationincertitude

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bts:python:propagationincertitude [2024/01/06 14:01] – [Calcul des $Y$] goupillwikibts:python:propagationincertitude [2026/02/12 19:04] (Version actuelle) – [Calcul des $y$] goupillwiki
Ligne 1: Ligne 1:
 ====== Propagation d'incertitude ====== ====== Propagation d'incertitude ======
 +
 +{{ :bts:python:propagation_incertitudes.td.pdf |Version imprimable}}
  
 Dans ce TD on veut mettre en évidence des phénomènes de propagation d'incertitude. Dans ce TD on veut mettre en évidence des phénomènes de propagation d'incertitude.
Ligne 5: Ligne 7:
 Commençons par importer toutes les bibliothèques et fonctions utiles : Commençons par importer toutes les bibliothèques et fonctions utiles :
 <code python> <code python>
-from random import random, gauss+from random import random, seed, gauss
 import numpy as np import numpy as np
 +seed(45)
 </code> </code>
  
Ligne 18: Ligne 21:
 On supposera que $X$ est aléatoire et suit une lui uniforme sur $[5-0,1\,;\,5+0,1]$. $Y$ est donc aléatoire également et on souhaite visualiser la distribution de $Y$. On supposera que $X$ est aléatoire et suit une lui uniforme sur $[5-0,1\,;\,5+0,1]$. $Y$ est donc aléatoire également et on souhaite visualiser la distribution de $Y$.
  
-==== Simulation de $X$ ====+<WRAP tip> 
 +Quand on écrit $X$, on est dans le domaine des probabilités. On parle alors des valeurs que pourrait prendre $x$ avant même d'avoir fait la moindre expérience. Les probabilités sont là pour faire des prédiction sur ce qui pourrait arriver. 
 + 
 +Si on écrit $x$, on parle alors de résultats qui se sont effectivement produits et que l'on constate. On peut alors faire des statistiques. 
 + 
 +L'espérance $E(X)$ et l'écart-type $\sigma(X)$ servent à prédire les valeurs que l'on devrait obtenir si on calcule la moyenne $\overline{x}$ t l'écart-type $\sigma_x$ (en version statistique) 
 + 
 +Dans ce TD, nous allons faire l'expérience avec Python de sorte que nous obtiendrons des résultats statistiques. Nous vérifierons ensuite si ces résultats correspondent aux prédictions que les probabilités nous auraient permis de faire. 
 +</WRAP> 
 + 
 + 
 +==== Simulation de $x$ ====
  
 <code python> <code python>
Ligne 25: Ligne 39:
 def tirage(reference, incertitude): def tirage(reference, incertitude):
     '''     '''
-    reference: valeur de référence. Exemple 5 pour X +    reference: valeur de référence. Exemple 5 
-    incertitude: marge d'erreur. Exemple 0,pour X+    incertitude: marge d'erreur. Exemple 0.1
     '''     '''
     return reference + (2*random()-1)*incertutude     return reference + (2*random()-1)*incertutude
          
-Xs = [tirage(5, 0.1) for i in range(N)]+x_values = [tirage(5, 0.1) for i in range(N)]
 </code> </code>
  
-Ce code permet de simuler ''N'' tirage de la grandeur $X$. Vous pouvez l'exécuter et calculer en console les paramètres statistiques de ''Xs'' :+Ce code permet de simuler ''N'' tirage de la grandeur $x$. Vous pouvez l'exécuter et calculer en console les paramètres statistiques de ''%%x_values%%'' :
  
 <code python> <code python>
->>> np.mean(Xs+>>> np.mean(x_values
->>> np.std(Xs)+>>> np.std(x_values)
 >>> 0.2/np.sqrt(12) >>> 0.2/np.sqrt(12)
 </code> </code>
  
-==== Calcul des $Y$ ====+==== Calcul des $y$ ====
  
 <code python> <code python>
Ligne 47: Ligne 61:
     return 3*x**2     return 3*x**2
  
-Ys = [f(x) for x in Xs]+y_values = [f(x) for x in x_values]
 </code> </code>
  
-On obtient ainsi les ''N'' valeurs de $Y$ correspondant aux $X$ précédents. Là encore on peut relever les paramètres statistiques.+On obtient ainsi les ''N'' valeurs de $y$ correspondant aux $x$ précédents. Là encore on peut relever les paramètres statistiques.
  
 <code python> <code python>
->>> np.mean(Ys+>>> np.mean(y_values
->>> np.std(Ys+>>> np.std(y_values
->>> np.std(Ys) / np.std(Xs)+>>> np.std(y_values) / np.std(x_values)
 </code> </code>
  
-À quoi reliez-vous le résultat du dernier calcul ?+Le dernier calcul correspond à $\frac{\sigma_y}{\sigma_x}$. Comparez ce résultat à $\left|f'(\overline{X})\right|$.
  
 ==== Représentation graphique ==== ==== Représentation graphique ====
Ligne 69: Ligne 83:
  
 plt.figure() plt.figure()
-plt.hist(Ys, bins=20, density = True, edgecolor='black')+plt.hist(y_values, bins=20, density = True, edgecolor='black')
 plt.show() plt.show()
 </code> </code>
  
-Vous constatez que $Y$ a une densité à peu près uniforme, tout comme $X$.+Vous constatez que $Y$ a une densité à peu près uniforme, tout comme $X$. Cela ne serait plus vrai si l'incertitude de $x$ devenait plus importante (ce que vous pouvez vérifier !) 
 + 
 +==== Cas Gaussien ==== 
 + 
 +Recommencez avec 
 + 
 +<code python> 
 +x_values = [gauss(5,0.05) for i in range(N)] 
 +</code> 
 + 
 +On a toujours $x = 5 \pm 0,1$ mais cette fois il ne faut pas comprendre l'incertitude comme un intervalle $[4,9\,;\,5,1]$ dont $x$ ne pourrait pas sortir. Ce n'est plus maintenant qu'un intervalle de fluctuation à 95 %. 
 + 
 +Faites la simulation, calculez $\overline{y}$ et $\sigma_y$. Constatez que $y$ a bien une répartition gaussienne. 
 + 
 +On peut donc écrire $y = nominal \pm incertitude$. Puisque $y$ est gaussien, on peut dire $nominal = \overline{y}$ et $incertitude = 2 \sigma_y$.
  
 ===== Deux variables ===== ===== Deux variables =====
bts/python/propagationincertitude.1704546068.txt.gz · Dernière modification : de goupillwiki