# TP 8 - RESEAUX - Programme 2 : mesure de longueurs d'onde (question 6) ################################################################################## # Importation des bibliotèques import numpy as np import matplotlib.pyplot as plt import numpy.random as rd ################################################################################## # Entrées des valeurs expérimentales n = # Nombre de traits par unité de longueur en m-1 A COMPLETER un = # Incertitude-type sur n en m-1 A COMPLETER deltan = un*np.sqrt(3) # Demi-intervalle de variation de n en m-1 alpha0_min_degré = # Nombre de degrés mesurés pour alpha0 minimum A COMPLETER alpha0_min_minute = # Nombre de minutes mesurées pour alpha0 minimum A COMPLETER alpha0_min = # alpha0 minimum converti en radian A COMPLETER alpha0_max_degré = # Nombre de degrés mesurés pour alpha0 maximum A COMPLETER alpha0_max_minute = # Nombre de minutes mesurées pour alpha0 maximum A COMPLETER alpha0_max = # alpha0 maximum converti en radian A COMPLETER alpha0 = (alpha0_min + alpha0_max)/2 # alpha0 moyen en radian deltaalpha0 = (alpha0_max - alpha0_min)/2 # demi-largeur de l'intervalle de variation de alpha0 en radian alpha1_min_degré = # Nombre de degrés mesurés pour alpha1 minimum A COMPLETER alpha1_min_minute = # Nombre de minutes mesurées pour alpha1 minimum A COMPLETER alpha1_min = # alpha1 minimum converti en radian A COMPLETER alpha1_max_degré = # Nombre de degrés mesurés pour alpha1 maximum A COMPLETER alpha1_max_minute = # Nombre de minutes mesurées pour alpha1 maximum A COMPLETER alpha1_max = # alpha1 maximum converti en radian A COMPLETER alpha1 = (alpha1_min + alpha1_max)/2 # alpha1 moyen en radian deltaalpha1 = (alpha1_max - alpha1_min)/2 # demi-largeur de l'intervalle de variation de alpha1 en radian ################################################################################## # Calcul de la longueur d'onde lambda et u(lambda) par simulation Monte-Carlo N = 100000 # Nombre d'expériences simulées Lambda = np.zeros(N) # Initialisation du tableau dans lequel on stocke les N valeurs de la longueur d'onde for i in range(0,N): # Pour chacune des N expériences ni = # Tirage aléatoire d'une valeur de n pour l'expérience i A COMPLETER alpha0i = rd.uniform(alpha0-deltaalpha0,alpha0+deltaalpha0) # Tirage aléatoire d'une valeur de alpha0 pour l'expérience i alpha1i = # Tirage aléatoire d'une valeur de alpha1 pour l'expérience i A COMPLETER Dmini = (alpha1i - alpha0i) # Angle de déviation minimum en radian pour l'expérience i Lambda[i] = # Calcul de la longueur d'onde pour l'expérience i A COMPLETER Lambda = Lambda*1e9 # Conversion de la longueur d'onde en nm Lambdamoy = np.mean(Lambda) # Calcul de la moyenne des N valeurs de lambda uLambda = np.std(Lambda,ddof=1) # Calcul de l'écart-type des N valeurs de lambda print('Lambda =',Lambdamoy,'nm') print('u(Lambda) =',uLambda,'nm') ################################################################################## # Tracé de l'histogramme des N valeurs de lambda plt.title('Histogramme de Lambda') plt.xlabel('Lambda en nm') plt.ylabel('Effectifs') plt.hist(Lambda,bins='rice') plt.grid() plt.show() ##################################################################################