
import numpy as np
from matplotlib.pyplot import *

L = 500 # longueur d'onde (nm)
n = 300 # nombre de traits par mm
a = 1/n
i = np.linspace(-2,2,1000) # angle d'incidence en degrés
alpha_1 = np.arcsin(L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi
alpha_m1 = np.arcsin(-L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi
Lmesuree = a*1e6*np.sin((alpha_1-alpha_m1)/2*np.pi/180)
figure()
plot(i,Lmesuree-L,'k-')
xlabel(r"$i\ (\rm deg)$")
ylabel(r"$\lambda_{\rm mes}-\lambda\ (\rm nm)$")
title(r"$n=%d\ {\rm t/mm},\ \lambda=%d\,\rm nm$"%(n,L))
grid()
            

i = np.linspace(-10,10,1000) # angle d'incidence en degrés
alpha_1 = np.arcsin(L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi
alpha_m1 = np.arcsin(-L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi          
beta_1 = alpha_1 - i
beta_m1 = alpha_m1-i
figure()
plot(i,beta_1,'k-',label=r"$\beta_1$")
plot(i,-beta_m1,'k--',label=r"$\beta_{-1}$")
xlabel(r"$i\ (\rm deg)$")
legend(loc='upper right')
title(r"$n=%d\ {\rm t/mm},\ \lambda=%d\,\rm nm$"%(n,L))
grid()
            

i = np.linspace(-20,20,1000) # angle d'incidence en degrés
alpha_2 = np.arcsin(2*L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi
alpha_m2 = np.arcsin(-2*L*1e-6/a+np.sin(i*np.pi/180))*180/np.pi
beta_2 = alpha_2 - i
beta_m2 = alpha_m2-i
figure()
plot(i,beta_2,'k-',label=r"$\beta_2$")
plot(i,-beta_m2,'k--',label=r"$\beta_{-2}$")
xlabel(r"$i\ (\rm deg)$")
legend(loc='upper right')
title(r"$n=%d\ {\rm t/mm},\ \lambda=%d\,\rm nm$"%(n,L))
grid()
            
