# -*- coding: utf-8 -*-


# **Estimation de l'incertitude d'une grandeur composée par la méthode de Monte-Carlo


## Importation des bibliothèques utiles
import numpy as np
import numpy.random as rd

## Définition des données constantes


## Saisie des données expérimentales et calcul des grandeurs

grandeur1 = #à compléter
u_g1 = #à compléter. Incertitude sur la grandeur1

grandeur2= #à compléter
u_g2 =  #à compléter

grandeur3 = #à compléter
u_g3 = #à compléter

## Calcul de la grandeur composée

def calculGC(val1, val2, val3):
    return  #à compléter

##Simulation pour obtenir l'incertitude sur la grandeur composée
N_sim=100 #nombre de simulations à faire

GC_MC = np.zeros(N_sim) # un vecteur rempli de zéros qui contiendra les N_sim simulations de la grandeur composée


for i in range(N_sim):
    val1 = grandeur1 + rd.normal(0,u_g1)
    val2 = grandeur2 + rd.normal(0,u_g2)
    val3 = grandeur3 + rd.normal(0,u_g3)
    GC_MC[i] = calculGC(val1, val2, val3)

##extraction du résultat

GC= np.mean(GC_MC, axis=0) #calcul de la valeur moyenne des grandeurs composées obtenues
u_GC= np.std(GC_MC, axis=0)  # écart-type de des grandeurs composées obtenues

print ("resultat= %.3f +- %.3f" %(GC, u_GC) ) #écriture du résultat avec 3 chiffres significatifs. A modifier si besoin
