Objectif : rechercher ou tester si un modèle mathématique décrit correctement une série de mesures.
La procédure de validation se décompose en plusieurs étapes :
On suppose qu’on dispose d’une série de N valeurs pour la mesure de deux grandeurs x et y.
On suppose également que les incertitudes-types u(x) et u(y) sur x et y sont connues
(valeur commune unique ou séries de N valeurs).
On cherche à tester un modèle numérique (une fonction f) dont la représentation y = f(x) décrirait
les points expérimentaux de manière satisfaisante.
Dans la suite, on liste les bibliothèques et les fonctions nécessaires en construisant un script pas à pas.
Pour chaque fonction, un lien vers la documentation de numpy ou matplotlib est disponible.
La description de ce que retourne la fonction et des paramètres obligatoires est en général simple
(les autres paramètres peuvent être ignorés en première approche).
La lecture et l'interprétation de ce type de documentation est une compétence attendue.
Dans la suite, on va utiliser des données "expérimentales" générées artificiellement par python (ce choix permet d'expérimenter sur des jeux de données différents).
Dans le cas de travaux pratiques, ces données simulées doivent bien entendu être remplacées par les données réelles.
On crée un tableau numpy (array) de N abscisses x et un tableau de N ordonnées y obtenu à partir de x (par exemple y = ax + b) puis bruité aléatoirement. On choisit également les incertitudes-types u(x) et u(y) sur x et y (valeur unique valable pour toutes les mesures ou tableau de N valeurs).Pour représenter les barres d’erreur liées à chaque point expérimental, on fournit à la fonction errorbar les tableaux de valeurs x et y ainsi que la valeur ou le tableau de valeurs pour u(x) et u(y).
Fonction errorbar de matplotlib.pyplot :
Résumé : plt.errorbar(x, y, yerr=None, xerr=None)
→ courbe
Lors d'un ajustement polynômial, la fonction modèle cherchée f(x) est un polynôme p(x) de degré
noté deg
de la forme :
$$p(x) = {p_0}{x^{\deg }} + {p_1}{x^{\deg - 1}} + ... + {p_{\deg - 1}}{x^1} + {p_{\deg }}$$
Noter que, dans cette écriture, p0 est le coefficient du monôme de degré le plus élevé.
La recherche de ce polynôme est effectuée par la fonction polyfit.
Fonction polyfit de numpy :
Résumé : np.polyfit(x, y, deg)
-> array([ p0 , p1,… ])
Un ajustement par une droite affine est donc réalisé en choisissant deg = 1.
On souhaite superposer la courbe représentative du modèle \(f(x) = p(x)\) aux points expérimentaux.
Le tracé des points du modèle est effectué par la fonction polyval.
Fonction polyval de numpy :
Résumé : np.polyval(p, x)
-> courbe
Protocole :
Analyse qualitative
Analyse visuelle des distributions
Calculs