← retour aux snippets

numpy: linalg solve vs inverse

Résoudre Ax=b via solve plutôt que calculer l'inverse.

python numpy #numpy#linalg#solve

objectif

Résoudre Ax=b via solve plutôt que calculer l’inverse.

code minimal

import numpy as np

A = np.array([[3.,2.],[1.,2.]])
b = np.array([2.,0.])
x = np.linalg.solve(A, b)
print(x.round(3).tolist())

utilisation

import numpy as np

A = np.array([[1.,2.],[3.,4.]])
print(np.allclose(A @ np.linalg.inv(A), np.eye(2)))

variante(s) utile(s)

import numpy as np

U, s, Vt = np.linalg.svd(A)
print(len(s))

notes

  • Évitez inv sauf nécessité; solve est plus stable.