The problem backwards

Where the precision points go

A linkage that matches a function at three points is wrong between them, and where the three points are put decides how wrong. Chebyshev spacing cuts the worst error by a third against even spacing, for free — and the reason has nothing to do with mechanisms. It is a fact about a polynomial the linkage has never heard of.

Assumes Three problems called synthesis.

Three prescribed angle pairs determine a four-bar exactly, through a 3 × 3 linear solve. The linkage passes through those three pairs to fourteen decimal places and misses everywhere else, and the miss is the structural error.

Nothing so far has said where the three pairs should be.

They have to be somewhere in the range the mechanism is meant to work over, and beyond that the construction is indifferent — any three distinct pairs give a linear system with a solution. So the choice is free, it is made by whoever sets up the problem, and it turns out to be worth about a third of the error.

The error between the precision points. chebyshev: worst 0.2232°, RMS 0.1475°; uniform: worst 0.3415°, RMS 0.2296°. The error is zero at each precision point by construction and nowhere else. chebyshev has the smallest maximum here, and which curve is best depends entirely on which measure is asked for.
Fig. 1 The structural error of two four-bars computing the same logarithm over the same range. They differ only in where their three precision points were put. Both cross zero exactly three times, by construction; everything else is the consequence of the choice.

Three obvious choices, and the numbers

For y=log10xy = \log_{10} x over x[1,2]x \in [1, 2], with the crank sweeping 90° and the rocker 90°:

Even spacing, including the ends — points at 1, 1.5 and 2. Worst error 0.3415°.

Even spacing, interior only — the three points that divide the range into four equal parts. Worst error 0.6375°, which is nearly twice as bad and is the choice a careless person makes when told not to use the endpoints.

Chebyshev spacing — points at 1.0670, 1.5 and 1.9330. Worst error 0.2232°.

Chebyshev is 1.53 times better than even spacing and nearly three times better than interior spacing. Nothing about the mechanism changed; the same construction was run on three different sets of three numbers.

The interior-only case is worth a moment, because it is the one somebody arrives at by reasoning. A person told that the linkage should be accurate across the range, and that the endpoints are where a mechanism is least well behaved, will naturally place the points inside — and will make the approximation nearly three times worse than the obvious choice they were trying to improve on. Being deliberate about the placement without knowing which direction to be deliberate in is worse than not thinking about it.

Why it has nothing to do with linkages

The reason Chebyshev spacing wins is a statement about polynomial interpolation, and the linkage is incidental to it.

Approximating a function ff by something that agrees with it at nn points leaves an error which, for interpolation by a polynomial, is exactly

f(x)p(x)=f(n)(ξ)n!j=1n(xxj)f(x) - p(x) = \frac{f^{(n)}(\xi)}{n!}\prod_{j=1}^{n}(x - x_j)

for some ξ\xi in the range. The first factor is a property of the function and cannot be influenced. The product is entirely a property of where the points were put.

So minimising the largest error means minimising the largest value of (xxj)\prod(x - x_j), and that is a completely self-contained question with a classical answer: the minimising points are the roots of a Chebyshev polynomial, mapped onto the interval. They cluster towards the ends, which is why the outer two sit at 1.067 and 1.933 rather than at 1 and 2 — the product’s biggest excursions are near the edges, and pulling the points outward flattens them.

A four-bar is not a polynomial and the formula above does not apply to it. What carries across is the shape of the argument: the error is a product of something uncontrollable and something the point placement decides, and the point placement’s job is to keep that second factor small and even. The same spacing appears in quadrature rules and in interpolation for the same reason, and it appears here because the same structure is present.

That is worth saying plainly because the spacing is often presented as a piece of mechanism-design lore. It is not. It is borrowed, and knowing where it is borrowed from is what says when it will and will not help.

A four-bar that computes log₁₀. The output rocker's angle, mapped back into y, against the input crank's angle mapped back into x. The pale curve is log₁₀ x and the solid one is what the linkage does. They agree exactly at the 3 precision points and nowhere else; the largest disagreement over the range is 0.2232° of rocker, which is 7.47e-4 in y. The chebyshev spacing put the precision points at 1.0670, 1.5000, 1.9330.
Fig. 2 The Chebyshev-spaced generator against the function it computes, with its three precision points marked. The outer two sit inside the ends of the range rather than on them.

What the outer points are doing

The Chebyshev points sit at 1.067, 1.5 and 1.933 rather than at 1, 1.5 and 2, and the inward shift is the entire mechanism of the improvement. It is worth seeing why moving points away from the ends of the range helps at the ends.

The error is proportional to (xxj)\prod(x - x_j), and that product is a cubic with roots at the three points. Between the roots it is small; outside the outermost roots it grows without bound. Putting a root exactly at the end of the range means the product is zero there and grows fastest just inside — so the peak between the outer root and its neighbour is large, while beyond the end there is no range left for the growth to be a problem in.

Pulling the outer roots inward gives the product a small region at each end where it is nonzero and growing, and shrinks the peaks in the middle in exchange. The Chebyshev points are exactly the placement where those two effects balance, which is why the peaks come out nearly equal.

The visible consequence is that a Chebyshev-designed generator is slightly wrong at the ends of its range and evenly-spaced one is exactly right there and worse in between. Which of those a designer wants is not obvious and depends on the application: an instrument whose readings at full scale are the ones that get checked may prefer the exact endpoints, and accept a larger error where nobody looks.

That is a real design choice rather than a mistake, and it is worth naming because “use Chebyshev spacing” is usually given as a rule rather than as a trade.

The better test, and why the obvious one is not enough

“Chebyshev gave a smaller maximum error” is a claim that can be true by luck on one function. A stronger test is available and the theorem suggests it.

Chebyshev’s equioscillation theorem says that the best approximation of a given form is characterised by its error alternating in sign and reaching its maximum the same number of times. Not that the error is small — that the peaks are all the same height.

So a spacing that produces peaks of wildly different heights is not near the best one, whatever its maximum happens to be, and comparing peak heights is a way of telling without knowing what the best approximation is.

errorExtremes measures it. It finds the local maxima and minima of the error curve and reports evenness: the smallest peak divided by the largest, which is 1 when every peak is the same height.

Chebyshev spacing: 0.924. Even spacing: 0.887.

So Chebyshev wins on both counts, and assertChebyshevSpacingIsBetter requires both — a smaller maximum and a more even set of peaks. The second half is what makes it a claim about the mechanism of the improvement rather than a report of one instance.

Neither number is 1, and that is the honest part. Chebyshev spacing is not the best approximation; it is a cheap choice of interpolation points that lands near it. Getting the peaks actually level requires optimising, which is the next essay, and the gap between 0.924 and 1 is roughly the size of the prize.

A four-bar that computes log₁₀. The output rocker's angle, mapped back into y, against the input crank's angle mapped back into x. The pale curve is log₁₀ x and the solid one is what the linkage does. They agree exactly at the 3 precision points and nowhere else; the largest disagreement over the range is 0.3415° of rocker, which is 1.14e-3 in y. The uniform spacing put the precision points at 1.0000, 1.5000, 2.0000.
Fig. 3 The same function generated with its precision points evenly spaced, endpoints included. The curves still meet exactly three times and the linkage is a different one — ground 1, and a different crank, coupler and rocker — because three different pairs give a different 3 × 3 system.

The error curve is the diagnostic

The error curve is worth reading rather than merely measuring, because its shape says which of several things has gone wrong.

Three zero crossings and peaks of similar height is what the interpolation is supposed to look like. Both curves in the figure above have it.

Peaks that grow towards one end mean the points are badly placed for the way the function bends, and moving them that way will help. Even spacing shows a mild version of this — its outer peaks are larger, which is exactly what pulling the outer points outward fixes.

A peak far larger than the rest, in one place usually means the mechanism is near a limit of its own travel there rather than that the interpolation is poor. The transmission angle degrades near a rocker’s extremes and the output becomes insensitive to the input, so a given angular error in the output corresponds to almost no crank motion. That is a mechanism problem and no spacing fixes it; the remedy is a different mapping, using less of the rocker’s swing.

No crossings at all means the linkage is on the wrong assembly branch, which is the trap Freudenstein’s equation sets and which produces a smooth, plausible, entirely wrong curve.

Only the second of those four is about spacing, which is a useful proportion to keep in mind. The choice of precision points is the last thing to adjust, not the first.

What the spacing does not fix

Two things stay wrong however the points are placed, and it is worth being clear that this is a small optimisation rather than a solution.

The error still grows with the range. Widening the crank sweep or the function’s interval makes every structural error larger, and no placement of three points changes that. The dominant lever on accuracy is how much of the function is being asked for, and the spacing is a second-order correction to it.

Three points is three points. The whole error curve is bounded below by what a four-bar can do at all, and matching at more points is the other lever — five is the maximum for a function generator, and taking it costs the linear solve, since with five points the two angle offsets become unknowns and the problem stops being linear.

There is a third, and it is easy to miss: the spacing is chosen in the function’s variable, and the error is measured in the rocker’s angle. Those are related by the mapping, which is linear here by choice. With a nonlinear mapping the Chebyshev points in xx would not be Chebyshev points in θ\theta, and the argument above would apply to whichever variable the product formula was written in. Nothing here explores that; the mapping is linear in every figure on this site and is stated as an assumption rather than assumed.

The error between the precision points. chebyshev: worst 0.2232°, RMS 0.1475°; interior: worst 0.6375°, RMS 0.1948°. The error is zero at each precision point by construction and nowhere else. chebyshev has the smallest maximum here, and which curve is best depends entirely on which measure is asked for.
Fig. 4 Chebyshev spacing against interior spacing, which is the choice a careful person reaches by reasoning. Nearly three times worse, and worse in the way the product formula predicts.

Three points is a strange number to compare at

There is a wrinkle in the comparison worth surfacing, because it makes the improvement look smaller than the theory promises.

Chebyshev spacing’s advantage grows with the number of points. At two points there is very little to choose; at twenty the difference between even and Chebyshev interpolation is the difference between convergence and divergence — even spacing on a badly behaved function famously gets worse as points are added, and Chebyshev spacing does not.

Three is right at the bottom of that scale, and a factor of 1.53 is what a three-point comparison affords. Nobody would notice the phenomenon at three points if they were not looking for it.

The reason this essay compares at three anyway is that three is where a four-bar function generator’s design problem is linear, and staying linear is the whole appeal. Going to five points buys accuracy and costs the closed-form solve — the two angle offsets become unknowns, the equations stop being linear in them, and the problem becomes a polynomial system with one hundred and twenty-eight paths to track.

So the honest summary is that the classical spacing argument is a large effect measured here at its weakest, in the only place a linkage designer gets it for nothing.

A caution about the comparison

The three spacings were compared on one function over one range with one mapping, and that is a small experiment.

What makes it worth something is that the reason Chebyshev wins is not about this function. If the argument above is right, the ordering should hold for any smooth ff, and the margin should depend on how much the nn-th derivative varies over the range — a function with a nearly constant derivative should show almost no difference, and a rapidly varying one should show more.

That prediction is not tested here, and it is the obvious next measurement. Naming it is better than leaving the impression that 1.53 is a constant. It is one function’s number.

What can be said from the experiment as run is narrower and still useful: for this function, on this range, the choice is free, the improvement is a third, and the improvement arrives with the peaks more level rather than by accident.

The linkage changes, not just the error

One thing the two error curves conceal is that they belong to different mechanisms.

Three angle pairs determine a four-bar. Different pairs, different 3 × 3 system, different KK’s, different link lengths. The Chebyshev linkage has ground 1, crank 2.965, coupler 2.400, rocker 4.236; the evenly-spaced one is a visibly different set of proportions.

That is worth noticing because it means the comparison is not “the same linkage measured two ways”. It is two designs, and the spacing is a design decision in the fullest sense: it produces a different machine, with different proportions, a different transmission angle through the sweep, and a different amount of room to fit it in.

Nothing here checks those other properties, and a designer would. A spacing that gives a smaller structural error and a linkage that does not fit in the space available has not helped. The structural error is one column of a table with several, and the honest position is that this essay optimises one column and says nothing about the rest.

The three-position defect survey in the motion-generation half of this field makes the same point in a harder form: of 1,176 exactly correct solutions, 176 could be built, and the rejected ones were rejected on grounds the construction knew nothing about. A function generator’s version of that question is milder — the failures are proportions and travel rather than circuits — and it is the same question.

How many points a linkage will take. function generation: 5 free numbers, 1 net constraint per point, 5 precision points; motion generation: 4 free numbers, 1 net constraint per point, 5 precision points; path generation: 9 free numbers, 1 net constraint per point, 9 precision points. Every count in the literature that differs from these differs about what is being counted as free, not about the geometry.
Fig. 5 How many points there are to place, for each of the three problems. Function generation’s five is the ceiling; this essay is about the placement of three of them.

Where it came from

Chebyshev’s connection to linkages is not a coincidence of names, and it is one of the better stories in this subject.

Pafnuty Chebyshev came to approximation theory through mechanisms. He was interested in straight-line linkages — the problem of converting rotation to straight-line motion without a slide, which this site’s curves field is about — and the question of how close a four-bar’s coupler point could come to a straight line is a question about best approximation. The polynomials are named after him because of work that began with the machines.

So the spacing is borrowed from approximation theory, and approximation theory got its start partly from this subject. His own linkage sits in this site’s comparison of straight-line mechanisms, measured at 12% deviation over its full stroke against Peaucellier’s exact zero, and the 12% is a best-approximation result rather than an accident of proportions.

The connection also explains the shape of the field. Somebody who thinks of a linkage as an approximation device asks how good the approximation can be, and the answer to that involves equioscillation, and the tool for equioscillation is a set of points that cluster at the ends. The lore and the mathematics have a common ancestor.

It is also a reminder that this subject was, for a period, where hard analysis got done. A four-bar’s coupler point is a device for producing a function of one variable out of rigid rods, and asking how well it can produce a particular function is a question about approximation that had no other motivation in the 1850s. The answers outlived the machines by a long way.

Two classical straight-line linkages, measured against their own motions. Columns: how far the classical point is from Ball's point in coupler lengths, the measured order of contact with the tangent line, the departure from the chord as a percentage of the span, and the worst absolute departure. Watt's nine per cent and Chebyshev's twelve are numbers this site already publishes, computed here again by a route that shares no code with the one that published them. Underneath each is the same linkage tracing with Ball's point instead. Watt's improves by a factor of 2.4; Chebyshev's relative departure improves by more, and its worst departure improves by only 1.34 — because Ball's point for that linkage is 3.3 coupler lengths off the mechanism and because Chebyshev was not asking the question Ball answered.
Fig. 6 The same choice made by two nineteenth-century designers and by the motion itself. Ball’s point maximises the order of contact at one instant; Chebyshev’s spacing minimises a maximum over a range; the two answers are different points.

The result having nothing to do with linkages is the most useful thing in this rung and it is worth taking one step further. Chebyshev spacing is optimal for polynomial interpolation, and the reason it helps here is that a four-bar’s error between precision points behaves like an interpolation error — it is a smooth function vanishing at the prescribed points, so its size is governed by the same product of distances a polynomial’s is. That means the improvement transfers to any approximate synthesis whose error vanishes at prescribed points, whatever the mechanism: a six-bar, a cam fitted through samples, a non-circular gear pair fitted to a demand. None of them is a polynomial and all of them inherit the spacing argument, because the argument is about where a function that vanishes at nn points is largest. That is a free improvement available across the whole synthesis field, it costs nothing but choosing where to sample, and it is left on the table wherever precision points are placed evenly because even spacing is the obvious thing to do.

What this makes readable

Essays that name this one as a prerequisite.

What links here

The 8 of 12 essays linking to this one that name the most of the same objects.

The objects this essay names

Each one links to every other essay that touches it.

Chebyshev spacingEquioscillationFreudenstein equationFunction generationInterpolationMinimaxPrecision-pointStructural error