ginv                  package:MASS                  R Documentation

_G_e_n_e_r_a_l_i_z_e_d _I_n_v_e_r_s_e _o_f _a _M_a_t_r_i_x

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

       X: Matrix for which the Moore-Penrose inverse is required. 

     tol: A relative tolerance to detect zero singular values. 

_V_a_l_u_e:

     A MP generalized inverse matrix for 'X'.

_R_e_f_e_r_e_n_c_e_s:

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

_S_e_e _A_l_s_o:

     'solve', 'svd', 'eigen'

_E_x_a_m_p_l_e_s:

     ## Not run: 
     # 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])
     }
     ## End(Not run)

