A Simple Derivation of the Woodbury Matrix Identity
1 February 2026math
Problem formulation
Let M=A+UCV with
A∈Mn×n(R)
U∈Mn×m(R)m<n
C∈Mm×m(R)
V∈Mm×n(R)
We are interested in finding M−1, but supposing we already know A−1, we do not want to compute a full n×n matrix inverse. The Woodbury matrix identity is useful in this case:
(A+UCV)−1=A−1−A−1U(C−1+VA−1U)−1VA−1
The only inverse we have to compute are C−1 and (C−1+VA−1U)−1 which is a m×m matrix.
Derivation
For example let say we want to invert (I+uv⊤) it's a n×n matrix but invertig it is very simple:
(I+uv⊤)xx+uv⊤xx=y=y=y−uv⊤x(1)
v⊤x is a scalar; it should be easy to calculate. Indeed
v⊤x(1+v⊤u)v⊤xv⊤x=v⊤y−v⊤uv⊤x=v⊤y=1+v⊤uv⊤y
And substituding v⊤x in (1) we get:
x=y−1+v⊤uuv⊤y=(I−1+v⊤uuv⊤)y
Thus (I+u⊤v)−1=I−1+v⊤uuv⊤. We did not have to compute any n×n matrix inverse (just a 1×1 one 😉). We will now generalize this result by deriving the Woodbury matrix identity in its full glory. As you will see, the derivation is rather similar to the demonstration of the simple case. We will follow essentially the same steps.
Here, the analog of 1+v⊤u1 is (Im+VA−1UC)−1. What was a scalar division is now a rank m matrix inversion. We are getting nearing our goal. Substituting Vx in (2) we finally get