MPinv {gnm} | R Documentation |
Moore-Penrose Pseudoinverse of a Real-valued Matrix
Description
Computes the Moore-Penrose generalized inverse.
Usage
MPinv(mat, tolerance = 100*.Machine$double.eps,
rank = NULL, method = "svd")
Arguments
mat |
a real matrix. |
tolerance |
A positive scalar which determines the tolerance for detecting zeroes among the singular values. |
rank |
Either |
method |
Character, one of |
Details
Real-valuedness is not checked, neither is symmetry when method
= "chol"
.
Value
A matrix, with an additional attribute named "rank"
containing
the numerically determined rank of the matrix.
Author(s)
David Firth and Heather Turner
References
Harville, D. A. (1997). Matrix Algebra from a Statistician's Perspective. New York: Springer.
Courrieu, P. (2005). Fast computation of Moore-Penrose inverse matrices. Neural Information Processing 8, 25–29
See Also
Examples
A <- matrix(c(1, 1, 0,
1, 1, 0,
2, 3, 4), 3, 3)
B <- MPinv(A)
A %*% B %*% A - A # essentially zero
B %*% A %*% B - B # essentially zero
attr(B, "rank") # here 2
## demonstration that "svd" and "chol" deliver essentially the same
## results for symmetric matrices:
A <- crossprod(A)
MPinv(A) - MPinv(A, method = "chol") ## (essentially zero)