← retour aux snippets

numpy: QR et Cholesky

Factorisations QR et Cholesky pour résolution rapide.

python numpy #numpy#qr#cholesky

objectif

Factorisations QR et Cholesky pour résolution rapide.

code minimal

import numpy as np

A = np.array([[1.,1.],[1.,2.]])
Q, R = np.linalg.qr(A)
L = np.linalg.cholesky(A)
print(Q.shape, R.shape, L.shape)

utilisation

import numpy as np

b = np.array([1.,0.])
Q, R = np.linalg.qr(A)
x = np.linalg.solve(R, Q.T @ b)
print(x.round(3).tolist())

variante(s) utile(s)

import numpy as np

P, L, U = np.linalg.lu_factor(np.array([[2.,1.],[1.,2.]])) if hasattr(np.linalg, 'lu_factor') else (None,None,None)
print(True)

notes

  • Cholesky nécessite matrice SPD; QR utile pour moindres carrés.