Generator

MINRES on a saddle-point system under three Schur-complement approximations, and under none

One function in the blockprec library, called 11 times across 4 essays. Below: what it draws at its defaults, what it draws at every value an essay asks for, the 26 claims it put to the test while drawing them, and where it stands against the rule this site is named for.

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.

MINRES on a saddle-point system under three Schur-complement approximations, and under noneThe 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.03691215182110⁻¹²10⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²1MINRES steprelative residualthree stepssteps to a residual of 10⁻¹¹exact S3diag(H)11scaled AAᵀ11none22three eigenvalues, three stepsand the approximations pay for the difference

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.

Where the least outer-times-inner work falls, on twenty-four augmented saddle-point systemsFor 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⁵.norms all onesmallest least-work γ0.032largest3.2·10⁵10⁻²10⁻¹110¹10²10³10⁴10⁵10⁶the constraint's condition numberleast-work γ10100100010⁴Hessian κ 10Hessian κ 100Hessian κ 10⁴two seeds at every pair of condition numbersseven decades, and no norm to read them from

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.

Work over the least work, against γ, on the six systems whose constraint has condition number 1000For 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.constraint κ 1000ν-rule, worst of six1.2work at γ = 0.01, worst1.910⁻²10⁻¹110¹10²10³10⁴10⁵10⁶10⁷10⁸11.251.51.7522.252.5γwork ÷ the leastH κ 10, seed 9H κ 10, seed 11H κ 100, seed 9H κ 100, seed 11H κ 10⁴, seed 9H κ 10⁴, seed 11dots: the smallest γ with ν at least 0.03a broad floor that moves by decades

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.

The smallest generalised eigenvalue of the augmented pair at each system's least-work γ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.at the least worksmallest ν at the optimum0.002largest0.05910⁻³10⁻²10⁻¹the constraint's condition numbersmallest ν at the least work10100100010⁴Hessian κ 10Hessian κ 100Hessian κ 10⁴dashed: ν = 0.03not one value, and still a better coordinate than γ

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.

What a rule written in the smallest generalised eigenvalue costs, against each system's own least workFor 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.work ÷ the least, over 24 systemsν-rule at 0.03, worst1.3best fixed γ, worst1.611.251.51.752target for the smallest νwork ÷ the least0.0030.010.030.10.3ν-rule, worstν-rule, medianfixed γ, worstfixed γ, mediandashed: the best single γ for all 24a target in ν travels; a value of γ does not

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.

The forward error at the ν-rule's γ, against the best forward error any γ on the grid gives, target 0.03One 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⁻¹⁰.digits at ν ≥ 0.03median, times the best12worst, times the best456110⁻¹⁶10⁻¹⁵10⁻¹⁴10⁻¹³10⁻¹²10⁻¹⁶10⁻¹⁵10⁻¹⁴10⁻¹³10⁻¹²10⁻¹¹10⁻¹⁰10⁻⁹best forward error on the gridforward error at the rule's γHessian κ 10Hessian κ 100Hessian κ 10⁴dashed: the rule gives up nothingleast work and most digits are different γ

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.

The matrix a constraint makes

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 makes

One 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 makes

Three 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 makes

Where 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.

The whole library · All essays · What must fail