Contents Previous Next Subchapters Current Chapters-> kron inv trace det logdet rank cond null orth pinv cholesky lu svd qr qred eigen geneig eigsym symeig schur levinson tridiag BlockTriDiag Parent Chapters-> Omatrix6 linear pinv Search Tools-> contents reference index search

Moore-Penrose Pseudo Inverse of a Matrix
 Syntax y` = pinv(`x`)` y` = pinv(`x`, `tol`)` See Also null , orth , svd

Description
Computes the Moore-Penrose pseudo inverse of the integer, real, double-precision or complex matrix x. Thus ```      x * y * x = x      y * x * y = y ```and both `x * y` and `y * x` are Hermitian. ``` ```If x is an integer matrix, y is double-precision. Otherwise y has the same type as x. The dimensions of y are equal to the dimensions of the transpose of x.

Tolerance
If the integer, real or double-precision argument tol is present, it specifies the minimum absolute singular value of x that will be considered nonzero. If tol is not present, the value ```      eps * max([rowdim(x), coldim(x)]) * smax ```is used where `smax` is the maximum absolute singular value of x.

Example
If you enter ```      x = { [1 , 1], [2 , 2] }      y = pinv(x)      y ``` O-Matrix will reply ```      {      [ 0.1 , 0.2 ]      [ 0.1 , 0.2 ]      } ``` Continuing with ```      x * y * x ``` results in ```      {      [ 1 , 1 ]      [ 2 , 2 ]       } ``` and ```      y * x * y ``` results in ```      {      [ 0.1 , 0.2 ]      [ 0.1 , 0.2 ]      } ```