Generalized Inverse of a Matrix
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.
|
Description
Calculates the Moore-Penrose generalized inverse of a matrix
X
.Value
A MP generalized inverse matrix for X
.References
Venables & Ripley, Chapter 2.See Also
solve
, svd
, eigen
Examples
# 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])
}