Back
Close

Recueil d'exercices pour apprendre Python au lycée

M_C
133K views
Previous: Compléments sur le module matplotlib Next: Introduction

Cours : Régressions linéaires et d'ordre 2

Nous allons voir dans cette partie comment calculer et afficher des droites et paraboles de régression.

La fonction au coeur de la régression est polyfit du module numpy. Pour l'utiliser il faut donc importer le module numpy. Elle s'utilise de la façon suivante :

import numpy as np

a,b,c = np.polyfit(X,Y,2)

Dans ce qui précède, X et Y désignent respectivement la liste des abscisses et des ordonnées des points du nuage de points et 2 est le degré de la régression. Ici on veut donc approximer le nuage par un polynôme qui sera de la forme ax²+bx+c. np.polyfit renvoie donc les coefficients.

Régression linéaire

Voici un exemple graphique de regression linéaire :

Tracé de la droite de régression
import matplotlib.pyplot as plt
import numpy as np
# Les listes des abscisses et ordonnées :
x=np.array([ 5.13 , 5.7, 5.48, 5.7, 5.66, 5.84, 5.5, 5.69, 5.44, 5.84, 5.82, 5.88, 5.61, 5.65, 5.21, 5.37, 5.46, 5.33, 5.15, 5.74])
y=np.array([ 19.47, 21.67, 20.98, 21.46 , 21.6, 22.29, 20.84, 21.46, 20.8, 21.56, 22.02 , 22.54, 21.2, 21.39, 20.49, 20.46, 20.72, 20.07 , 20.24, 21.6])
# On dessine le nuage de points :
plt.plot(x,y,"o")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Régression d'ordre 2

On peut utiliser des régressions d'ordre 2 lorsqu'on étudie le mouvement d'un objet par exemple. On récupère les coordonnées des points par chronophotographie par exemple ( on peut aller voir cette partie pour voir comment faire) puis on calcule la parabole de régression pour gommer un peu les imprécisions dues à la récupération des données.

Voici un exemple :

Tracé de la parabole de régression
import matplotlib.pyplot as plt
import numpy as np
# Les listes des abscisses et ordonnées des points mesurés
x=np.array([111, 131, 152, 172, 192, 213, 234, 255, 276, 297, 317, 338, 359, 380, 401, 423, 442, 462])
y=np.array([339, 362, 384, 398, 409, 411, 409, 404, 394, 374, 350, 325, 290, 250, 212, 162, 108, 51])
# On affiche les points mesurés
plt.plot(x,y,"x")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants