import numpy as np
import matplotlib.pyplot as plt

#Diffraction par une fente fine de largeur d de votre choix

#Méthode 1 : Evaluation de d et de u(d) parla méthode Monte Carlo
D=
Deltaxmax=
Deltaxmin=
Deltax=
lo=...... #valeur de la longueur d'onde
d=

#on effectue N tirages au sort de D et Deltax (np.random.normal(a,ua,N) permet
#de tirer au sort N valeurs dans l'intervalle [a-ua,a+ua])
N=100
u_D=
u_Deltax=
MC_D=np.random.normal(D,u_D,N) #
MC_Deltax=np.random.normal(Deltax,u_Deltax,N)

#on en déduit N valeurs de d
MC_d=

#calcul de la valeur moyenne et de l'écart type de d
dmoy=np.mean(...)
u_d=np.std(...)
print('valeur moyenne de d=',  )
print('incertitude type de d=',  )

#Méthode 2 : détermination de d par une régression linéaire

#Rentrer les valeurs expérimentales de D, Deltaxmin et Delta xmax
D=np.array([...,...,...,...,...])
Deltaxmax=np.array([...,...,...,...,...])
Deltaxmin=np.array([...,...,...,...,...])

#En déduire les valeurs de Deltax et u_Deltax exprimées en fonction de
#Deltaxmin et Deltaxmax
Deltax=
u_Deltax=

#tracé la courbe comportant les points expérimentaux Deltax en fonction de D
plt.plot( , ,'*')
plt.grid()
plt.xlabel('  ')
plt.ylabel('   ')
plt.show()

#On modélise la courbe par une droite d'équation Y=aX+b
#en écrivant a,b=np.polyfit(X,Y,1) 
a,b=np.polyfit(..,..,1)
lo=....#valeur de la longueur d'onde
d=.....  #écrire l'expression de d, largeur de la fente en fonction de a,b,lo...
print('d=',d)

#Vérification des résultats
plt.plot( , ,'*') #points expérimentaux  Deltax en fonction de D
plt.plot(, )  #droite de régression linéaire
plt.grid()
plt.xlabel('  ')
plt.ylabel('   ')
plt.show()


#Diffraction par un trou de diamètre d par la méthode de votre choix

