Quant Memo
Advanced

The Schur Complement

A way of shrinking a large block matrix problem down to a smaller one by algebraically eliminating one block first — the linear-algebra version of solving for one variable and substituting it away.

Prerequisites: Matrix Inverses and Linear Systems

Inverting a large matrix is expensive, but often a matrix has natural blocks — say, a joint covariance matrix split into "assets I already hold" and "a new asset I'm considering adding." Recomputing the whole inverse from scratch every time the second block changes wastes the work already done on the first. The Schur complement is the algebraic tool that lets you eliminate one block, solve a smaller problem involving only the other block, and reuse that structure — it's exactly what happens when you compute a conditional variance or conditional distribution from a joint one.

An analogy: solving two equations by substitution

In basic algebra, to solve two equations in two unknowns you often solve one equation for one variable and substitute it into the other, collapsing the problem to a single equation in a single unknown. The Schur complement is the matrix-block generalization of exactly that move: given a block system, solve the first block's equation for its variable in terms of the second, substitute it into the second block's equation, and what's left — a smaller matrix expression — is the Schur complement. It captures "the second block, after accounting for everything explainable by the first."

The math, one symbol at a time

Partition a matrix into blocks:

M=(ABCD).M = \begin{pmatrix} A & B \\ C & D \end{pmatrix}.

The Schur complement of AA in MM is

S=DCA1B.S = D - C A^{-1} B.

In words: take the DD block, and subtract off the part of it that's "explained" by its interaction with AA through BB and CC — what remains, SS, is what DD contributes on its own, once AA's influence is removed. This single object controls whether MM as a whole is invertible (it is, exactly when both AA and SS are invertible) and gives a formula for M1M^{-1} built from smaller pieces, avoiding a full inversion of MM at once.

Worked example 1: a numeric 2x2 block system

Let M=(201021113)M = \begin{pmatrix}2&0&1\\0&2&1\\1&1&3\end{pmatrix}, blocked as A=(2002)A = \begin{pmatrix}2&0\\0&2\end{pmatrix} (top-left 2×22\times2), B=C=(11)B = C^\top = \begin{pmatrix}1\\1\end{pmatrix}, D=3D = 3. Then A1=(0.5000.5)A^{-1} = \begin{pmatrix}0.5&0\\0&0.5\end{pmatrix}, so CA1B=(11)(0.5000.5)(11)=0.5+0.5=1CA^{-1}B = \begin{pmatrix}1&1\end{pmatrix}\begin{pmatrix}0.5&0\\0&0.5\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix} = 0.5+0.5 = 1. The Schur complement is S=31=2S = 3 - 1 = 2. Since both AA (invertible, determinant 4) and S=2S=2 are nonzero, MM is guaranteed invertible — established without ever inverting the full 3×33\times3 matrix.

Worked example 2: conditional variance from a joint covariance matrix

Two assets have joint covariance Σ=(σ12σ12σ12σ22)=(4229)\Sigma = \begin{pmatrix}\sigma_1^2 & \sigma_{12}\\\sigma_{12} & \sigma_2^2\end{pmatrix} = \begin{pmatrix}4 & 2\\2 & 9\end{pmatrix}. The variance of asset 2 conditional on knowing asset 1's value is exactly the Schur complement of the top-left block: σ22σ12(σ12)1σ12=92(0.25)(2)=91=8\sigma_2^2 - \sigma_{12}(\sigma_1^2)^{-1}\sigma_{12} = 9 - 2(0.25)(2) = 9 - 1 = 8. Asset 2's unconditional variance is 9, but once you know asset 1 (which explains part of asset 2's movement through their covariance of 2), the leftover uncertainty drops to 8 — a smaller number, exactly as intuition demands, and the Schur complement is the formula that produces it directly from the joint covariance matrix.

A B C D S = D − CA⁻¹B (D, with A's influence removed)
Eliminating the A block leaves the Schur complement S — the D block's genuinely independent content, after subtracting what B and C explain through A.
9 (unconditional) 8 (conditional)
Conditioning on asset 1 shrinks asset 2's leftover variance from 9 to 8 — the drop is exactly what the Schur complement computes.

What this means in practice

The Schur complement shows up wherever a problem naturally splits into blocks: conditional distributions of multivariate normals (risk factor models, Kalman filters), efficient updates to a covariance matrix when adding one new asset without refactoring the whole matrix, and the interior-point methods used inside portfolio optimizers. It's the computational shortcut behind the The Sherman-Morrison-Woodbury Formula, which handles low-rank updates to an inverse using the same block-elimination idea.

The Schur complement S=DCA1BS = D - CA^{-1}B is what remains of block DD once block AA's influence, transmitted through BB and CC, is subtracted out — and it turns a large matrix inversion into two smaller ones.

The Schur complement formula requires AA to be invertible — if AA is singular (or numerically close to it, with a poor condition number), the formula breaks down or becomes numerically unstable even though the full matrix MM might be perfectly well-behaved. Always check that the block you're eliminating is safely invertible before relying on this shortcut, especially with real covariance matrices where near-singular blocks are common.

Related concepts

Practice in interviews

Further reading

  • Boyd & Vandenberghe, Convex Optimization, appendix A.5
ShareTwitterLinkedIn