Cálculo de la seudo inversa de Moore-Penrose en Python
Clase 13 de 18 • Curso de Álgebra Lineal Aplicada para Machine Learning
Resumen
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))
- Reconstruir pseudoinversa: A_pse = V.T.dot(D_pse).dot(U.T)
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
Aporte de María José Medina.