Perturb a saddle-point matrix's two blocks in opposite directions and it acquires a factorisation with a diagonal D under every symmetric permutation — not under a good one, under all of them. Five hundred random orderings, five hundred successes, and a growth factor that spans six orders across them.
The ordering wants to be chosen from the sparsity pattern alone, before any number is looked
at, because that is what lets the symbolic phase allocate the factor once and reuse it for a
whole sequence of solves. The pivoting wants to be chosen from the numbers, because a pivot
that is too small destroys the answer. A sparse LU has
to compromise between them, and the threshold that governs the
compromise is a knob with no good setting.
For one family of matrices the fight does not happen at all, and the family is exactly the one a
constrained problem produces once it has been regularised.
Fig. 1 Five hundred random symmetric orderings of one matrix. Every one of them factorises. What each
factorisation is worth is the horizontal axis.
[ E Aᵀ ] E symmetric positive definite, n × n
[ A −F ] F symmetric positive definite, m × m
is quasi-definite, and Vanderbei’s theorem is that it has an LDLᵀ factorisation with D
diagonal for every symmetric permutation. Not for a good permutation, not for one found by
searching: for all of them.
The proof is two lines of the same congruence argument the field’s first
essay uses. Any leading principal submatrix of a
symmetric permutation of a quasi-definite matrix is itself quasi-definite; a quasi-definite matrix
is nonsingular, because its inertia is (n, m, 0) and nothing is at zero; so every leading
principal minor is nonzero, which is exactly the condition for an unpivoted LDLᵀ to exist.
The saddle-point matrix K is not quasi-definite: its (2, 2) block is zero, and zero is not −F for
any positive definite F. Buy the theorem by perturbing both blocks —
K(δ, γ) = [ H + δI Aᵀ ]
[ A −γI ]
— and the factorisation exists under every ordering, and the 2 × 2 pivots the symmetric
indefinite essay had to introduce are not needed at all.
Fig. 2 At a large regularisation, where the matrix is far enough from singular that no ordering is a bad
one.
Five hundred random symmetric permutations of one matrix, factorised with no pivoting at all:
regularised at δ = 10⁻⁶ 500 of 500 factorise
the same matrix at δ = 0 345 of 500
Thirty-one per cent of orderings break down outright on the matrix the problem posed. That is the
control that makes the count a measurement: the theorem says something the matrix does not have
for free, and the counterexamples are not rare.
The failures are not near-misses either. An unpivoted LDLᵀ fails when a pivot is exactly zero,
and the zero block supplies them: permute two constraint rows to the front and the leading 2 × 2
submatrix is [[0, 0], [0, 0]]. The refusal the library publishes is the claim that a saddle-point
matrix factorises under every ordering, fed the run at δ = 0 and required to fail.
Fig. 3 What has to be done instead when the theorem is not bought: two variables taken at once, from the
elimination field.
Five hundred random permutations sounds like a sample and the theorem is not about a sample, so
it is worth saying what the experiment is evidence for.
There are (n + m)! symmetric permutations of a 14 × 14 matrix, which is 8.7·10¹⁰, and no
experiment visits a meaningful fraction of them. What the sample is good for is the control: it
establishes that failures are common on the unregularised matrix — a third of the draws — so
their complete absence on the regularised one is not the sample being lucky. If the failure rate
were one in a thousand, five hundred draws would say nothing.
The theorem is what says all of them. The experiment says the theorem’s hypothesis is doing work,
which is the part a proof cannot demonstrate and a reader is entitled to want. It also produces
the thing the theorem does not have — the distribution of what those factorisations are worth —
and that distribution is the next section and the reason the page is not just a citation.
Fig. 4 A smaller sample of the same experiment, where the share is unchanged and the tail is thinner
because there are fewer draws to find it with.
Existence is not stability, and two numbers say so #
The theorem says a factorisation exists. It says nothing about what the factorisation is worth,
and across the same five hundred orderings:
growth factor 1.00 to 6.4·10⁵
residual ‖PKPᵀ − LDLᵀ‖/‖K‖ 1.6·10⁻¹⁶ to 1.0·10⁻⁷
Nine orders of residual, on a matrix every ordering of which is legal. The best ordering
reproduces its own matrix to the rounding level; the worst reproduces it to seven digits, which
on this site is a factorisation that has gone wrong and says so in the badge.
The refusal is the reading that the theorem invites: that a factorisation existing under every
ordering is equally stable under every ordering, since the theorem does not distinguish between
them. It is fed the best and worst residuals and required to reject the claim that they are
within a factor of 1.5.
And the spread has a law. The worst growth factor over the orderings is 0.64/δ, an inverse
relation that holds at every δ the figure is drawn at — so the regularisation that buys existence
for every ordering also fixes, to within a constant, how badly the worst of them behaves. That is
the whole trade in one number, and it is the reason the next section exists.
Fig. 5 At δ = 10⁻¹⁰, where the same five hundred orderings all still factorise and the worst residual is
larger than the matrix.
The regularised solve is the exact answer to a different problem, so its error is proportional
to δ. Measured across six decades the constant is 1,489: the relative error against the exact
answer to the unregularised system is 1.49·10⁻¹¹ at δ = 10⁻¹⁴ and 1.43·10⁻³ at δ = 10⁻⁶, with the
ratio error/δ constant to within a fifth of a per cent over the whole range.
That is a slope of one and not a trend, and it is the cleanest form the site’s regularisation
trade-off has taken. In the regularisation field the
left branch of the curve is a bias whose size is unknown, and choosing the parameter is a whole
essay. Here the perturbation is known exactly — it is δ, and the code chose it — so the left
branch is a straight line whose position can be computed before anything runs.
Fig. 6 The trade-off with no repair applied: the error is δ times a constant, over twelve decades.
Refine against the unregularised matrix. Form the residual with K, solve the correction with
the factorisation of K(δ, δ), and repeat. The perturbation was never in the residual, so it does
not survive the iteration.
Measured with six steps: the refined error is at the rounding level — between 3.3·10⁻¹⁶ and
1.1·10⁻¹³ — at every δ from 10⁻¹⁴ up to 10⁻⁵, while the unrefined error at the top of that range
is 1.4·10⁻². A gain of eleven orders, from three triangular solves per step against a
factorisation that has already been computed.
That is what makes the regularisation practical rather than a compromise. The usual reading of a
regularisation is that it trades accuracy for tractability; here it trades nothing for
tractability, up to a limit, and the limit is the next section.
Fig. 7 With six steps of refinement, where the left branch has gone and the cliff has not moved.
Where refinement stops working, and it is not gradual #
The refinement iteration’s error is multiplied at each step by roughly δ‖K⁻¹‖ = δ/σ_min(K), so it
converges while that is under one and diverges above. On the figure’s matrix σ_min(K) =
6.80·10⁻⁴, and the measurement follows exactly: refined errors of 10⁻¹³ or better at every δ
below 10⁻⁵, 4.9·10⁻⁷ at δ = 10⁻⁴, and 2.5·10⁻² at δ = 10⁻³.
More refinement steps do not move the cliff. Each step multiplies by the same factor, so below
the cliff the flat region extends and above it the iteration diverges faster — which is what
makes σ_min a property of the matrix rather than of the effort, and what makes the assertion a
law rather than a level: the refined error is checked against plain·(δ/σ_min)^steps at every δ
below the threshold, on every stop of the slider.
The practical reading is a design rule with a number in it. δ has to be large enough that the
factorisation is stable — 0.64/δ is the growth — and small enough that refinement converges —
δ < σ_min(K). Both ends are computable in advance, and on this matrix they leave about eight
decades of room.
Fig. 8 Refinement failing for a different reason, in the field that owns it: a residual computed in the
same precision as the solve.
An unpivoted LDLᵀ of a quasi-definite matrix has a diagonal D, and by Sylvester’s law the signs
of its entries are the inertia. Across a hundred and twenty orderings of a matrix with n = 10 and
m = 4, the count is ten positive and four negative in every order — the same integers the
field’s first essay got from a congruence
argument and from a spectrum.
That is a third route to the inertia and the only one that costs nothing: it is a by-product of a
factorisation that was going to be computed anyway. The essay that turns it into an
algorithm is in the spectra field,
and it is where the property that the answer is an integer starts paying.
It is also a check. A code that regularises and then finds n + 1 positive pivots has a bug or a
rank-deficient constraint, and it finds out for free, on every solve, without computing anything
extra.
Fig. 9 The same signs used deliberately rather than incidentally, from the spectra field.
The other thing that is bought, which is a memory layout #
There is a consequence of a diagonal D that is easy to miss because it is about storage rather
than about arithmetic.
A Bunch–Kaufman factorisation produces a block-diagonal D with a mixture of 1 × 1 and 2 × 2
blocks, and which is which is discovered during the factorisation. So the data structure has to
accommodate either at every position, the solve has to branch, and a code that wants to reuse the
factorisation’s structure across a sequence cannot: a different set of numbers gives a different
arrangement of blocks.
A quasi-definite factorisation has a diagonal D and a lower-triangular L with a pattern the
symbolic phase computed. There are no blocks, no branches and no discovery — the factorisation is
a loop that fills in an array whose shape was fixed before it started. That is the difference
between a routine that can be scheduled and one that cannot, and on a parallel machine it is the
difference between a static task graph and a dynamic one.
None of that shows up in a residual, which is why it is worth stating separately from everything
this page measures.
Fig. 10 A factorisation whose structure is fixed in advance, from the sparsity field, where the same
property is what makes a schedule possible.
δ alone leaves the (2, 2) block at zero, which is not −F for any positive definite F: the theorem
does not apply and the failures return. γ alone leaves E = H, which is enough when H is definite
and not when it is only semidefinite — and the case where H is
singular is common enough that a code cannot assume
otherwise.
There is also no requirement that the two be equal, and in practice they are not. δ is a
primal regularisation and is chosen against the objective’s scale; γ is a dual one and is
chosen against the constraint’s. Codes pick them separately, adapt them during a run, and
increase them when a factorisation reports too much growth — which is a feedback loop the
0.64/δ law makes predictable.
The library’s third refusal covers the reading that would make all of this unnecessary: that the
regularisation is free. It is fed the sweep with no refinement and required to reject the claim
that the error stays at the rounding level. The regularised matrix is a different matrix and its
answer is a different answer; what refinement does is not make the perturbation harmless but
remove it.
Fig. 11 With a single step, where the flat region reaches about as far as δ = σ_min/10 and no further.
The regularisation is not an accuracy device and it is not a stability device. It is a
scheduling device: it decouples the ordering from the numbers, so that the symbolic phase can
run once for a whole sequence of solves and the numeric phase can be a pure evaluation.
That matters most in exactly the place the fifth essay in this
field came from. An interior-point method solves
one saddle-point system per iteration, dozens of times, with the same sparsity pattern and
different numbers. Without quasi-definiteness the accurate form of that system needs dynamic
pivoting and therefore a fresh symbolic analysis whenever the pivots move; with it, one ordering
is computed at the start and every subsequent factorisation is a fill-in-the-blanks.
That is why the regularisation is standard in interior-point codes rather than a repair applied
when something goes wrong, and it is why the next essay in the sparsity
field can count fill before any number
exists and have the count be exactly right.
Fig. 12 The consequence, counted: three orderings, a prediction made from the graph alone, and a
factorisation that produces exactly that many entries.
Before quasi-definiteness the accurate way to solve a sparse saddle-point system was a symmetric
indefinite factorisation with threshold pivoting: allow the numeric phase to depart from the
symbolic ordering when a pivot is too small, accept whatever extra fill that causes, and repeat
the analysis when the departure is large. The sparsity field measured what that
costs, and the answer was that the two objectives
are genuinely opposed — every threshold setting buys fill with growth or growth with fill.
The regularisation does not find a better compromise on that curve. It gets off the curve, by
changing the matrix so that the numeric phase has no reason to depart. What it pays instead is a
perturbation of known size, which the previous two sections show can be removed. Trading an
unbounded and unpredictable cost for a bounded and removable one is what makes it worth doing,
and it is a shape that recurs: static pivoting
does the same trade in the unsymmetric case, and pays with a perturbation that refinement
sometimes cannot remove.
The difference between the two is instructive. Static pivoting perturbs whichever entries turn
out to be too small, so the perturbation is discovered rather than chosen and its size is not
known in advance. A regularisation perturbs a diagonal by a number the code picked before it
started. The first is a repair and the second is a design, and only the second has a law like
0.64/δ attached to it.
Fig. 13 The unsymmetric version of the same trade, from the sparsity field.
Fig. 14 At δ = 10⁻⁸, midway along the inverse law.Fig. 15 And at 10⁻⁴, where the worst residual has come back to the rounding level and the answer has
moved by a tenth of a per cent.Fig. 16 Two refinement steps, for reading the cliff’s position against the six-step figure.Fig. 17 And ten, where the cliff is in exactly the same place.Fig. 18 The compromise this page avoids, from the sparsity field: fill against growth, with a knob.Fig. 19 And the case that made the compromise necessary there.Fig. 20 The unregularised matrix, whose inertia the signs of D reproduce.Fig. 21 Refinement working as intended, in the field where it was introduced.Fig. 22 The system this regularisation is applied to most often.Fig. 23 What happens without it to the factorisation everyone reaches for first.Fig. 24 The symbolic phase’s prediction in the case where it can only be a bound.Fig. 25 And the two routes that avoid factorising K at all.Fig. 26 Three hundred draws rather than five hundred, where the tail is thinner and the share is the same.Fig. 27 A larger sparse problem, where the orderings separate further.Fig. 28 With a worse-conditioned objective, where σ_min is smaller and the cliff moves left.Fig. 29 And the sequence this regularisation is applied inside.Fig. 30 Where a counted inertia fails, which the signs of D inherit.Fig. 31 And a preconditioner that keeps the zero block rather than perturbing it.