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