gs.gInv_MP {gseries} | R Documentation |
Moore-Penrose inverse
Description
(version française: https://StatCan.github.io/gensol-gseries/fr/reference/gs.gInv_MP.html)
This function calculates the Moore-Penrose (pseudo) inverse of a square or rectangular matrix
using Singular Value Decomposition (SVD). It is used internally by tsraking()
and benchmarking()
.
Usage
gs.gInv_MP(X, tol = NA)
Arguments
X |
(mandatory) Matrix to invert. |
tol |
(optional) Real number that specifies the tolerance for identifying zero singular values. When Default value is |
Details
The default tolerance (argument tol = NA
) is coherent with the tolerance used by the MATLAB and GNU Octave
software in their general inverse functions. In our testing, this default tolerance also produced solutions
(results) comparable to G-Series 2.0 in SAS^\circledR
.
Value
The Moore-Penrose (pseudo) inverse of matrix X
.
See Also
Examples
# Invertible matrix
X1 <- matrix(c(3, 2, 8,
6, 3, 2,
5, 2, 4), nrow = 3, byrow = TRUE)
Y1 <- gs.gInv_MP(X1)
all.equal(Y1, solve(X1))
X1 %*% Y1
# Rectangular matrix
X2 <- X1[-1, ]
try(solve(X2))
X2 %*% gs.gInv_MP(X2)
# Non-invertible square matrix
X3 <- matrix(c(3, 0, 0,
0, 0, 0,
0, 0, 4), nrow = 3, byrow = TRUE)
try(solve(X3))
X3 %*% gs.gInv_MP(X3)