Courbe modèle et régression linéaire avec python

Les mesures expérimentales réalisées en travaux pratiques nécessitent souvent une exploitation graphique afin de mieux appréhender l’ensemble des résultats. Pour nous y aider, nous disposons d’outils comme les tableurs (Excel, Calc…), le logiciel LatisPro et le langage de programmation Python

Objectifs en classe de terminale

Capacités et compétences travaillées

Les bibliothèques utiles tracer une courbe et son modèle

Mathplotlib : la bibliothèque pour tracer des graphiques

import matplotlib.pyplot as plt

plt est le diminutif de mathplotlib.pyplot lorsque nous appellerons des fonctions propres à cette bibliothèque qui permet de tracer de nombreux graphiques :

  • plt.plot (X, Y, -rx) : permet de tracer le graphique y = f(x) avec des croix bleues.
  • plt.title (« Texte ») : donne un titre au graphique.
  • plt.xlabel (« Texte ») : permet de nommer l’axe des abscisses X.
  • plt.ylabel (« Texte ») : permet de nommer l’axe des ordonnées Y.
  • plt.show () : Affiche le graphique.

Pour aller plus loin

Si vous souhaiter customiser davantage votre graphique, reportez vous à cette page web :

Source – physique-chimie-python.readthedocs.io/

Numpy et Scipy.stats : les bibliothèques pour la régression linéaire

import numpy as np

np est le diminutif de numpy lorsque nous appellerons des fonctions propres à cette bibliothèque qui permet de effectuer des calculs numériques :

  • np.array (liste) : permet de convertir  les listes en tableaux afin d’effectuer des calculs à l’intérieur.
import scipy.stats as stats

stats le diminutif de scipy.stats lorsque nous appellerons des fonctions propres à cette bibliothèque qui permet de calculer des valeurs statistiques :

  • stats.linregress (liste) : permet de renvoyer 5 valeurs : le coefficient directeur a, l’ordonnée à l’origine b, le coefficient de corrélation R2, la p_value (??) et l’écart type.

Pour aller plus loin

Si vous souhaiter davantage de fonctions pour calculer des statistiques, reportez vous à ces pages web.

Source – courspython.com

Tracer la courbe et son modèle

Soit la situation suivante :

Une élève décide de tester la loi d’Ohm qui nous dit : « la tension U aux bornes d’un conducteur ohmique est proportionnelle à l’intensité I qui le traverse ». Sa série de mesure est consignée dans le tableau ci-dessous.

Tableau de mesure de la tension en fonction de l'intensité qui traverse un conducteur ohmique

A l’aide de la simulation d’expérience « Neticiel python » ci-dessous ou de votre logiciel ou application python, tracer la courbe et la régression linéaire de ces série de mesure.

Néticiel python

Ce neticiel proposé par trinket.io vous permet d’écrire ou de coller votre code python à gauche puis de le tester / exécuter en appuyant sur la flèche.

Etape 1 : Importer les bibliothèques présentées précédemment.

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats 

Etape 2 : Traduire sous forme de liste les mesures expérimentales ; nommer judicieusement les listes.

U = [ 1.4,  3.7 , 5.5 , 7.7 , 9.6 ]
I = [ 0.8 , 2.0 , 2.8 , 3.8 , 4.5 ]

Etape 3 : Vous devez convertir les listes précédentes en tableau en utilisant la fonction : np.array(liste)

U = np.array (U)
I = np.array (I)

Etape 4 :

  • Utiliser la fonction stats.linregress(tableau) pour calculer les différents paramètres de la régression linéaire (voir détails plus haut).
  • Avec la fonction print(), vous pouvez les afficher sur la console.
(a, b, R2, _, uA ) = stats.linregress (x, y)
print (a, b, R2, _, uA ) 

Etape 5 : Ecrire l’équation de la droite affine qui modélisera notre courbe.

ymodele = a*x + b

Etape 6 :

  • Créer le graphique avec U en ordonnée et I en abscisse.
  • Ajouter sur ce même graphique la droite modèle.
  • Afficher le graphique.
plt.plot ( x, y, 'ro')
plt.plot ( x, ymodele , 'b+:')
plt.show()

Laisser un commentaire