MatMPpinv {mixAK} | R Documentation

## Moore-Penrose pseudoinverse of a squared matrix

### Description

For a matrix A its Moore-Penrose pseudoinverse is such a matrix A[+] which satisfies

(i) A*A[+]*A = A,
(ii) A[+]*A*A[+] = A[+],
(iii) (A*A[+])' = A*A[+],
(iv) (A[+]*A)' = A[+]*A.

Computation is done using spectral decomposition. At this moment, it is implemented for symmetric matrices only.

### Usage

      MatMPpinv(A)

### Arguments

`A` | either a numeric vector in which case inverse of each element of A is returned or a squared matrix.

### Value

Either a numeric vector or a matrix.

### Author(s)

Arnošt Komárek arnost.komarek[AT]mff.cuni.cz

### References

Golub, G. H. and Van Loan, C. F. (1996, Sec. 5.5). Matrix Computations. Third Edition. Baltimore: The Johns Hopkins University Press.

### Examples

    set.seed(770328)
    A <- rWishart(1, 5, diag(4))
    Ainv <- MatMPpinv(A)

    ### Check the conditions
    prec <- 13
    round(A - A %*% Ainv %*% A, prec)
    round(Ainv - Ainv %*% A %*% Ainv, prec)
    round(A %*% Ainv - t(A %*% Ainv), prec)
    round(Ainv %*% A - t(Ainv %*% A), prec)

[Package mixAK version 0.6 Index]