Inversa Generalizada

El punto principal de construir una inversa generalizada de una matriz es obtener una matriz que pueda servir como inversa en algún sentido para una clase más amplia de matrices que las matrices invertibles.
Tenemos la matriz Ax=b

Matriz A

\[\begin{bmatrix}{} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix}\]

Matriz B

\[\begin{bmatrix}{} -3 \\ -1 \\ 5 \\ \end{bmatrix}\]

entonces nos resultaría:
\[\begin{bmatrix}{} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} + \begin{bmatrix}{} X_1\\ X_2\\ \end{bmatrix} = \begin{bmatrix}{} -3 \\ -1 \\ 5 \\ \end{bmatrix}\]

#install.packages("pracma") 
library(pracma)
library(dplyr)

Código para la matriz A

# Matriz A
A = matrix(
  c(1, 3, 5, 2, 4, 6),
  nrow = 3,            
  ncol = 2)
print(A)
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
## [3,]    5    6

Código para la matriz b

#Matriz b
b = matrix(
  c(-3,-1,5),
  nrow = 3,            
  ncol = 1)
print(b)
##      [,1]
## [1,]   -3
## [2,]   -1
## [3,]    5

Primera forma usando pinv()

#Solución de ecuaciones lineales usando pseudoinversa
x = pinv(A) %*% b
print(x)
##           [,1]
## [1,]  7.666667
## [2,] -5.666667

Segunda forma usando ginv()

library(MASS)
# Solución de ecuaciones lineales usando pseudoinversa
x = ginv(A) %*% b
print(x)
##           [,1]
## [1,]  7.666667
## [2,] -5.666667

Conclusión

Podemos concluir que los con los 2 métodos nos va a resultar la misma inversa generalizada.