import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# longueurs d'ondes lampe Hg et laser HeNe
lambda_hg = np.array([405,436,546,578,633])
# position des raies spectrales sur le réticule
#### A COMPLETER: remplacer les ... par vos mesures
posi_hg = np.array([ ... , ... , ... , ... , ... ])
# modélisation par un polynome
def polynome_deg_deux(x, a, b, c):
return a * x**2 + b * x + c
# calculs des paramètres du modèle décrivants au mieux l'expérience
[a,b,c] , pcov = curve_fit(polynome_deg_deux, posi_hg, lambda_hg)
# affichage des coefficients du polynome
print("a=",a," b=",b," c=",c)
# calcule de la courbe modélisée
x_modele = np.linspace(np.min(posi_hg), np.max(posi_hg) , 50)
y_modele = polynome_deg_deux(x_modele, *[a,b,c])
# affichage des différents graphiques
plt.plot(posi_hg, lambda_hg, 'b+', label='expérience')
plt.plot(x_modele, y_modele, 'r--', label= 'modèle: a=%5.3f, b=%5.3f, c=%5.3f' %tuple([a,b,c]))
#### A COMPLETER: placez les bonnes unités sur les axes
plt.xlabel('position sur le réticule/ ...')
plt.ylabel('lambda / ...')
plt.legend()
plt.show()
# utilisation du modèle pour calculer la longueur d'onde de la
# raie jaune du sodium