Exercice : \(Y=\beta \times X\)

On souhaite comparer le résultat obtenu par une régression classique (« courbe de tendance ») lorsqu'on oubli d'imposer à la droite de passer par le point (0 ; 0) avec la méthode des moindres carrés.

Question

Compléter le code suivant pour utiliser la méthode des moindres carrés dans le cas d'un modèle \(Y=\beta \times X\)

1
# -*- coding: utf-8 -*-
2
"""
3
Created on Mon Jun 17 13:54:58 2024
4
5
@author: Utilisateur
6
"""
7
### Importation des bibliothèques
8
9
import matplotlib.pyplot as plt
10
import numpy as np
11
12
13
###Mesures expérimentales
14
15
# Abscisses
16
x = [x for x in range(1, 11)]
17
18
# Ordonnées
19
y = [0.01, 0.021, 0.032, 0.039, 0.05, 0.059, 0.068, 0.078, 0.089, 0.103]
20
21
### Régression linéaire
22
P = np.polyfit(y, x, 1)
23
print(P)
24
25
### Méthode des moindres carrés
26
 # à compléter
27
### Tracé y=f(x)
28
29
plt.figure()
30
plt.plot(y, x, '.') # '.' pour tracer les points sinon lissage de la courbe sans les points
31
plt.xlabel('I (A)')
32
plt.ylabel('U (V)')
33
plt.title('U = f(I)')
34
plt.grid()
35
36
plt.text (0.06, 3, "Droite d'équation U = a*I + b ")
37
plt.text (0.06, 2, 'a='+'{:.4}'.format(P[0]))
38
plt.text (0.06, 1, 'b='+'{:.4}'.format(P[1]))
39
40
plt.text (0.08, 2, 'a='+'{:.4}'.format(beta))
41
plt.text (0.08, 1, 'b=0')
42
43
plt.show()