Équations normales en numpy
Résoudre w = (XᵀX)⁻¹Xᵀy et lire ses limites.
La solution directe
Avec biais intégré (colonne de 1 dans X) :
import numpy as np
Xb = np.array([[1., 1.], [1., 2.], [1., 3.]])
y = np.array([2., 4., 5.])
w = np.linalg.inv(Xb.T @ Xb) @ Xb.T @ y
print(w) # [0.667 1.5] = [b, a]
Quand ça casse
XᵀX singulière (colinéarité) → inv explose ou lève. En pratique on utilise lstsq ou pinv, puis Ridge. Retenez : solution directe = exacte et rapide en petit p, instable si redondance, coûteuse en grand p (inversion en O(p³)).
Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.