MINRES on a saddle-point system under three Schur-complement approximations, and under none
At its defaults it draws minres on a saddle-point system under three schur-complement approximations, and under none. The same system at 12 unknowns and 5 constraints, solved four ways. With the exact Schur complement the preconditioned matrix has three distinct eigenvalues and the residual falls to 4.109·10⁻¹⁵ in three steps, after which nothing is left to remove. Replacing S by A diag(H)⁻¹Aᵀ costs 11 steps and replacing it by a scaled AAᵀ costs 11; the unpreconditioned system takes 22. The exact preconditioner is unaffordable — forming S costs 5 solves with H and a decomposition — so its value is as the statement the cheap ones are measured against, and the measurement needs no reference solution: the distance from {1 − φ, 1, φ} is a property of the approximation alone.
mgw-convergence is one function in lib/figures/blockprec.js —
preconditioning a saddle point — three eigenvalues, and a spectrum with no constraint in it. Everything below came out of it during this build, at
arguments taken from the essays rather than invented for this page. A figure here is the
figure a reader meets in an essay, and if the generator changes, this page changes with it.
At its defaults
Drawn even though every essay passes arguments — which on this site is every essay, at 100% of placements since the standard pass. A default nothing exercises is a trap for the next essay to call this with none, and this is the page where a default that has drifted from the figures around it becomes visible.
The same system at 12 unknowns and 5 constraints, solved four ways. With the exact Schur complement the preconditioned matrix has three distinct eigenvalues and the residual falls to 4.109·10⁻¹⁵ in three steps, after which nothing is left to remove. Replacing S by A diag(H)⁻¹Aᵀ costs 11 steps and replacing it by a scaled AAᵀ costs 11; the unpreconditioned system takes 22. The exact preconditioner is unaffordable — forming S costs 5 solves with H and a decomposition — so its value is as the statement the cheap ones are measured against, and the measurement needs no reference solution: the distance from {1 − φ, 1, φ} is a property of the approximation alone.
sweep: "gamma-optima"
The arguments are the ones An augmentation read in the smallest eigenvalue passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.
For each of twenty-four systems — the constraint's condition number 10, 100, 1,000 or 10,000, the Hessian's 10, 100 or 10,000, two seeds each, every one with a Hessian and a constraint of norm one — the γ on a quarter-decade grid from 0.01 to 10⁸ at which MINRES steps times conjugate gradient steps per inner solve is least. They run from 0.0316 to 3.16·10⁵. at a constraint condition number of 10 they run from 0.0316 to 1.78; at a constraint condition number of 100 they run from 0.562 to 100; at a constraint condition number of 1000 they run from 56.2 to 1778; at a constraint condition number of 10⁴ they run from 5623 to 3.16·10⁵.
sweep: "gamma-work", kappaA: 1000
The arguments are the ones An augmentation read in the smallest eigenvalue passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.
For each Hessian condition number and seed, MINRES steps times conjugate gradient steps per inner solve, divided by the least over the γ grid, against γ on a logarithmic axis, capped at 2.6. The least work sits at γ = 1000, 1778, 1000, 1778, 100, 56.2. A filled dot marks where the rule "the smallest γ at which the smallest generalised eigenvalue reaches 0.03" lands: at 1.20, 1.09, 1.06, 1.09, 1.05, 1.10 times the least work.
sweep: "gamma-nu"
The arguments are the ones An augmentation read in the smallest eigenvalue passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.
For the same twenty-four systems, the smallest of γs over one plus γs, over the eigenvalues s of the Schur complement, at the γ of least work, against the constraint's condition number on a logarithmic axis. It runs from 0.0020 to 0.0590 — a factor of 30. The dashed line is 0.03, the target the rule below uses.
sweep: "gamma-rule"
The arguments are the ones An augmentation read in the smallest eigenvalue passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.
For each target c, the rule takes the smallest γ on the grid at which the smallest generalised eigenvalue reaches c, and its work is divided by that system's least; the median and the worst over twenty-four systems are drawn against c on a logarithmic axis. at 0.003: median 1.314, worst 1.909; at 0.01: median 1.100, worst 1.545; at 0.03: median 1.067, worst 1.286; at 0.06: median 1.150, worst 1.348; at 0.1: median 1.200, worst 1.400; at 0.3: median 1.270, worst 1.600. The best single γ for every system, 31.6, has a median of 1.364 and a worst of 1.612.
sweep: "gamma-digits"
The arguments are the ones An augmentation read in the smallest eigenvalue passes. A value nobody placed would be a picture no essay asked for and no claim was ever checked against.
One dot per system: horizontally the smallest forward error of the answer, against the exact rational solution, over the whole γ grid; vertically the forward error at the γ the rule chooses. On the dashed diagonal the rule gives up nothing. The median system is 11.6 times its best and the worst 4561 times; the largest error the rule accepts is 4.38·10⁻¹⁰.
What it checked while drawing
Every figure above checked its own claims on the way to being drawn, and a claim that failed
would have stopped the picture rather than shipped a wrong one. Those checks used to leave
no trace at all: a passing one returned true and the only evidence the figure had
checked anything was that nothing crashed. The list below is what they actually said, collected
by running this generator with an observer installed — not a description of
what it is believed to check.
26 distinct claims across 6 sets of arguments, grouped below by shape — because most of them are one sentence with a different number in it, and how many separate times that sentence was put to the test is the informative part.
a constrained problem the dense operators can afford
a constraint condition number the sweep draws
a constraint no larger than the problem
a finite double, since an infinity is not a rational
a positive definite preconditioner, since MINRES needs one
a positive definite Schur complement to take a square root of
a problem the dense operator can afford
a problem with something left to minimise
a rule for γ this sweep scores
a Schur approximation this file implements
a spread between exact and six decades
a target the rule is scored at
a tolerance above the rounding floor
an augmentation between nothing and twelve decades
an augmented block Cholesky still accepts
and the forward error rises
and the same system unpreconditioned needs more
both iterations reach the tolerance
fewer constraints than unknowns, so something is left to minimise
Jacobi needs a symmetric matrix
LU is for square matrices
matmul shapes agree
positive definite blocks for both preconditioners to invert
the outer count falls and the inner count rises
the triangular count is at most one more than the number of constraints, and below the diagonal count
three steps with the exact Schur complement take the residual below 10⁻⁸
Against the rule
It draws a decomposition and prints its residual. It calls
minres, blockDiagonalRun,
and every figure above carries the badge — which residualcheck verifies by looking
for it in the emitted SVG rather than by finding the call that builds one. A badge that is
constructed and then left out of the body is the failure that check exists for.
Across the library: the rule bites on 217
of 397 generators —
199 print a residual and
18 are exempt with a published reason;
180 factorise nothing.
Read from lib/residual-rule.js, which is the same body the gate enforces from,
and the gate's last check fails the build if this page and it disagree about any generator.
Where it is called
Changing this generator changes every figure on this list. That is what makes the list worth publishing rather than keeping in a check script.
An augmentation read in the smallest eigenvalue
An augmented Lagrangian preconditioner's least work sat at γ = 1, 10⁴ and 1 on three systems, and two of the three optima sat where the smallest generalised eigenvalue was about 0.06 — which suggested a rule written in ν rather than γ. On twenty-four systems whose norms are all one, the least-work γ spans seven decades and ν at the optimum spans a factor of thirty, so there is no one ν. There is still a rule: take the smallest γ at which ν reaches 0.03, and the median system pays 7 per cent over its least work and the worst 29, where the best single γ pays 61. Its price is digits — twelve times the best forward error on the median system, 4,561 times on the worst.
The matrix a constraint makesOne eigenvalue and two steps
Put the off-diagonal block back into a block-diagonal saddle-point preconditioner and every eigenvalue of the preconditioned matrix becomes exactly one. GMRES still needs two steps, because the matrix is the identity plus a nilpotent part of norm 54, and a computed eigenvalue at one comes back as a ring of radius 8·10⁻⁸ — the square root of the rounding, not the rounding. With an approximate Schur complement the triangular form leaves one copy of each value where the diagonal form leaves two, and the step count halves.
The matrix a constraint makesThree eigenvalues, and two are the golden ratio
Precondition a saddle-point system by the block diagonal of its own two definite pieces and the preconditioned matrix has exactly three distinct eigenvalues — 1, and the two roots of λ² − λ − 1. A minimal polynomial of degree three means three steps, at every conditioning, and the preconditioner nobody can afford turns out to be the statement the affordable ones are measured against.
The matrix a constraint makesWhere the augmentation puts the cost
Add γAᵀA to the objective block of a saddle-point system and its Schur complement tends to I/γ, so the cheapest possible approximation becomes the right one and the golden-ratio spectrum arrives — within 7.6·10⁻⁶ at γ = 10⁶. MINRES falls from 21 steps to 6. The inner solve with the augmented block rises from 14 conjugate gradient steps to 43, their product does not fall at all, and the answer loses seven and a half digits on the way.