Stand at one spot on a curve, measure everything you can there, and use those measurements to guess the height somewhere else.
You’d do this when the curve is hard to compute everywhere but easy to measure at one point, or when you want to see what drives a change. A bond’s price is a familiar case: you know its yield and duration today and want to know what happens if rates move.
The guess is built in layers. Each layer uses one more thing you measured at the anchor. The first layer is a straight line. The second bends it. The third bends the bend. You stop when the layers stop mattering, or when you run out of measurements.
The curve is y = x³. You are standing at x = 1. The true answer is 1.2³ = 1.728, but pretend you can’t compute it.
What you know at x = 1
| Thing | How you get it | Value at x = 1 |
|---|---|---|
| Height | x³ | 1 |
| Slope | derivative, 3x² | 3 |
| How fast the slope changes | derivative of that, 6x | 6 |
| How fast that changes | derivative of that | 6 |
| Anything further | derivative of a constant | 0 |
The walk. Destination minus start: 1.2 − 1 = 0.2. Call it h.
Layer 1: pretend the slope stays 3. Guess = height + slope × walk = 1 + 3 × 0.2 = 1.6. Off by 0.128.
Layer 2: the slope drifts. It goes up at 6 per unit, so over the walk it rises from 3 to 3 + 6 × 0.2 = 4.2. Use the average slope, 3.6, instead of 3. Guess = 1 + 3.6 × 0.2 = 1.72. Off by 0.008.
Written as a separate correction: the new piece is ½ × 6 × 0.2² = 0.12, added to the 1.6.
Layer 3: the drift rate drifts. Same move one level deeper. The correction is 6 × 0.2³ ÷ 6 = 0.008. Guess = 1.728. Off by exactly 0.
Layer 4 and beyond: the measurement is 0, so every further correction is 0.
The guess is now perfect at x = 1.2, and it’s perfect at every other x too. x³ only has three pieces of information in it. Use all three and you have rebuilt the function.
Try it at x = 3 (walk h = 2): 1 + 3(2) + 3(2)² + (2)³ = 1 + 6 + 12 + 8 = 27 = 3³. Still exact, even two units from the anchor.
Layer 1 is the tangent line. Layer 2 bends it into a parabola that hugs the curve near x = 1 but misses on both sides. Layer 3 (dashed) lies on top of the black x³ curve at every x, which is the whole point: for a polynomial, enough layers is exactly the function.
Each layer’s measurement gets divided before it’s used: layer 1 by 1, layer 2 by 2, layer 3 by 6, layer 4 by 24. Those are 1!, 2!, 3!, 4!. Two ways to see why.
The averaging picture. Layer 2 used the average slope over the walk. The slope was a ramp going from 3 to 4.2, and the average of a ramp is halfway: that’s the ÷2. Layer 3 needs the average of something that grows like a parabola, and a parabola from zero spends most of the walk being small, so its average is only a third of its end value: another ÷3. Stack them: 2 × 3 = 6. One more level and the average of a cubic is a quarter: 2 × 3 × 4 = 24.
Check the parabola claim with numbers. Sample t² at t = 0.1, 0.2, …, 1.0: you get 0.01, 0.04, 0.09, 0.16, 0.25, 0.36, 0.49, 0.64, 0.81, 1.00. They add to 3.85, average 0.385, and with finer sampling it settles to ⅓.
The power-raising picture. Differentiating hⁿ gives n × hⁿ⁻¹: lowering a power by one multiplies by that power. So raising a power by one divides by it. To turn a constant measurement into a term in h³ you raise the power three times, paying ÷1, ÷2, ÷3 along the way. That product is 3! = 6.
| Layer | Measurement (x³ at 1) | Divide by | Term |
|---|---|---|---|
| 1 | 3 | 1 | 3h |
| 2 | 6 | 2 | 3h² |
| 3 | 6 | 6 | h³ |
| 4 | 0 | 24 | 0 |
Same game, anchor at x = 1. Height is ln 1 = 0. Slope is 1/x, so 1 at the anchor.
What you know at x = 1
| Layer | Derivative | Value at 1 | Divide by | Term |
|---|---|---|---|---|
| 1 | 1/x | 1 | 1 | h |
| 2 | −1/x² | −1 | 2 | −h²/2 |
| 3 | 2/x³ | 2 | 6 | h³/3 |
| 4 | −6/x⁴ | −6 | 24 | −h⁴/4 |
| 5 | 24/x⁵ | 24 | 120 | h⁵/5 |
| 6 | −120/x⁶ | −120 | 720 | −h⁶/6 |
The measurements never hit zero. They alternate sign and grow. So there is always another correction, forever. Whether the corrections help depends on how far you walk.
Short walk: x = 1.5, so h = 0.5. True value ln 1.5 = 0.4055.
| Layers used | Guess | Gap |
|---|---|---|
| 1 | 0.5 | 0.0945 |
| 2 | 0.375 | 0.0305 |
| 3 | 0.4167 | 0.0112 |
| 4 | 0.4010 | 0.0044 |
| 5 | 0.4073 | 0.0018 |
| 6 | 0.4047 | 0.0008 |
Each layer roughly halves the gap. Keep going and it heads to zero.
Long walk: x = 2.5, so h = 1.5. True value ln 2.5 = 0.9163.
| Layers used | Guess | Gap |
|---|---|---|
| 1 | 1.5 | 0.5837 |
| 2 | 0.375 | 0.5413 |
| 3 | 1.5 | 0.5837 |
| 4 | 0.2344 | 0.6819 |
| 5 | 1.7531 | 0.8368 |
| 6 | −0.1453 | 1.0616 |
The gap gets worse. Each term is ±hᵏ/k, and with h = 1.5 the hᵏ grows faster than the k can shrink it: 1.5, 1.125, 1.125, 1.27, 1.52, 1.90, … The guess swings wider and wider around the truth.
Inside the band the colored curves pile onto the black one, each layer tighter than the last. Right of x = 2 they fan out: layer 3 shoots up, layer 4 dives, layer 5 shoots higher, layer 6 dives harder. Every extra layer swings further from ln x instead of closer.
The rule. For ln x about 1, the corrections help when |h| < 1 and hurt when |h| > 1. That distance, 1, is the radius of convergence. It’s set by where the function itself breaks: ln x blows up at x = 0, exactly one unit left of the anchor, and the series can’t reach further right than it can reach left.
x³ had no such limit because its corrections ran out before they could misbehave. That is the difference between a polynomial and everything else.
Everything above, written the standard way:
Pₙ(x) = Σₖ₌₀ⁿ f⁽ᵏ⁾(x₀) / k! · (x − x₀)ᵏ
Spelled out for the first few terms:
Pₙ(x) = f(x₀) + f′(x₀)(x − x₀) + f″(x₀)/2 · (x − x₀)² + f‴(x₀)/6 · (x − x₀)³ + ⋯
Every symbol, in the order it appears:
| Symbol | Read it as | What it is | In the x³ example |
|---|---|---|---|
| f | “the function” | the curve you’re guessing; f(x) is its height at x | x³ |
| x | “x” | the destination, any point on the horizontal axis | 1.2 |
| x₀ | “x-nought” | the anchor, where you stood and took measurements | 1 |
| x − x₀ | “the walk” | destination minus start, also written h | 0.2 |
| P | “the polynomial” | the guess; a polynomial because it’s a sum of powers of the walk | 1 + 3h + 3h² + h³ |
| n | “n” | how many layers you used; the highest power in the guess | 3 |
| Pₙ(x) | “P-n of x” | the guess using n layers, evaluated at x | P₃(1.2) = 1.728 |
| k | “k” | the counter: which layer you’re on, running 0, 1, 2, … up to n | 0, 1, 2, 3 |
| Σₖ₌₀ⁿ | “sum from k = 0 to n” | add up the term for every k from 0 through n | four terms |
| f′, f″, f‴ | “f-prime, double-prime, triple-prime” | first, second, third derivative: slope, rate of slope, rate of that | 3x², 6x, 6 |
| f⁽ᵏ⁾ | “f-k” | the k-th derivative; f⁽⁰⁾ is f itself, f⁽¹⁾ is f′, and so on | f⁽²⁾ = 6x |
| f⁽ᵏ⁾(x₀) | “f-k at x-nought” | the k-th derivative evaluated at the anchor, a plain number | 1, 3, 6, 6 |
| k! | “k factorial” | 1 × 2 × … × k, the divide-by column; 0! = 1 | 1, 1, 2, 6 |
| (x − x₀)ᵏ | “the walk to the k” | the walk raised to the layer number | 1, 0.2, 0.04, 0.008 |
| f(x) − Pₙ(x) | “the gap” | true height minus guess | 0 |
| ξ | “xi” (Greek letter) | some unknown point between x₀ and x; used only in the error formula | somewhere in [1, 1.2] |
So the k = 2 term of the sum is: take the second derivative (6x), evaluate at the anchor (6), divide by 2! (3), multiply by the walk squared (0.04). That’s 0.12, the layer-2 correction from the worked example.
How big is the gap? It’s controlled by the next measurement you didn’t use, taken somewhere along the walk:
f(x) − Pₙ(x) = f⁽ⁿ⁺¹⁾(ξ) / (n+1)! · (x − x₀)ⁿ⁺¹ for some ξ between x₀ and x
Read it as: the gap is small when the walk is short (the hⁿ⁺¹ is tiny), when the next derivative is tame, or when n is large enough that (n+1)! dominates. The gap is large when the walk is long and the higher derivatives are big, which is exactly what happened to ln x at x = 2.5.
Four places you’ve met this without the name. Each is worked with numbers.
Bond prices: duration and convexity. A 10-year zero at a 4% yield is priced 100/1.04¹⁰ = 67.56. The anchor is 4%. The two measurements are duration (layer 1, slope) = 10/1.04 = 9.62 and convexity (layer 2) = 10 × 11/1.04² = 101.7.
Yield rises 1%, so the walk is 0.01:
| Layers | Guess | True price | Gap |
|---|---|---|---|
| 1 (duration only) | 67.56 × (1 − 9.62 × 0.01) = 61.06 | 61.39 | 0.33 |
| 2 (add convexity) | 61.06 + 67.56 × ½ × 101.7 × 0.01² = 61.40 | 61.39 | 0.01 |
Yield rises 3%, walk 0.03: duration alone says 48.07, convexity pulls it to 51.16, true is 50.83. The gap is 30 times larger than for the 1% move. That’s the long walk. Traders quote duration and convexity for exactly the reason your tool quotes delta and gamma.
How a calculator computes sin. There’s no sin key inside the chip; it sums the series about 0: x − x³/6 + x⁵/120 − x⁷/5040 + ….
sin(0.5): 0.5 − 0.0208 + 0.0003 = 0.4794. True value 0.4794. Three terms.
sin(3): 3 − 4.5 + 2.025 − 0.434 + 0.050 − 0.004 = 0.137. True value 0.141. Six terms and still off in the third decimal. The series converges everywhere, unlike ln x, but a long walk needs many more layers. Calculators dodge this by folding the input back to a small angle first, which is the “walk less” strategy.
Pendulum clocks. The textbook period T = 2π√(L/g) comes from replacing sin θ with θ, which is layer 1 of the sine series. The next layer says the true period is longer by a factor of about 1 + θ₀²/16, where θ₀ is the swing in radians.
| Swing | θ₀ in radians | Correction | Period error if you ignore it |
|---|---|---|---|
| 5° | 0.087 | 1.0005 | 0.05% |
| 20° | 0.349 | 1.0076 | 0.8% |
| 60° | 1.047 | 1.069 | 7% |
A clock built on layer 1 keeps time at small swings and drifts at big ones. Same story: the anchor is θ = 0 and the walk is the amplitude.
Compound growth. (1 + r)ⁿ about r = 0 is 1 + nr + n(n−1)r²/2 + …. For 5% over 10 years: layer 1 says 1.50, layer 2 says 1.50 + 45 × 0.0025 = 1.61, true is 1.63. Layer 1 alone is the “simple interest” mental shortcut, and the layer-2 term is exactly how much compounding beats it.
All four break the same way ln x did. Past some size of move the layers you kept stop describing the function, and the fix is either more layers, a shorter walk, or computing the real thing.
Recipe for any function about any anchor
The two examples side by side
| x³ about 1 | ln x about 1 | |
|---|---|---|
| Derivatives at anchor | 1, 3, 6, 6, 0, 0, … | 0, 1, −1, 2, −6, 24, … |
| k-th term | 3h, 3h², h³, then 0 | (−1)ᵏ⁺¹ hᵏ / k |
| Exact after | 3 layers | never |
| Works for | every x | 0 < x < 2 only |
| Why | polynomial: information runs out | ln x breaks at 0, one unit from the anchor |
Factorials
| k | k! | Average of tᵏ over [0, h] |
|---|---|---|
| 1 | 1 | h/2 |
| 2 | 2 | h²/3 |
| 3 | 6 | h³/4 |
| 4 | 24 | h⁴/5 |
| 5 | 120 | h⁵/6 |
Common series about 0, for reference
| Function | Series | Converges for |
|---|---|---|
| eˣ | 1 + x + x²/2 + x³/6 + … | all x |
| sin x | x − x³/6 + x⁵/120 − … | all x |
| cos x | 1 − x²/2 + x⁴/24 − … | all x |
| 1/(1−x) | 1 + x + x² + x³ + … | |x| < 1 |
| ln(1+x) | x − x²/2 + x³/3 − … | −1 < x ≤ 1 |
The last two have a radius because the function breaks at x = 1 or x = −1. The first three never break, so the series works everywhere even though it never terminates.
| What | Why it matters |
|---|---|
| Anchor and walk | Everything is measured at one point; the guess only ever knows about that point |
| Layers = derivatives | Each derivative at the anchor buys one more correction; that is all the information you have |
| Divide by k! | Raising a power costs a division each time; averaging a ramp, parabola, cubic costs ÷2, ÷3, ÷4 |
| Polynomials terminate | Derivatives hit zero, so finitely many layers rebuild the function exactly, everywhere |
| Radius of convergence | For everything else, past the distance to the nearest breakdown the layers make the guess worse |
| The gap formula | The error is the first term you dropped, evaluated somewhere on the walk |
My second favorite thing after a piece of art, writing, music, movie, and sport that…
In this issue: soulcraft grab a coffee and derive this with me Friends, My second…
Kelly Criterion — Cheatsheet Derivation Step 1 One Period Expectancy E = pB − q…
Alex is an options trader you should follow in case he ever tweets a lot.…
In this issue: blindsided “end behavior” Friends, Blindsided My cousin Nicole just had her first…