Bisection and regula falsi methods

Some equations refuse to give up their roots to algebra. x3−x−1=0x^3 - x - 1 = 0 has no tidy formula for xx, yet a root clearly exists somewhere between 11 and 22 because the function changes sign there. Bisection and regula falsi are the two simplest ways to hunt that root down: both start from a bracket [a,b][a,b] known to trap a sign change and squeeze it, iteration by iteration, until the bracket is as narrow as you need. The two methods differ only in how they pick the next trial point inside the bracket — bisection always splits down the middle, blind to the function's shape; regula falsi draws a straight line between the two endpoint values and aims at where that line crosses zero. This article works through both by hand, derives the regula falsi formula, and flags where each method quietly goes wrong.

The core insight

Given a bracket [a,b][a,b] with f(a)f(b)<0f(a)f(b) < 0, bisection halves the interval every step while regula falsi uses linear interpolation between (a,f(a))(a,f(a)) and (b,f(b))(b,f(b)) to jump straight toward the root, and both preserve the bracketing sign change at every iteration.

The core idea

Both methods need the same starting guarantee: ff continuous on [a,b][a,b] with f(a)f(b)<0f(a)f(b) < 0. The Intermediate Value Theorem then promises at least one root in (a,b)(a,b), and every iteration of either method works to shrink that bracket while never losing the guarantee.

Bisection ignores the function's values except for their sign. It always tries the exact midpoint

c=a+b2c = \frac{a+b}{2}

where: a,ba,b are the current bracket endpoints and cc is the trial point. If f(a)f(c)<0f(a)f(c) < 0 the root is in (a,c)(a,c) so b←cb \leftarrow c; otherwise it is in (c,b)(c,b) so a←ca \leftarrow c. Because the interval is exactly halved every time, after kk iterations the width is (b−a)0/2k(b-a)_0 / 2^k — a fixed, predictable rate independent of what ff looks like.

Regula falsi instead treats the two endpoint values as a straight-line hint: it draws the chord from (a,f(a))(a,f(a)) to (b,f(b))(b,f(b)) and takes cc to be where that chord crosses the xx-axis, which is usually much closer to the true root than the plain midpoint when ff is smooth near it. The same sign test as bisection then decides which endpoint cc replaces.

Figure
Two panels comparing bisection splitting a bracket exactly in half against regula falsi aiming a straight chord from the two endpoint values toward the axis crossing
Bisection midpoint versus regula falsi chord crossing Bisection a b c = midpoint splits (a,b) exactly in half, ignores curve shape Regula falsi a, f(a) b, f(b) c = chord crossing chord between endpoint values aims at the axis
Derivation AThe regula falsi chord-crossing formula

The goal is to derive, from nothing but the two-point equation of a straight line, the single closed formula c=a f(b)−b f(a)f(b)−f(a)c = \dfrac{a\,f(b) - b\,f(a)}{f(b)-f(a)} that regula falsi uses to pick its next trial root — showing exactly where it comes from rather than treating it as a rule to memorise, and confirming it reduces correctly to the chord's zero crossing.

Step 1. Write the line through the two known points (a,f(a))(a,f(a)) and (b,f(b))(b,f(b)) in point-slope form, using the slope f(b)−f(a)b−a\dfrac{f(b)-f(a)}{b-a} that any two points determine: y−f(a)=f(b)−f(a)b−a(x−a)y - f(a) = \dfrac{f(b)-f(a)}{b-a}(x-a). This line agrees with the true function ff exactly at the two endpoints x=ax=a and x=bx=b; between them it is only a straight-line stand-in, but that is precisely the approximation regula falsi is willing to make.

Step 2. Regula falsi's trial point cc is defined as where this chord crosses the xx-axis, so set y=0y=0 and solve for x=cx=c: 0−f(a)=f(b)−f(a)b−a(c−a)0 - f(a) = \dfrac{f(b)-f(a)}{b-a}(c-a), which rearranges to c−a=−f(a)(b−a)f(b)−f(a)c - a = \dfrac{-f(a)(b-a)}{f(b)-f(a)}, giving the intermediate form

c=a−f(a)⋅b−af(b)−f(a)c = a - f(a)\cdot\frac{b-a}{f(b)-f(a)}

Step 3. Clear the fraction to reach the standard single-formula version quoted in textbooks. Multiply out the right-hand side over a common denominator: c=a(f(b)−f(a))−f(a)(b−a)f(b)−f(a)=a f(b)−a f(a)−f(a) b+f(a) af(b)−f(a)c = \dfrac{a(f(b)-f(a)) - f(a)(b-a)}{f(b)-f(a)} = \dfrac{a\,f(b) - a\,f(a) - f(a)\,b + f(a)\,a}{f(b)-f(a)}. The two a f(a)a\,f(a) terms cancel exactly, leaving the compact closed formula

c=a f(b)−b f(a)f(b)−f(a)c = \frac{a\,f(b) - b\,f(a)}{f(b)-f(a)}

Step 4. Sanity-check the formula and read off its meaning. where: a,ba,b are the current bracket endpoints, f(a),f(b)f(a),f(b) are their function values with opposite sign, and cc is the interpolated trial root — a weighted average of aa and bb that leans toward whichever endpoint has the smaller ∣f∣|f|, unlike bisection's blind unweighted midpoint. Once cc is computed, the sign test f(a)f(c)<0f(a)f(c)<0 decides which endpoint it replaces, exactly as in bisection; only the choice of cc differs between the two methods, not the update rule that follows it.

Worked example

Continue the Pass-1 bisection run on f(x)=x3−x−1f(x)=x^3-x-1 one step further, and separately check regula falsi's own progress.

Step 1. Recall the bisection state after 44 iterations: bracket [1.3125,1.375][1.3125, 1.375], with f(1.3125)≈−0.0515f(1.3125) \approx -0.0515 and f(1.375)≈0.224f(1.375) \approx 0.224 (opposite signs, as required).

Step 2. Iteration 5 midpoint: c=1.3125+1.3752=1.34375c = \dfrac{1.3125+1.375}{2} = 1.34375. Compute f(1.34375)=1.343753−1.34375−1≈2.4266−1.34375−1=0.0829>0f(1.34375) = 1.34375^3 - 1.34375 - 1 \approx 2.4266 - 1.34375 - 1 = 0.0829 > 0.

Step 3. Since f(1.3125)f(1.34375)<0f(1.3125)f(1.34375) < 0 (negative times positive), the root lies in (1.3125,1.34375)(1.3125, 1.34375), so the new bracket is [1.3125,1.34375][1.3125, 1.34375], width 0.031250.03125 — half the previous width, as bisection guarantees every step.

Step 4. Cross-check with regula falsi's Pass-1 result: after 22 iterations its bracket was [1.2531,2][1.2531, 2], width 0.74690.7469 — far wider than bisection's after the same iteration count here, because its right endpoint had not yet moved off b=2b=2. This confirms bisection's steady halving can out-pace a stalled regula falsi run, even though regula falsi is often faster when curvature is mild. After iteration 5, bisection's bracket [1.3125,1.34375][1.3125, 1.34375] already traps the true root x≈1.3247x \approx 1.3247 to within 0.031250.03125.

Competitive stretch

Push regula falsi one iteration further from its Pass-1 bracket [1.2531,2][1.2531, 2], where f(1.2531)≈−0.2859f(1.2531)\approx -0.2859 and f(2)=5f(2)=5, to see the stuck endpoint explicitly.

Step 1. Apply the derived formula: c=a f(b)−b f(a)f(b)−f(a)=(1.2531)(5)−(2)(−0.2859)5−(−0.2859)=6.2655+0.57185.2859=6.83735.2859≈1.2935c = \dfrac{a\,f(b)-b\,f(a)}{f(b)-f(a)} = \dfrac{(1.2531)(5) - (2)(-0.2859)}{5-(-0.2859)} = \dfrac{6.2655 + 0.5718}{5.2859} = \dfrac{6.8373}{5.2859} \approx 1.2935.

Step 2. Evaluate f(1.2935)=1.29353−1.2935−1≈2.1651−1.2935−1=−0.1284<0f(1.2935) = 1.2935^3 - 1.2935 - 1 \approx 2.1651 - 1.2935 - 1 = -0.1284 < 0. Since this has the same sign as f(1.2531)f(1.2531), the left endpoint moves again and the right endpoint b=2b=2 stays exactly where it started three iterations ago.

Step 3. New bracket [1.2935,2][1.2935, 2], width 0.70650.7065 — barely narrower than the previous width 0.74690.7469. After three iterations regula falsi has moved the left endpoint from 11 to 1.25311.2531 to 1.29351.2935, converging slowly toward the root ≈1.3247\approx 1.3247, while bisection's five iterations already reached a bracket over twenty times narrower — the stuck-endpoint effect made concrete.

Common traps

  • Skipping the bracket check f(a)f(b)<0f(a)f(b) < 0 — without a genuine sign change, neither method is guaranteed to bracket anything.
  • In regula falsi, comparing the new f(c)f(c) against the wrong endpoint — always test f(a)f(c)f(a)f(c) (or equivalently f(b)f(c)f(b)f(c)) against the current bracket, not a stale value from an earlier iteration.
  • Assuming regula falsi is always faster than bisection — on strongly one-sided curvature one endpoint sticks for many iterations, and the interval width can shrink more slowly than bisection's guaranteed halving.
  • Stopping after a fixed, memorised number of iterations instead of checking the actual bracket width or ∣f(c)∣|f(c)| against the required tolerance.

Ask the tutor: If the sign tests or the chord-formula algebra feel shaky, ask the AI tutor to walk through one more bracket-narrowing iteration with you step by step.

Why does bisection always halve the interval no matter what f looks like?

Because bisection never looks at the values of ff, only their signs. The trial point is always the arithmetic midpoint regardless of how far f(a)f(a) and f(b)f(b) are from zero, so the geometric fact that a midpoint splits a segment exactly in two is all that determines the shrinkage — the rate 1/21/2 per step is guaranteed and completely independent of the function.

Why does regula falsi sometimes get stuck with one endpoint not moving?

When ff curves strongly one way near the root (say it is convex there, like x3−x−1x^3-x-1 on [1,2][1,2]), the chord between the endpoints consistently underestimates or overestimates where the root is, so the sign test keeps replacing the same endpoint iteration after iteration while the other endpoint sits pinned at its original value. The bracket still shrinks and still traps the root, but not as evenly or quickly as bisection's steady halving.

Which method should I use by hand on an exam if I am not told which one?

If the question names the method, follow it exactly as specified — do not swap in the other one. If a choice is genuinely open and speed matters, regula falsi usually converges faster on well-behaved, mildly curved functions, but bisection is safer to reason about under time pressure because its convergence rate never depends on the function's shape and the arithmetic is simpler.

Before this

Where this leads