Régression linéaire

Entrée de couples, calcul et affichage de la droite de moindres carrés

<sxh python; title : fit_linear.py> #!/usr/bin/env python # -*- coding: utf-8 -*- # version un peu aménagée du travail de BD et EH, ba2 chimie 2012-2013

import matplotlib.pyplot as plt import pylab import numpy

def droite_moindre_carre(x):

  return a * x + b

tabx = [] taby = [] # Avoir le jeu de data

while True:

  x = raw_input("Enter X ")
  y = raw_input("Enter Y ")
  tabx.append(float(x))
  taby.append(float(y))
  another = raw_input("Continue ? y/n \n")
  if another != "y":
      break

# le remplir tant que l'utilisateur n'a pas mis autre chose que y comme réponse

temp_min = 0.1 temp_max = 20 #axes horizontaux

a,b = pylab.polyfit(tabx, taby, 1) # calcul du moindre carre

x_moindre_carre = numpy.linspace(min(tabx), max(tabx), 100) #linspace(a,b,n) ⇒ fournit une liste de valeurs de a à b, en n étapes y_moindre_carre = map(droite_moindre_carre, x_moindre_carre) # calcul des valeurs de la courbe de moidnres carrés # map ⇒ Utilise une fonction sur chaque element d'une liste

plt.axis([temp_min, temp_max,0,100]) plt.plot(tabx, taby, 'or') # o ⇒ point, r ⇒ red plt.plot(x_moindre_carre, y_moindre_carre, 'b') # b = blue, pas de o ⇒ line plt.show() # trace le graphique </sxh>