An exact answer to a measured problem
Worth reading first: The condition number is an amplifier · The exact answer to a nearby problem · An answer with no error in it.
This field opened by removing every term from the identity the site is built on. Forward error zero, backward error zero, residual the zero vector, and a condition number multiplying nothing. Nine essays have been about what replaced it — the length of the numbers, the budget of primes, the bound on a reconstruction — and all of them are cost arguments.
There is one term that did not go away, and it is the one that decides whether any of the cost was worth paying.
The measurement
Take the Hilbert matrix of order eight, cleared of its denominators so that every entry is an integer — multiplying by a constant changes no condition number, so this is the classical ill-conditioned matrix arriving in a field that cannot round. Choose a right-hand side. Solve exactly and call the answer the truth, because it is: there is no rounding anywhere in it and the residual is the zero vector.
Now perturb the matrix by an exact relative ε — each entry multiplied by 1 ± ε with ε a rational 10⁻ᵏ, so the perturbation is exactly ε rather than approximately — and solve exactly again. The residual of that solve is also the zero vector. It is the exact solution of the perturbed system.
At ε = 10⁻¹⁴ the two answers differ by a relative 10⁻⁵.
At ε = 10⁻¹⁰ they differ by 0.074. At ε = 10⁻⁶ they differ by 1.34 — the answer has no correct digits at all — and at 10⁻² by 8.8, which is larger than the answer.
The amplification at the accurate end is about 10⁹. That is the matrix’s condition number, doing the only thing left for it to do.
It is worth dwelling on what those numbers are, because the temptation is to read them as an arithmetic failure and there is no arithmetic in them. Every solve on that curve is over the rationals. Every entry of every answer is a fraction in lowest terms. Substituting any of them back into its own system gives an identity between integers, not a small number — the residual is not 10⁻¹⁶, it is the zero vector, and there is nothing on the plot for it to be compared against.
Why the field cannot fix this and never could
The identity says forward error is bounded by condition number times backward error, and this field’s whole achievement is driving the backward error to exactly zero. What it cannot do is anything about the other factor, because the other factor is not about arithmetic.
The condition number is a property of the map from data to answer. It says how far the answer moves when the data moves, and it would say the same thing if the arithmetic were performed by an oracle. The essay that introduced it makes the point in floating point and the point is not about floating point: an amplifier amplifies whatever arrives, and what arrives here is the measurement’s own error rather than a rounding.
So the correct reading of the curve is that it has nothing to do with this field at all. It would be identical if the solves were done in double precision, up to the point where the double precision’s own error became comparable — which for this matrix is at about ε = 10⁻¹⁶, off the left edge. Every point on the plotted curve is a point where the arithmetic contributed nothing and the data contributed everything.
Where the exactness does help, precisely
That is not the same as saying it never helps, and the boundary is worth drawing carefully, because it is the practical content of ten essays.
Exactness helps when the data is exact. A graph’s Laplacian is integers because a graph is vertices and edges; a spanning-tree count is an integer because Kirchhoff’s theorem says so; a combinatorial matrix has the entries it has and no measurement was involved. Those are the cases where the answer is a certificate, and the field’s cost is buying something real.
Exactness helps when the answer is discrete. A rank, a determinant’s sign, a count of lattice points, a decision about whether a system has an integer solution. There the amplification argument does not apply in the same way, because a small perturbation of the data changes the answer by nothing at all until it changes it completely — which is the graph field’s whole subject — and an exact routine lands on the right side of that discontinuity by construction.
And exactness helps as an instrument. The site’s floating-point measurements are checked against exact ones throughout: the Hilbert inverse in closed form, the resistances of a graph as ratios of integers, a characteristic polynomial compared as an integer polynomial. In every one of those the exact answer is not the deliverable; it is the ruler.
It does not help when the data was measured. Then the exact answer is the exact answer to somebody else’s problem, and the distance to the intended one is the condition number times the measurement error, and no arithmetic reaches it.
The awkward case is the fourth, and it is common: data that is nearly exact. A matrix of physical constants known to twelve digits, a discretisation whose coefficients are rationals rounded once when they were tabulated, a graph whose weights were measured. There the data’s error is well above the unit roundoff and well below anything anybody would call inaccurate, and the answer is that exactness buys the difference between 10⁻¹⁶ and the data’s own error — which is to say, nothing, and the routine should be chosen on the cost model rather than on the accuracy.
Why the perturbation had to be exact, which cost a rewrite
The first version of this measurement perturbed the integer matrix the obvious way: scale every entry by 1/ε, round, and read the rounded matrix as the measured one. It produces an integer matrix, it is one line, and it is wrong.
The relative perturbation it applies is the rounding’s, not ε’s. Asked for 10⁻⁶ on a matrix with two-digit entries it delivered about 2·10⁻⁸, so the x-axis of the plot was off by two orders of magnitude and the reported amplification with it. The figure was internally consistent, every assertion in it passed, and the numbers it printed were about a perturbation nobody had asked for.
The repair is to stay in the rationals. Entry aᵢⱼ becomes aᵢⱼ·(1 ± ε) with ε the exact rational 10⁻ᵏ, so the perturbation is ε by construction and the x-axis means what it says. That the repair is available at all is a property of this field — everywhere else on the site a perturbation of a specified size has to be applied approximately, and the essays say so.
It is worth recording because it is the shape of mistake this field is most exposed to. When nothing rounds, there is no residual to notice a construction error by, and an assertion about the answer passes happily while the question is a different one. The check that caught it was arithmetic on the two axes rather than anything the routine reported about itself.
What a backward-stable float solve is worth here, exactly
The comparison worth making is not exact-against-float. It is exact-against-backward-stable, and the site has a phrase for what backward stability delivers: the exact answer to a nearby problem.
A backward-stable float solve returns the exact solution of (A + E)x = b with ‖E‖ of order u‖A‖ — a relative perturbation of about 10⁻¹⁶. An exact solve of measured data returns the exact solution of (A + E)x = b with ‖E‖ the measurement’s own error — here 10⁻¹⁴, a hundred times larger.
So on this system, the float solve is nearer to the truth than the exact one is, because its effective perturbation is smaller. That is not a paradox and it is not an argument against exact arithmetic; it is the identity being read correctly. The two routes differ only in the size of the perturbation they are exactly solving, and one of them inherits the data’s.
The general form is a rule of thumb worth stating: exact arithmetic is worth its cost when the data’s own relative error is below the unit roundoff, and is worth nothing when it is above. Between those, it buys a fraction of a digit.
The saturation at the right of the curve
The plot bends, and the bend is worth explaining because it is not a numerical artefact.
At small ε the error is proportional to ε with the condition number as the constant, which is the straight part. As ε grows the perturbed system stops being a perturbation of the original one: at ε = 10⁻² the matrix has changed in its second digit and its solution is a different vector of comparable size, so the relative difference settles at a number of order one rather than continuing to grow. The amplification, being the ratio of the two, therefore falls as ε rises — 10⁹ at 10⁻¹⁴, 1.3·10⁶ at 10⁻⁶, 880 at 10⁻².
That is the first-order theory failing exactly where it is supposed to. The condition number bounds the derivative of the answer with respect to the data, so it predicts the error for perturbations small enough that the derivative describes the map, and the bend marks where the perturbation stops being small in that sense. The essay on a condition number for one eigenvalue meets the same boundary from the other side: a first-order sensitivity that is exact in the limit and useless at a perturbation the reader would call small.
So the useful reading of the figure is the left half, where the slope is one, and the right half is the standing reminder that a condition number is a linearisation.
The conditioning is visible in the field’s own unit
There is one thing this field can say about conditioning that the floating-point essays cannot, and it is a small pleasure.
The exact solution of an ill-conditioned integer system has long parts. The Hilbert family’s determinant at order eight occupies forty bits where a random matrix with comparable entries occupies twenty-four, and the answer’s numerators and denominators are correspondingly long. So the difficulty of the problem shows up as bits — as a cost — rather than as an error, and a routine measuring how much work it is doing is measuring something related to the conditioning.
Related, and not equal. The two quantities are genuinely different: a matrix can have a long determinant and be perfectly conditioned, which is what the Hadamard family is, and a matrix can have a determinant of exactly 1 and be badly conditioned, which is what a unit-triangular matrix with large off-diagonal entries is. So the correspondence is a tendency rather than an identity, and it would be an error to read a long answer as a warning. What it is safe to read it as is a cost, which is what this field measures everything in — and the pleasant part is that an ill-conditioned problem is honestly expensive here in a way it is not in floating point, where it costs exactly the same number of operations as an easy one and returns a worse answer for the same price.
The one place the two authors can be separated completely
There is a positive result buried in the negative one, and it is the sharpest form of a claim this site has been making since its second field.
The identity says a wrong answer has two possible authors and that they are separately measurable. In floating point the separation takes work: a backward error has to be estimated, a condition number has to be estimated, and both estimates carry their own error — the essay on estimating a condition number is about an estimator that can be made to report whatever one likes.
Here the separation is free and it is exact. The backward error is zero, by construction, with no estimate involved. So the entire forward error is the second author’s, and dividing it by the data’s own error gives the amplification measured rather than bounded — 10⁹ on this matrix, at a perturbation where the linearisation still holds.
That makes this field the only place on the site where the identity can be checked rather than applied. Everywhere else the two factors are estimated and their product compared with an observed error, and agreement within an order of magnitude counts as confirmation. Here one factor is exactly zero, the other is exactly the ratio of two exactly computed quantities, and there is nothing left to estimate.
What the field is for, stated once at the end
Ten essays in, the honest summary is a narrow one and it is better for being narrow.
Exact linear algebra removes one of the two authors of a wrong answer completely. That is worth a great deal when the other author is silent — combinatorial data, integral input, a discrete output, a ruler for measuring something else — and it is worth nothing at all when the other author is loud. The cost of removing it is not a slowdown by a constant; it is a change in what the cost model is, from a count of operations to a count of operations weighted by the length of their operands, and the four orders of magnitude between the best and worst arrangements of the same elimination are the field’s central measurement.
And the condition number survives all of it. It was never a statement about arithmetic — that is the site’s oldest claim, made in its second field and repeated in most of the twenty since — and here it is demonstrated in the only setting where it can be demonstrated cleanly, because here it is the only term left.
At other settings
Shares its objects with
Essays that name at least two of the same things, and that neither author linked.
- A backward-stable answer to a problem nobody asked — both name backward error, condition number, exact ground truth, forward error
- A condition number scaling cannot move — both name backward error, condition number, forward error, hilbert matrix
- A condition number sent to infinity — both name backward error, condition number, exact ground truth, forward error
- A tensor that cannot be decomposed — both name backward error, condition number, exact ground truth, forward error
- The inverse that is never formed — both name backward error, condition number, forward error, hilbert matrix
- The problem the solver was actually given — both name backward error, condition number, exact ground truth, forward error
Named objects
A flat tag is an object no other essay names yet.
Backward errorBit lengthCondition numberExact arithmeticExact ground truthForward errorHilbert matrix