mpinv function

Moore-Penrose Pseudoinverse

Moore-Penrose Pseudoinverse

Calculates the Moore-Penrose pseudoinverse of the input matrix using a truncated singular value decomposition.

mpinv(X, tol = NULL)

Arguments

  • X: Real-valued matrix.
  • tol: Stability tolerance for singular values.

Note

Default tolerance is tol = max(dim(X)) * .Machine$double.eps.

Details

Basically returns Y$v %*% diag(1/Y$d) %*% t(Y$u) where Y = svd(X).

Returns

Returns pseudoinverse of X.

References

Moore, E. H. (1920). On the reciprocal of the general algebraic matrix. Bulletin of the American Mathematical Society 26, 394-395.

Penrose, R. (1950). A generalized inverse for matrices. Mathematical Proceedings of the Cambridge Philosophical Society 51, 406-413.

Author(s)

Nathaniel E. Helwig helwig@umn.edu

Examples

########## EXAMPLE ########## set.seed(1) X <- matrix(rnorm(2000),100,20) Xi <- mpinv(X) sum( ( X - X %*% Xi %*% X )^2 ) sum( ( Xi - Xi %*% X %*% Xi )^2 ) isSymmetric(X %*% Xi) isSymmetric(Xi %*% X)
  • Maintainer: Nathaniel E. Helwig
  • License: GPL (>= 2)
  • Last published: 2019-03-13

Useful links