GraphMath

Inverse & Pseudoinverse

A⁻¹ for invertible matrices and A⁺ for full-rank and rank-deficient cases

When does a true inverse exist and what replaces it when A is not invertible?

This chapter starts with the simplest square full-rank case, where A⁻¹ exists, and then extends the same idea to tall, wide and rank-deficient matrices. The pseudoinverse A⁺ recovers the reversible part of a transformation: it maps col(A) back to row(A), sends the left null space to 0⃗ and leads to the projection operators A⁺A and AA⁺.

Key ideas

A true inverse exists only when the transformation is both one-to-one and onto. In all other cases, the pseudoinverse reverses the part of the transformation that remains meaningful.

  • For square full-rank A, every codomain vector comes from exactly one domain vector, so A⁻¹ exists
  • For tall full-column-rank A, A is one-to-one but not onto, and A⁺ = (AᵀA)⁻¹Aᵀ acts as a left inverse
  • For wide full-row-rank A, A is onto but not one-to-one, and A⁺ = Aᵀ(AAᵀ)⁻¹ acts as a right inverse
  • For general rank-deficient A, A⁺ maps col(A) back to row(A) and sends both null-space leftovers to 0⃗
  • The operators A⁺A and AA⁺ are projections that reveal what part of the transformation is preserved

The chapter ends with a summary table and a concrete geometric example of A: ℝ³ → ℝ² and A⁺: ℝ² → ℝ³.

What does pseudoinverse actually do?

It does not create a true inverse when one does not exist. Instead, it reverses the reachable part of the map: vectors in col(A) are sent back to row(A), while vectors in ℓ-null(A) are sent to 0⃗.

Related chapters

Chapter contents

The PDF is a single document. The page links below are best-effort: most browsers support them, but some viewers may ignore the page hint.

Topic Pages
Simplest case: square full-rank A 1
Tall full-column-rank A 2–4
Wide full-row-rank A 5–7
General rank-deficient 8–12
Summary table 13
Example of A: ℝ³ → ℝ², A⁺: ℝ² → ℝ³ 13–16

Why do A⁺A and AA⁺ appear so often?

Because they separate what is preserved from what is lost. A⁺A projects domain vectors onto row(A), while AA⁺ projects codomain vectors onto col(A).

Was this chapter helpful?

Quick feedback helps us improve the site.