Math July 19, 2026 · 11 min read

The Moore-Penrose Pseudoinverse: A Complete Guide to Generalized Matrix Inverses

Learn how the Moore-Penrose pseudoinverse generalizes matrix inversion to non-square and singular matrices. Understand the four Penrose conditions, SVD-based computation, and least squares applications.

The Moore-Penrose pseudoinverse is one of the most powerful generalizations in linear algebra. It extends the concept of a matrix inverse to matrices that are non-square, singular, or both — situations where the standard inverse A−1 does not exist. For any matrix A (whether rectangular, rank-deficient, or full rank), the pseudoinverse A+ provides the best approximate solution to systems of equations, making it indispensable in least squares fitting, data science, signal processing, and robotics.

The need for a generalized inverse arises frequently in practice. Real-world data matrices are rarely square and rarely full rank. When you have more equations than unknowns (an overdetermined system), no exact solution exists. When you have more unknowns than equations (an underdetermined system), infinitely many solutions exist. The pseudoinverse resolves both situations by providing a unique, well-defined "best" solution in each case — the minimum-norm least-squares solution.

Key Takeaway

The Moore-Penrose pseudoinverse A+ is the unique matrix satisfying four conditions (the Penrose equations). It generalizes the inverse to non-square and singular matrices. For any linear system Ax = b, the pseudoinverse solution x = A+b gives the minimum-norm least-squares solution. The most reliable way to compute it is via the Singular Value Decomposition (SVD).

1. What Is the Pseudoinverse?

The pseudoinverse of a matrix A, denoted A+, is the unique matrix that satisfies the four Penrose conditions. These conditions characterize A+ completely — no other matrix satisfies all four simultaneously. The Penrose conditions are:

  1. AA+A = A — A+ is a generalized inverse of A.
  2. A+AA+ = A+ — A+ is a generalized inverse of itself.
  3. (AA+)T = AA+ — AA+ is symmetric (an orthogonal projector onto the column space of A).
  4. (A+A)T = A+A — A+A is symmetric (an orthogonal projector onto the row space of A).

Penrose Conditions:

1. AA+A = A

2. A+AA+ = A+

3. (AA+)T = AA+

4. (A+A)T = A+A

When A+ = A−1

When A is square and invertible, the pseudoinverse reduces to the standard inverse: A+ = A−1. You can verify this by substituting A−1 into the Penrose conditions — all four are satisfied because A−1A = AA−1 = I, and the identity matrix is symmetric.

When A Is Not Invertible

When A is square but singular (det(A) = 0), or when A is rectangular (m × n with m ≠ n), the standard inverse does not exist. The pseudoinverse still exists and is unique. It provides the "closest thing to an inverse" — the best linear operator that maps b to the nearest point in the column space of A.

2. Computing the Pseudoinverse

Method 1: Via SVD (Most Robust)

The most numerically stable and general method uses the Singular Value Decomposition. If A = UΣVT is the SVD of A (where Σ is diagonal with singular values σ₁ ≥ σ₂ ≥ ... ≥ σᵣ > 0, and r = rank(A)), then the pseudoinverse is:

A = U Σ VT (SVD of A)

A+ = V Σ+ UT

where Σ+ = diag(1/σ₁, 1/σ₂, ..., 1/σᵣ, 0, ..., 0)

Each non-zero singular value σᵢ is replaced by its reciprocal 1/σᵢ. Zero singular values remain zero.

The SVD method works for any matrix — square or rectangular, full rank or rank-deficient. It automatically handles the zero singular values by setting their reciprocals to zero in Σ+. This is why it is the preferred method in numerical libraries.

Method 2: For Full-Rank Matrices

When A has full column rank (rank = n for an m × n matrix with m ≥ n), the pseudoinverse simplifies to:

Full column rank (m ≥ n, rank = n):

A+ = (ATA)−1AT

Full row rank (m ≤ n, rank = m):

A+ = AT(AAT)−1

These closed-form expressions avoid full SVD computation but require the indicated inverses to exist.

Worked Example: 2×3 Matrix

Consider A = [[1, 0, 0], [0, 1, 0]], a 2×3 matrix with rank 2. Since A has full row rank (rank = m = 2), we use the formula A+ = AT(AAT)−1.

Step 1: AAT = [[1, 0, 0], [0, 1, 0]] × [[1, 0], [0, 1], [0, 0]] = [[1, 0], [0, 1]] = I₂.

Step 2: (AAT)−1 = I₂−1 = I₂.

Step 3: A+ = AT × I₂ = [[1, 0], [0, 1], [0, 0]].

This makes geometric sense: the pseudoinverse of a projection onto the first two coordinates is the embedding that maps back into the full three-dimensional space, placing zeros in the third component.

Matrix TypeFormulaConditions
Square invertibleA+ = A−1det(A) ≠ 0
Full column rank(ATA)−1ATm ≥ n, rank = n
Full row rankAT(AAT)−1m ≤ n, rank = m
General (rank-deficient)V Σ+ UTVia SVD: A = UΣVT

3. Properties

The pseudoinverse satisfies several important algebraic properties that make it a true generalization of the standard inverse:

1. AA+A = A

2. A+AA+ = A+

3. (AA+)T = AA+ (orthogonal projector onto col(A))

4. (A+A)T = A+A (orthogonal projector onto row(A))

5. (AT)+ = (A+)T

6. (kA)+ = (1/k)A+ for k ≠ 0

  • Uniqueness: The pseudoinverse is unique — there is exactly one matrix satisfying all four Penrose conditions for any given A.
  • Idempotency: (A+)+ = A — the pseudoinverse of the pseudoinverse returns the original matrix.
  • Rank preservation: rank(A+) = rank(A).
  • Non-distributivity: (A + B)+ ≠ A+ + B+ in general — pseudoinversion does not distribute over addition.
  • Non-multiplicativity: (AB)+ ≠ B+A+ in general — additional conditions on A and B are required.

4. Applications

Least Squares Problems

The most common application of the pseudoinverse is solving overdetermined systems Ax = b where no exact solution exists. The least squares solution minimizes ‖Ax − b‖₂ and is given by x = A+b. When A has full column rank, this reduces to the normal equations x = (ATA)−1ATb. The pseudoinverse formulation is more general because it works even when A is rank-deficient.

Data Fitting and Regression

In linear regression, you fit a model y = Xβ + ε by finding β̂ = X+y. This is the Gauss-Markov solution — the Best Linear Unbiased Estimator (BLUE) under certain assumptions. The pseudoinverse approach naturally handles multicollinearity (when columns of X are nearly linearly dependent) by using the truncated SVD, effectively regularizing the solution.

Signal Processing

In signal processing, the pseudoinverse is used for beamforming (finding optimal antenna weights), channel equalization (inverting distorted communication channels), and compressed sensing (recovering sparse signals from fewer measurements than the Nyquist rate would suggest). The minimum-norm property of the pseudoinverse solution is particularly valuable when reconstructing signals from incomplete data.

Robotics and Inverse Kinematics

Robot arms have joint angle vectors θ and end-effector positions x related by x = f(θ). Linearizing around an operating point gives Δx = JΔθ, where J is the Jacobian. The pseudoinverse J+ maps desired end-effector displacements to joint angle changes: Δθ = J+Δx. This is the foundation of resolved-rate control and handles both redundant (more joints than tasks) and non-redundant manipulators.

5. Common Mistakes

  • Assuming A+ = (ATA)−1AT always works: This formula only applies when A has full column rank. For rank-deficient matrices, ATA is singular and its inverse does not exist — use SVD instead.
  • Expecting (AB)+ = B+A+: Unlike standard inverses, the pseudoinverse does not reverse the order of multiplication in general. Additional conditions (such as A and B having compatible ranks) are required.
  • Confusing pseudoinverse with inverse for singular matrices: A singular matrix has no inverse, period. The pseudoinverse is a different operator that provides the best approximation but does not satisfy AA+ = I.
  • Ignoring numerical conditioning: When singular values are very small, 1/σᵢ becomes very large, amplifying noise. Truncated SVD (discarding small singular values) provides more stable solutions in practice.
  • Using pseudoinverse for square invertible matrices: While technically correct, computing A+ via SVD when A−1 exists is wasteful. Check invertibility first.

6. Frequently Asked Questions

What is the difference between the pseudoinverse and the regular inverse?

The regular inverse A−1 exists only for square, non-singular matrices and satisfies AA−1 = A−1A = I. The pseudoinverse A+ exists for any matrix and satisfies the four Penrose conditions instead. When A−1 exists, A+ = A−1.

Can I compute the pseudoinverse by hand for large matrices?

For 2×2 or 3×3 matrices, hand computation is feasible using the full-rank formulas or SVD. For larger matrices, use a calculator or software — computing eigenvalues and singular values by hand becomes impractical beyond 4×4.

Why is the pseudoinverse solution called "minimum norm"?

Among all solutions that minimize ‖Ax − b‖₂ (the residual), x = A+b is the one with the smallest ‖x‖₂ (the solution norm). This is because the pseudoinverse maps the right-hand side only through the row space of A, which is orthogonal to the null space — the null space component that could increase ‖x‖ without affecting Ax is set to zero.

How does truncated SVD relate to pseudoinverse?

Truncated SVD pseudoinverse discards singular values below a threshold, replacing 1/σᵢ with 0 for small σᵢ. This is a form of regularization (related to Tikhonov regularization) that prevents amplification of noise associated with near-zero singular values, producing more stable and generalizable solutions.

Is the pseudoinverse the same as the left or right inverse?

The left inverse (AL with ALA = I) exists only for full column rank matrices, and the right inverse (AR with AAR = I) exists only for full row rank matrices. The pseudoinverse is defined for all cases and equals the left inverse when A has full column rank and the right inverse when A has full row rank.

Try It Yourself

Use our Pseudoinverse Calculator to compute A+ for any matrix — square or rectangular, full rank or rank-deficient. Related tools: Matrix Inverse Calculator, SVD Calculator, QR Decomposition Calculator.