Outils pour utilisateurs

Outils du site


bts:python:propagationincertitude

Ceci est une ancienne révision du document !



Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Propagation d'incertitude

Dans ce TD on veut mettre en évidence des phénomènes de propagation d'incertitude.

Une seule variable

On se place dans le cas où $y = f(x)$ et où $x$ est connu avec une incertitude. On veut évaluer l'incertitude sur $y$.

À titre d'exemple, on prend $y = 3\,x^2$. On sait que $x = 5 \pm 0,1$.

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$

from random import random
import numpy as np

N = 10000

def tirage(reference, incertitude):
    '''
    reference: valeur de référence. Exemple 5 pour X
    incertitude: marge d'erreur. Exemple 0,1 pour X
    '''
    return reference + (2*random()-1)*incertutude
    
Xs = [tirage(5, 0.1) for i in range(N)]

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 :

>>> np.mean(Xs)
>>> np.std(Xs)
>>> 0.2/np.sqrt(12)

Calcul des $Y$

def f(x):
    return 3*x**2

Ys = [f(Xs[i]) for i in range(N)]

On obtient ainsi les N valeurs de $Y$ correspondant aux $X$ précédents. Là encore on peut relever les paramètres statistiques.

>>> np.mean(Ys)
>>> np.std(Ys)
>>> np.std(Ys) / np.std(Xs)

À quoi reliez-vous le résultat du dernier calcul ?

Représentation graphique

On souhaite afficher la distribution de $Y$. Il faut donc faire un comptage. Rien de plus simple :

import matplotlib.pyplot as plt

plt.figure()
plt.hist(Ys, bins=20, density = True, edgecolor='black')
plt.show()

Vous constatez que $Y$ a une densité à peu près uniforme, tout comme $X$.

Deux variables

Modifiez le programme pour le cas suivant : $y = 3\,x_1^2 + 2 \,x_2$ avec $x_1 = 5 \pm 0,1$ et $x_2 = 7 \pm 0,2$.

bts/python/propagationincertitude.1676410074.txt.gz · Dernière modification : de goupillwiki