Adloun

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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre