Adloun

Résoudre, et vérifier

Exercice · niveau 1 (application) · mathématiques approfondies (ECG 1re année), chapitre 11 — Informatique et algorithmique · Matrices et systèmes linéaires

É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.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.