Mathematics / Muller's Method
FREE TO EXPLORE
LABORATORY 06 · MATHEMATICS

Muller's Method theory

Understand muller's method: mathematical proofs, error recurrences, asymptotic rates and stability criteria.

Mathematical foundations of Muller's Method.

Muller's method, devised in 1956 by American computer scientist David E. Muller, is a brilliant generalization of the secant method that bridges the gap between elementary root-finding and sophisticated polynomial algebra. While the secant method approximates a target function by a straight line passing through two points, Muller's method fits a second-degree polynomial—a parabola—through the three most recent approximations: (x_{k-2}, f(x_{k-2})), (x_{k-1}, f(x_{k-1})), and (x_k, f(x_k)). By modeling the local curvature of the function rather than merely its slope, Muller's method captures higher-order geometric features of the landscape. To find the next iterate, the algorithm solves for the intersection of this osculating parabola with the horizontal axis. To avoid the disastrous subtractive cancellation that plagues the standard textbook quadratic formula when b² >> 4ac, Muller formulated the root update using a rationalized alternative: x_{k+1} = x_k − 2c / [b ± √(b² − 4ac)], choosing the sign in the denominator to maximize its absolute magnitude. This elegant algebraic trick guarantees that the algorithm selects the parabolic root closest to the current iterate x_k. Furthermore, Muller's method possesses an extraordinary mathematical capability: when the interpolating parabola fails to cross the real horizontal axis, the discriminant b² − 4ac becomes negative, producing an imaginary square root. Consequently, Muller's method naturally generates complex numbers and can locate complex conjugate root pairs even when initialized with purely real starting guesses—a feat that neither bisection, Regula Falsi, nor the secant method can ever accomplish. The asymptotic error analysis of Muller's method leads to the celebrated Tribonacci characteristic equation: α³ − α² − α − 1 = 0, whose unique positive real root is the Tribonacci constant: α = (1/3)[1 + (19 + 3√33)^(1/3) + (19 − 3√33)^(1/3)] ≈ 1.839287. With an asymptotic convergence order of nearly 1.84, Muller's method converges far faster than the secant method (α ≈ 1.618) and approaches the lightning speed of Newton-Raphson while requiring only a single new function evaluation per step. In this computational laboratory, students investigate Muller's method applied to the Tribonacci cubic polynomial f(x) = x³ − x² − x − 1 = 0, linearize logarithmic error trajectories, and extract the theoretical Tribonacci convergence exponent α = 1.839, verifying the emergence of 3-point recurrence dynamics in numerical analysis.

\ln(\varepsilon_{k+1}) = \alpha \cdot \ln(\varepsilon_k) + \ln(C) \implies \alpha^3 - \alpha^2 - \alpha - 1 = 0 \implies \alpha \approx 1.839

Viva voce questions & analytical theory

What is the geometric and algebraic derivation of Muller's method?

While the secant method approximates f(x) by a linear chord passing through two points, Muller's method (introduced by David E. Muller in 1956) approximates f(x) by a second-degree polynomial (parabola) P(x) = a(x − x_k)² + b(x − x_k) + c passing through the three most recent points (x_{k-2}, f(x_{k-2})), (x_{k-1}, f(x_{k-1})), and (x_k, f(x_k)). By solving for a, b, c via divided differences and setting P(x) = 0, the next iterate x_{k+1} is found as the root of this parabola closest to x_k.

Why is Muller's method capable of finding complex roots starting from real guesses?

In Muller's method, the root of the local parabola is determined by the quadratic formula. If the discriminant D = b² − 4ac is negative, the square root √D is imaginary (complex). Consequently, the calculated update x_{k+1} automatically contains an imaginary component, allowing the algorithm to step off the real axis and converge directly to complex conjugate root pairs, even when initialized with purely real starting guesses.

Why does the convergence order of Muller's method equal the Tribonacci constant α ≈ 1.839?

Because the parabolic fit uses three previous points, the error recurrence satisfies ε_{k+1} ≈ C · ε_k · ε_{k-1} · ε_{k-2}. Assuming an asymptotic power-law relationship ε_{k+1} ≈ A · ε_k^α, substitution yields the characteristic polynomial equation: α³ − α² − α − 1 = 0. The unique positive real root of this equation is the Tribonacci constant: α = (1/3)[1 + (19 + 3√33)^(1/3) + (19 − 3√33)^(1/3)] ≈ 1.839286755. This makes Muller's method significantly faster than the secant method (α ≈ 1.618) and nearly as fast as quadratic Newton (α = 2.0).

Why is the quadratic formula in Muller's method formulated with the radical in the denominator?

The standard quadratic formula x − x_k = (−b ± √(b² − 4ac)) / (2a) can suffer from catastrophic subtractive cancellation when b and √(b² − 4ac) have the same sign and nearly equal magnitude. Rationalizing the numerator yields: x − x_k = −2c / [b ± √(b² − 4ac)]. Choosing the sign in the denominator to match the sign of b (i.e. b + sign(b)·√(b² − 4ac)) ensures that the two quantities add constructively, maximizing the denominator and making x − x_k as small as possible, which guarantees that x_{k+1} is the root closest to x_k.

How does Muller's method compare to inverse quadratic interpolation (IQI)?

Both methods use three points and achieve the same asymptotic convergence order α ≈ 1.839. However, IQI fits x as a quadratic function of y: x = P(y). While IQI avoids taking square roots (since the root is simply P(0)), it can fail if two y-values coincide (division by zero) and cannot naturally produce complex roots from real inputs, whereas Muller's method readily handles complex roots.

What happens if the three points in Muller's method become collinear?

If the three points are collinear, the second divided difference vanishes (a = 0), reducing the parabola to a straight line. Muller's formula then simplifies smoothly to the standard secant iteration x_{k+1} = x_k − c/b, without numerical breakdown.

What stopping criteria should be implemented for Muller's method in floating-point software?

Because Muller iterates can be complex numbers, termination criteria must use complex moduli: check if |f(x_k)| < ε_f or |x_{k+1} − x_k| < ε_x · (1 + |x_k|), alongside a safeguard on the maximum iteration count to prevent infinite loops.

Algorithm precautions and stability rules

  • Ensure the three initial starting points x₀, x₁, x₂ are distinct; identical points cause division by zero in divided differences.
  • Always choose the sign in the denominator b ± √(b² − 4ac) to match the sign of b to eliminate catastrophic cancellation.
  • Support complex numbers in all arithmetic registers, as the discriminant can become negative even for real roots.
  • Verify that the denominator b ± √(b² − 4ac) is not identically zero before division.
  • Advance the three-point sliding window correctly: drop x₀ and append x_{k+1} to maintain local curvature fidelity.
  • Guard against wild steps if three consecutive points have nearly identical function values.

Theoretical limitations

  • Requires three initial approximations rather than one or two.
  • Arithmetic is more involved than the secant method, requiring divided differences, square roots, and complex arithmetic.
  • Convergence is local; poor starting points can cause iterates to wander or converge to an unintended complex root.
↳
Connect theory to numerical computation.

The numerical simulation model evaluates the real root of f(x) = x³ − x² − x − 1 = 0 using Muller's method initialized at x₀ = 2.500, x₁ = 2.000, and x₂ = 1.850. Exact real root (the Tribonacci constant): x* = 1.839286755214161... Error trajectory across iterations: x₂ = 1.850000 (ε₂ = 0.010713), x₃ = 1.839430 (ε₃ = 1.433 × 10⁻⁴), x₄ = 1.839286756 (ε₄ = 1.250 × 10⁻⁹), x₅ = 1.839286755214 (ε₅ = 3.100 × 10⁻¹⁷). Logarithmic error coordinates: x = ln(ε_k) = [−1.5000, −4.5363, −8.8501, −20.4998] and y = ln(ε_{k+1}) = [−4.5363, −8.8501, −20.4998, −37.8631]. Ordinary least-squares linear regression on these coordinates produces an empirical slope α = 1.83929 and intercept ln(C) = −0.1625 with Pearson correlation coefficient R² = 0.999999997. The empirical convergence order α = 1.83929 matches the theoretical Tribonacci root α = 1.839287 with 0.0002% relative difference.