La pseudoinversa de Moore Penrose es una aplicación directa de *singular value decomposition (*SVD), que nos permite resolver en determinados momentos sistemas de ecuaciones lineales con múltiples soluciones.
La matriz pseudoinversa es utilizada cuando en un sistema de ecuaciones lineales, representado por Ax = B, x no tiene inversa. Esta operación es única y existe si se verifican 4 condiciones.
Ejemplo de pseudoinversa de una matriz
En el siguiente ejemplo, verás las 4 condiciones para obtener una fórmula Penrose.
Cómo calcular la matriz pseudoinversa de Moore Penrose
Para calcularla se siguen los siguientes pasos:
Calcular las matrices U, D, y V (matrices SVD) de A.
Construir D_pse: una matriz de ceros que tiene igual dimension de A, y que luego se transpone.
Reemplazar la submatriz D_pse[: D.shape[0], : D.shape[0]] por np.linalg.inv(np.diag(D))
Cómo calcular la pseudoinversa de Moore Penrose en Python
Para calcularla automáticamente por Python: np.linalg.pinv(A)Lo que obtenemos con A_pse es una matriz muy cercana a la inversa. Cercano en el sentido de que minimiza la norma dos de estas distancias. O sea, de estos errores que estamos cometiendo.
A_pse no es conmutativa, es decir, A_pse·A ≠ A·A_pse