import numpy as np
import matplotlib.pyplot as plt

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

#Méthode 1 de détermination de d 

#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)

#Méthode 2 : Evaluation de d et de u(d) parla méthode Monte Carlo
D=
u_D=
Deltaxmax=
Deltaxmin=
Deltax=
u_Deltax=
lo=

#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
al_D=np.random.normal(..,...,N) #
al_Deltax=np.random.normal(...,...,N)

#on en déduit N valeurs de d
al_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=',  )

#Diffraction par un trou de diamètre d

#Méthode 1 de détermination de d 

#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
Deltax=..
u_Deltax=..

#tracé 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 
#c1,c0=np.polyfit(X,Y,1) modélise la courbe par Y=c1X+c0
c1,c0=np.polyfit(..,..,1)
lo=... #valeur de la longueur d'onde
d=...      #expression de d, diamètre du trou en fonction de c1,c0,lamba...
print('d=',d)

#Méthode 2 : Evaluation de d et de u(d) parla méthode Monte Carlo

D=
u_D=
Deltaxmax=
Deltaxmin=
Deltax=
u_Deltax=
lo=

#on effectue N tiages au sort de D et Deltax
N=100
al_D=np.random.normal( ,  ,N)
al_Deltax=np.random.normal( ,  ,N)

#on en déduit N valeurs de d
al_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=',  )

#réseau de diffraction: détermination expérimentale de a
p=np.array([])
x=np.array([])
D=

