PSEUDO INVERSE

Compute the transpose of the Moore-Penrose pseudo inverse of a
matrix.

Description:

If A is a square matrix of full rank, then the inverse of
A exists (A is referred to as an invertible matrix)
and

Ax = b

has the solution

x = A-1b

The Moore-Penrose pseudo inverse is a generalization of the matrix
inverse when the matrix may not be invertible. If A is
invertible, then the Moore-Penrose pseudo inverse is equal to
the matrix inverse. However, the Moore-Penrose pseudo inverse
is defined even when A is not invertible.

More formally, the Moore-Penrose pseudo inverse, A+,
of an m-by-n matrix is defined by the unique
n-by-m matrix satisfying the following four criteria
(we are only considering the case where A consists of real
numbers).

AA+A = A

A+AA+ = A+

(AA+)' = AA+

(A+A)' = A+A

If A is an mxn matrix where m > n
and A is of full rank (= n), then

A+ =
(A'A)-1A'

and the solution of Ax = b is x =
A+b. In this case, the solution is not
exact. It finds the solution that is closest in the least squares
sense.
Syntax:

LET <mat2> = PSEUDO INVERSE <mat1>
<SUBSET/EXCEPT/FOR qualification>
where <mat1> is a matrix for which the pseudo inverse is to be
computed;
<mat2> is a matrix where the resulting transpose of the
pseudo inverse is saved;
and where the <SUBSET/EXCEPT/FOR qualification> is optional (and
rarely used in this context).

Examples:

LET C = PSEUDO INVERSE A

Note:

The pseudo inverse is also referred to as the generalized
inverse.

Note:

A pseudo inverse can be used for any operator pinv satisfying

M pinv(M) M = M

Dataplot specifically computes the Moore-Penrose pseudo inverse.
Other formulations are not currently supported.

Note:

Dataplot computes the pseudo inverse using the MATMPI routine
written by Charles Reeve while he was a member of the NIST
Statistical Engineering Division. This routine is available at

The MATMPI routine is based on the singular value decomposition.
The singular value decomposition of A is

A = USV'

where U and V are both nxn orthogonal
matrices and S is an mxn diagonal matrix with
singular values i for i = 1, ..., n. Then

A+ =
V(S'S)-1S'U'

If the rank r of A is less than n, the inverse
of S'S does not exist and we use only the first r
singular values. S is then an rxr matrix and
U and V are shrunk accordingly.

Note:

Matrices are created with the READ MATRIX, CREATE MATRIX and
MATRIX DEFINITION commands.

Note:

The columns of a matrix are accessible as variables by appending an
index to the matrix name. For example, the 4x4 matrix C has
columns C1, C2, C3, and C4. These columns can be operated on like
any other DATAPLOT variable.

Note:

The maximum size matrix that DATAPLOT can handle is set when
DATAPLOT is built on a particular site. Enter HELP DIMENSION
and HELP MATRIX DIMENSION for details.