import numpy as np # Numpy permet de faire des calculs simples sur des arrays import matplotlib.pyplot as plt # Matplotlib pour tracer des graphes # Enregistrement des données R = np.array([ 100,200,300,400,500,600,700,800,900,1000]) tau = np.array([151,240,356,458,547,651,741,843,949,1041])*1e-6 # Valeurs d'incertitudes-type données dans l'énoncé u_R = 0.02*R u_tau = 0.04*tau # Remarque : en cas de mesure directe, il est plus probable d'avoir accès à la précision de mesure plutôt qu'à l'incertitude-type. #Dans ce cas, on peut laisser la précision mais il ne faut pas oublier d'enlever la racine de 3 dans la simulation # Cacul de la valeur mesurée par régression unique pente_moy,ordonnee_moy = np.polyfit(R,tau,1) # Estimation de l'incertitude par monte carlo N = 10000 pente = [] ordonnee = [] for i in range(N): l = len(R) mx= R + u_R*np.sqrt(3)*np.random.uniform(-1,1,l) my= tau + u_tau*np.sqrt(3)*np.random.uniform(-1,1,l) # Ne pas oublier de remplacer u * sqrt(3) par Delta si on a mesuré la précision p=np.polyfit(mx,my,1) pente.append(p[0]) ordonnee.append(p[1]) u_pente = np.std(pente,ddof=1) u_ordonnee = np.std(ordonnee,ddof=1) print('Pente=', pente_moy) print('incertitude sur la pente=',u_pente) print('Ordonnee =', ordonnee_moy) print('incertitude sur ordonnee=',u_ordonnee)