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. Both are bracketing methods: they can never lose the root, and they can never be fast. The alternative is to give up the bracket in exchange for speed, which is what the two open methods in this article do — fixed-point iteration, which rewrites the equation as x=g(x)x=g(x) and simply iterates, and the secant method, which reuses the regula falsi chord formula but throws away the bracket. This article works through all four by hand, derives the chord formula and the fixed-point convergence condition, and compares how fast each actually converges.

💡 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 open methods trade that guarantee for speed — fixed-point iteration converges linearly when ∣g′(r)∣<1|g'(r)|<1 and diverges when ∣g′(r)∣>1|g'(r)|>1, while the secant method reuses the regula falsi formula without keeping a bracket and converges at order ≈1.618\approx 1.618.

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. Both are bracketing methods, and that is simultaneously their strength and their ceiling: the sign change is never lost, so they cannot fail — but neither can they use any information beyond the sign, so neither beats a fixed linear rate. Open methods drop the bracket. They start from one or two guesses that need not straddle the root at all, and in exchange they can converge far faster — or diverge completely. The two standard ones are developed below.

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.42636−1.34375−1=0.0826>0f(1.34375) = 1.34375^3 - 1.34375 - 1 \approx 2.42636 - 1.34375 - 1 = 0.0826 > 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.2854f(1.2531)\approx -0.2854 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.2854)5−(−0.2854)=6.2655+0.57085.2854=6.83635.2854≈1.2934c = \dfrac{a\,f(b)-b\,f(a)}{f(b)-f(a)} = \dfrac{(1.2531)(5) - (2)(-0.2854)}{5-(-0.2854)} = \dfrac{6.2655 + 0.5708}{5.2854} = \dfrac{6.8363}{5.2854} \approx 1.2934.

Step 2. Evaluate f(1.2934)=1.29343−1.2934−1≈2.16371−1.2934−1=−0.1297<0f(1.2934) = 1.2934^3 - 1.2934 - 1 \approx 2.16371 - 1.2934 - 1 = -0.1297 < 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.2934,2][1.2934, 2], width 0.70660.7066 — 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.29341.2934, 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.

Open methods: fixed-point iteration and the secant rule

Both open methods abandon the bracket, and neither is guaranteed to find a root. The secant method, when it works, beats bisection comfortably. Fixed-point iteration only beats it when ∣g′(r)∣<12|g'(r)|<\tfrac12 — a contraction slower than that loses to bisection's guaranteed halving, and the rearrangement chosen below happens to give 0.190.19.

Fixed-point iteration

Rearrange f(x)=0f(x)=0 into the form x=g(x)x = g(x), pick a starting guess x0x_0, and iterate

xn+1=g(xn)x_{n+1} = g(x_n)

where: gg is any rearrangement whose fixed point r=g(r)r=g(r) is the root you want, and xnx_n is the nn-th iterate. The rearrangement is not unique, and the choice decides whether the method converges at all. For f(x)=x3−x−1f(x)=x^3-x-1 two obvious rearrangements are

x=(1+x)1/3andx=x3−1x = (1+x)^{1/3} \qquad\text{and}\qquad x = x^3 - 1

The first converges; the second diverges from any start near the root. The derivation below shows exactly why.

Derivation BWhy the size of g prime at the root decides convergence

The goal is to show that the error of a fixed-point iteration shrinks by a factor of roughly ∣g′(r)∣|g'(r)| every step, so the method converges precisely when that number is below 11 — turning "try it and see" into a test you can apply before iterating.

Step 1. Define the error at step nn as en=xn−re_n = x_n - r, where rr is the exact fixed point satisfying r=g(r)r = g(r). Subtracting this from the iteration xn+1=g(xn)x_{n+1}=g(x_n) gives en+1=g(xn)−g(r)e_{n+1} = g(x_n) - g(r) — the error is entirely controlled by how much gg separates two nearby inputs.

Step 2. Apply the Mean Value Theorem to gg on the interval between rr and xnx_n: there is a point ξn\xi_n strictly between them with g(xn)−g(r)=g′(ξn)(xn−r)g(x_n)-g(r) = g'(\xi_n)(x_n - r). Substituting gives the exact error relation

en+1=g′(ξn) ene_{n+1} = g'(\xi_n)\, e_n

Step 3. As xn→rx_n \to r the intermediate point ξn\xi_n is squeezed toward rr too, so g′(ξn)→g′(r)g'(\xi_n)\to g'(r) and the relation becomes ∣en+1∣≈∣g′(r)∣ ∣en∣|e_{n+1}| \approx |g'(r)|\,|e_n|. The error is multiplied by a constant each step: linear convergence with asymptotic ratio ∣g′(r)∣|g'(r)|.

Step 4. Read off the condition. If ∣g′(r)∣<1|g'(r)|<1 each error is strictly smaller than the last and en→0e_n \to 0; if ∣g′(r)∣>1|g'(r)|>1 each error is larger and the iteration runs away no matter how close x0x_0 starts. where: g′(r)g'(r) is the derivative of the rearrangement at the root — not of ff. Check the two rearrangements above at r≈1.3247r\approx1.3247: for g(x)=(1+x)1/3g(x)=(1+x)^{1/3}, g′(x)=13(1+x)−2/3g'(x)=\tfrac{1}{3}(1+x)^{-2/3} so g′(r)=13(2.3247)−2/3≈0.19g'(r)=\tfrac{1}{3}(2.3247)^{-2/3}\approx0.19 — convergent, and each error should shrink to about a fifth. For g(x)=x3−1g(x)=x^3-1, g′(x)=3x2g'(x)=3x^2 so g′(r)=3(1.3247)2≈5.26g'(r)=3(1.3247)^2\approx5.26 — divergent. Same equation, same root, opposite outcomes.

The secant method

The secant method uses exactly the regula falsi formula but changes which point it discards:

xn+1=xn−f(xn) xn−xn−1f(xn)−f(xn−1)x_{n+1} = x_n - f(x_n)\,\frac{x_n - x_{n-1}}{f(x_n)-f(x_{n-1})}

where: xn−1,xnx_{n-1},x_n are simply the two most recent iterates — not a bracket. Regula falsi keeps whichever old endpoint preserves the sign change, which is what pins one endpoint and stalls it; the secant method always keeps the two latest points and lets the sign change go. That single difference is why the secant method converges at order ≈1.618\approx1.618 (the golden ratio) while regula falsi crawls along linearly — and also why the secant method can jump clean past the root, or fail entirely, where regula falsi never can.

Comparing convergence

MethodBracket kept?OrderError behaviourCan it fail?
Bisectionyes11 (linear)×12\times\tfrac12 every step, guaranteedno, given a valid bracket
Regula falsiyes11 (linear)can stall with one endpoint pinnedno, but may be very slow
Fixed-pointno11 (linear)×∣g′(r)∣\times\lvert g'(r)\rvert every stepyes, if ∣g′(r)∣>1\lvert g'(r)\rvert>1
Secantno≈1.618\approx1.618error roughly raised to the power 1.6181.618yes, can diverge or overshoot

The ordering that matters in an exam: bisection is the safest and slowest; the secant method is the fastest and least safe; regula falsi and fixed-point iteration sit between, one keeping the bracket and one not.

Open methods worked through

Take the same equation f(x)=x3−x−1=0f(x)=x^3-x-1=0 with root r≈1.32472r\approx1.32472, so every method can be compared on identical footing.

Step 1 — fixed-point iteration. Use the convergent rearrangement x=(1+x)1/3x=(1+x)^{1/3} from x0=1.3x_0=1.3. Then x1=(2.3)1/3≈1.3200x_1=(2.3)^{1/3}\approx1.3200, x2=(2.3200)1/3≈1.3238x_2=(2.3200)^{1/3}\approx1.3238, x3=(2.3238)1/3≈1.3245x_3=(2.3238)^{1/3}\approx1.3245.

Step 2 — check the predicted ratio. The errors are e0=−0.0247e_0=-0.0247, e1=−0.0047e_1=-0.0047, e2=−0.0009e_2=-0.0009, e3=−0.0002e_3=-0.0002. Successive ratios are 0.0047/0.0247≈0.190.0047/0.0247\approx0.19 and 0.0009/0.0047≈0.190.0009/0.0047\approx0.19 — matching the ∣g′(r)∣≈0.19|g'(r)|\approx0.19 predicted in the derivation. The theory does not merely say "it converges"; it predicts the rate, and the arithmetic confirms it.

Step 3 — the secant method. Start from x0=1x_0=1, x1=2x_1=2 with f(x0)=−1f(x_0)=-1, f(x1)=5f(x_1)=5. The formula gives x2=2−5⋅2−15−(−1)=2−56≈1.1667x_2 = 2 - 5\cdot\dfrac{2-1}{5-(-1)} = 2-\dfrac{5}{6}\approx1.1667, then x3≈1.2531x_3\approx1.2531, x4≈1.3372x_4\approx1.3372, x5≈1.32385x_5\approx1.32385, x6≈1.32471x_6\approx1.32471.

Step 4 — note what the bracket loss costs and buys. At x4≈1.3372x_4\approx1.3372 the secant method has overshot the root — an event impossible for either bracketing method — and yet by x6≈1.32471x_6\approx1.32471 it sits within 10−510^{-5} of the true root, with x7x_7 agreeing to five decimals. Bisection from the same [1,2][1,2] needs about 1717 iterations to match that accuracy. The overshoot and the speed are the same phenomenon: the method is extrapolating rather than trapping.

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.
  • Choosing a fixed-point rearrangement without testing ∣g′(r)∣<1|g'(r)|<1 — writing x=x3−1x=x^3-1 for x3−x−1=0x^3-x-1=0 looks just as reasonable as x=(1+x)1/3x=(1+x)^{1/3} on paper and diverges from every starting point near the root.
  • Treating the secant method as regula falsi because the formula is identical. The formula is the same; the bookkeeping is not. Regula falsi retains the endpoint that preserves the sign change, the secant method retains the two most recent iterates, and only regula falsi still has a bracket afterwards.
  • Quoting a convergence order as if it were a speed. Order 1.6181.618 describes how the error shrinks once you are already close; it says nothing about whether a bad starting pair converges at all.

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 — or to test a fixed-point rearrangement of your own for the ∣g′(r)∣<1|g'(r)|<1 condition before you commit to iterating it.

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.

Two rearrangements of the same equation, one converges and one does not — how do I pick before wasting iterations?

Differentiate the rearrangement, not the original function, and evaluate at (or near) the root. For x3−x−1=0x^3-x-1=0 the choice x=(1+x)1/3x=(1+x)^{1/3} gives g′(r)≈0.19g'(r)\approx0.19, comfortably inside 11, so errors shrink by about 80%80\% per step. The choice x=x3−1x=x^3-1 gives g′(r)≈5.26g'(r)\approx5.26, so every error is multiplied by more than five and the iteration escapes. You do not need the root exactly to run this test — a rough bracket is enough to see whether ∣g′∣|g'| is near 0.20.2 or near 55.

If the secant method is faster, why would anyone still use bisection?

Because "faster" only applies once the method is converging, and the secant method has no guarantee that it will. It can overshoot, it can wander off if the two starting values are poorly placed, and it has no bracket to fall back on. Bisection cannot fail given a genuine sign change, and its error after kk steps is known in advance — which is exactly what you want when you must certify an answer rather than get one quickly. Production solvers commonly run a hybrid: bracket first, then switch to a fast open method once close.

Before this

Where this leads