Friday, May 24, 2024
HomeMatlabWhat Is the Pseudoinverse of a Matrix? – Nick Higham

What Is the Pseudoinverse of a Matrix? – Nick Higham

The pseudoinverse is an extension of the idea of the inverse of a nonsingular sq. matrix to singular matrices and rectangular matrices. It’s one in all many generalized inverses, however the one most helpful in apply because it has plenty of particular properties.

The pseudoinverse of a matrix Ainmathbb{C}^{mtimes n} is an m times n matrix X that satisfies the Moore–Penrose situations

notag begin{array}{rcrc}  mathrm{(1)}   &    AXA = A,  ; & mathrm{(2)} & XAX=X,  mathrm{(3)} & (AX)^* = AX, ; & mathrm{(4)} & (XA)^* = XA. end{array}

Right here, the superscript * denotes the conjugate transpose. It may be proven that there’s a distinctive X satisfying these equations. The pseudoinverse is denoted by A^+; some authors write A^dagger.

An important property of the pseudoinverse is that for any system of linear equations Ax = b (overdetermined or underdetermined) x = A^+b minimizes |Ax - b|_2 and has the minimal 2-norm over all minimizers. In different phrases, the pseudoinverse offers the minimal 2-norm least squares answer to Ax = b.

The pseudoinverse might be expressed by way of the singular worth decomposition (SVD). If A = USigma V^* is an SVD, the place the mtimes m matrix U and ntimes n matrix V are unitary and Sigma = mathrm{diag}(sigma_1,dots , sigma_p) with sigma_1 ge sigma_2 ge cdots ge sigma_r > sigma_{r+1} = cdots =sigma_p = 0 (in order that mathrm{rank}(A) = r) with p = min(m,n), then

notag    A^+ = Vmathrm{diag}(sigma_1^{-1},dots,sigma_r^{-1},0,dots,0)U^*,    qquad (1)

the place the diagonal matrix is ntimes m. This formulation provides a simple method to show many identities glad by the pseudoinverse. In MATLAB, the operate pinv computes A^+ utilizing this formulation.

From the Moore–Penrose situations or (1) it may be proven that (A^+)^+ = A and (A^*)^+ = (A^+)^*.

For full rank A we’ve got the concise formulation

notag     A^+ =     begin{cases}     (A^*A) ^{-1}A^*, & textrm{if}~mathrm{rank}(A) = n le m,      A^*(AA^*)^{-1},  & textrm{if}~ mathrm{rank}(A) = m le n.     end{cases}    qquad (2)


notag   A^+A = I_n ~~mathrm{if}~ mathrm{rank}(A) = n, qquad   AA^+ = I_m ~~mathrm{if}~ mathrm{rank}(A) = m.

Some particular instances are price noting.

notag       begin{bmatrix}         0 & 1 & 0          0 & 0 & 1          0 & 0 & 0        end{bmatrix}^+    =       begin{bmatrix}         0 & 0 & 0          1 & 0 & 0          0 & 1 & 0         end{bmatrix}.

The pseudoinverse differs from the standard inverse in numerous respects. For instance, the pseudoinverse of a triangular matrix is just not essentially triangular (right here we’re utilizing MATLAB with the Symbolic Math Toolbox):

>> A = sym([1 1 1; 0 0 1; 0 0 1]), X = pinv(A)
A =
[1, 1, 1]
[0, 0, 1]
[0, 0, 1]
X =
[1/2, -1/4, -1/4]
[1/2, -1/4, -1/4]
[  0,  1/2,  1/2]

Moreover, it’s not typically true that (AB)^+ = B^+A^+ for Ainmathbb{C}^{mtimes n} and Binmathbb{C}^{ntimes p}. A enough situation for this equality to carry is that mathrm{rank}(A) = mathrm{rank}(B) = n.

It’s not normally essential to compute the pseudoinverse, however whether it is required it may be obtained utilizing (1) or (2) or from the Newton–Schulz iteration

notag       X_{k+1} = 2X_k - X_kAX_k, quad X_0 = alpha A^*,

for which X_k to A^+ as ktoinfty if 0 < alpha < 2/|A|_2^2. The convergence is at an asymptotically quadratic price. Nonetheless, about 2log_2kappa_2(A) iterations are required to achieve the asymptotic part, the place kappa_2(A) = |A|_2 |A^+|_2, so the iteration is gradual to converge when A is unwell conditioned.

Notes and References

The pseudoinverse was first launched by Eliakim Moore in 1920 and was independently found by Roger Penrose in 1955. For extra on the pseudoinverse see, for instance, Ben-Israel and Greville (2003) or Campbell and Meyer (2009). For evaluation of the Newton–Schulz iteration see Pan and Schreiber (1991).



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments