Bac à sable Chaînes et listes Fonctions Numpy Piles Récursivité Tris

Modélisation


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 :

  • Représentation graphique des points expérimentaux avec leurs barres d’incertitude.
  • Superposition de la courbe représentative du modèle testé.
  • Observation graphique des résidus/écarts normalisés.
  • Conclusion.

Problématique

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.

Outils python

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.


1 - Données expérimentales

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


2 - Courbe expérimentale - Représentation des barres d’erreur

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 :

  • Arguments : les tableaux de valeurs x et y ainsi que les valeurs ou les tableaux de valeurs yerr et xerr
  • Effectue un tracé

Résumé : plt.errorbar(x, y, yerr=None, xerr=None) → courbe


3 - Ajustement polynômial

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 :

  • Arguments : les tableaux de valeurs x et y ainsi que le degré deg du polynôme cherché
  • Renvoie : le tableau des coefficients pi du polynôme

Résumé : np.polyfit(x, y, deg) -> array([ p0 , p1,… ])

Un ajustement par une droite affine est donc réalisé en choisissant deg = 1.


4 - Courbe représentative du modèle polynômial

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 :

  • Arguments : le tableau p (coefficients du polynôme) et le tableau des valeurs x
  • Effectue un tracé

Résumé : np.polyval(p, x) -> courbe


5 - Validation du modèle – Incertitudes sur les paramètres – Simulation Monte-Carlo

Protocole :

Analyse qualitative

  1. Calcul des résidus \(y-y_{mod}\) et des écarts normalisés \((y-y_{mod}) / u(y)\)
  2. Représentation des écarts normalisés en fonction de x afin de vérifier que :
    • la distribution n’a pas de forme définie ;
    • la majorité des points possède un écart normalisé compris entre -2 et 2
Si ces conditions ne sont pas vérifiées, le modèle n’est pas adapté aux données.

Incertitudes sur les paramètres du modèle
  1. Simulation de Monte-Carlo pour les \(N_{MC}\) valeurs de y en utilisant l’incertitude-type u(y).
  2. Ajustement polynômial sur ces nouvelles valeurs ; on en déduit les paramètres du modèle avec ces données simulées.
  3. Itération du procédé (étapes 3 et 4) sur un très grand nombre de tirages (avec stockage des paramètres).
  4. Analyse statistique des distributions obtenues pour les paramètres : histogrammes, moyennes, écarts-types.
Conclusion
Analyse des incertitudes relatives…

Analyse qualitative de la distribution des écarts normalisés


Incertitudes sur les paramètres du modèle - Simulation de Monte-Carlo

Analyse visuelle des distributions


Calculs