Learn R Programming

MASS (version 7.3-36)

ginv: Generalized Inverse of a Matrix

Description

Calculates the Moore-Penrose generalized inverse of a matrix X.

Usage

ginv(X, tol = sqrt(.Machine$double.eps))

Arguments

X
Matrix for which the Moore-Penrose inverse is required.
tol
A relative tolerance to detect zero singular values.

Value

  • A MP generalized inverse matrix for X.

References

Venables, W. N. and Ripley, B. D. (1999) Modern Applied Statistics with S-PLUS. Third Edition. Springer. p.100.

See Also

solve, svd, eigen

Examples

Run this code
# The function is currently defined as
function(X, tol = sqrt(.Machine$double.eps))
{
## Generalized Inverse of a Matrix
  dnx <- dimnames(X)
  if(is.null(dnx)) dnx <- vector("list", 2)
  s <- svd(X)
  nz <- s$d > tol * s$d[1]
  structure(
    if(any(nz)) s$v[, nz] %*% (t(s$u[, nz])/s$d[nz]) else X,
    dimnames = dnx[2:1])
}

Run the code above in your browser using DataLab