Project DelphiTensors Workshop

Error: una respuesta de pinv demuestra que la matriz era invertible

«pinv devolvió sin quejarse, así que la matriz estaba bien.»

A = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 10.]]) A[:, 2] = A[:, 1] P = np.linalg.pinv(A) assert np.linalg.matrix_rank(A) == 2 assert np.allclose(A @ P @ A, A) assert not np.allclose(P @ A, np.eye(3))

pinv está definida para toda matriz, así que devuelve en silencio sobre una matriz de rango 2 en una caja de 3×3. Las identidades de Moore-Penrose se cumplen y P @ A sigue sin ser la identidad: la columna duplicada costó una dirección, y ninguna excepción iba a decirlo.

Comprueba el rango.