mathématiques approfondies (ECG 1re année) · Chapitre 11 · Exercice
Résoudre, et vérifier
Informatique et algorithmique · Matrices et systèmes linéaires · niveau 1 (application)
Énoncé
Utiliser al.solve pour résoudre , puis vérifier par al.inv.
Corrigé
import numpy as np
import numpy.linalg as al
A = np.array([[1.0, 1.0], [2.0, -1.0]])
Y = np.array([3.0, 0.0])
X = al.solve(A, Y)
print(X) # [1. 2.]
print(np.dot(al.inv(A), Y)) # [1. 2.] -- meme resultat
print(np.dot(A, X) - Y) # [0. 0.] -- le vrai controle
La solution est , , ce que le calcul à la main confirme : la seconde équation donne , et la première .
Les deux voies donnent la même chose, mais elles ne se valent pas. solve effectue une factorisation adaptée au second membre ; inv calcule toute l'inverse pour n'en utiliser qu'une multiplication. C'est plus lent et numériquement moins stable — la règle en calcul scientifique est : ne jamais inverser une matrice pour résoudre un système.
Le vrai contrôle est la troisième ligne : recalculer et vérifier que le résidu est nul (à la précision machine près). Comparer deux méthodes qui peuvent se tromper de la même façon ne prouve rien.