Exercices sur machine#
Lissage par filtre moyenneur#
Le fichier temperatures.csv regroupe l’ensemble des températures moyennes à la surface de la Terre pour chaque année depuis 1880. Les températures sont données par rapport à la moyenne des températures relevées sur la période de référence 1951–1980. Ces données illustrent la hausse de températures mondiales.
Chargez le fichier temperatures.csv et affichez les données.
Appliquez un filtre moyenneur sur les données pour obtenir une courbe plus lisse. Choisissez le filtre de sorte à obtenir des températures lissées sur une fenêtre de 5 ans, qui est le choix traditionnel pour ces données.
Approximation par moindres carrés#
À la place d’un filtre moyenneur, on souhaite effectuer une approximation de l’évolution des températures par une parabole.
Calculez l’approximation des températures (temperatures.csv) par une parabole. Pour cela :
normalisez les abscisses entre 0 et 1 pour éviter les problèmes numériques ;
la transposée est obtenue avec
numpy.transpose
;la multiplication matricielle est obtenue avec
numpy.dot
;l’inverse matricielle est obtenue avec
numpy.linalg.pinv
;attention à la dimension des matrices et vecteurs (vérifiez bien chaque étape du calcul avec
shape
!) ;Pour générer la matrice \(H\) des coefficients et le vecteur des données \(y\), vous pouvez vous inspirer du code suivant :
H = np.transpose( np.array([ n**0, n**1, n**2 ]) )
Affichez le résultat sur la courbe des températures pour vérifier la bonne adéquation de l’approximation par rapport aux données.
En définissant une nouvelle matrice \(H\), extrapolez l’évolution des températures pour connaître, selon ce modèle, la hausse des températures attendue l’année de votre 70e anniversaire…