Muller's method
This article includes a list of general references but lacks sufficient corresponding inline citations. (February 2020) |
Muller's method is a root-finding algorithm, a numerical method for solving equations of the form f(x) = 0. It was first presented by David E. Muller in 1956.

Muller's method proceeds according to a third-order recurrence relation similar to the second-order recurrence relation of the secant method. Whereas the secant method proceeds by constructing a line through two points on the graph of f corresponding to the last two iterative approximations and then uses the line's root as the next approximation at every iteration, by contrast, Muller's method uses three points corresponding to the last three iterative approximations, constructs a parabola through these three points, and then uses a root of the parabola as the next approximation at every iteration.
Derivation
[edit]Muller's method uses three initial approximations of the root, and , and determines the next approximation by considering the intersection of the x-axis with the parabola through , and .
Consider the quadratic polynomial
that passes through , and . To simplify notation, define the differences
and
Substituting each of the three points , and into and solving simultaneously for and gives
The quadratic formula is then applied to to determine as
The sign preceding the radical term is chosen to match the sign of to ensure the next iterate is closest to , giving
Once is determined, the process is repeated. Note that due to the radical expression in the denominator, iterates can be complex even when the previous iterates are all real. This is in contrast with other root-finding algorithms like the secant method, Sidi's generalized secant method or Newton's method, whose iterates will remain real if one starts with real numbers. Having complex iterates can be an advantage (if one is looking for complex roots) or a disadvantage (if it is known that all roots are real), depending on the problem.
The method can easily be adopted for scenarios, such as collision detection, where not the closest root is of interest, but the smaller one by replacing with :
Algorithm
[edit]The following pseudocode describes Muller's method for approximating a root of the equation f(x) = 0. It returns an estimate that satisfies , where is a user-specified tolerance.
input: function f, initial approximations x0, x1, x2, tolerance ε, maximum iterations Nmax
for n = 0 to Nmax do
h0 ← x1 − x0
h1 ← x2 − x1
δ0 ← (f(x1) − f(x0)) / h0
δ1 ← (f(x2) − f(x1)) / h1
a ← (δ1 − δ0) / (h1 + h0)
b ← a·h1 + δ1
c ← f(x2)
if b ≥ 0 then
denominator ← b + sqrt(b² − 4·a·c)
else
denominator ← b − sqrt(b² − 4·a·c)
end if
x3 ← x2 − 2·c / denominator
if |x3 − x2| < ε then
return x3
end if
x0 ← x1
x1 ← x2
x2 ← x3
end for
return x3
Example
[edit]Suppose we seek a solution of the polynomial
Applying Muller's method with initial guesses , and and a tolerance of gives the following approximations:
| Iteration | Denominator | |||||
|---|---|---|---|---|---|---|
To the required tolerance, Muller's method generates the solution on the sixth iteration.
By modifying the initial guesses, Muller's method can also generate complex solutions. Applying Muller's method again but with initial guesses , and and a tolerance of gives the following approximations:
| Iteration | Denominator | ||
|---|---|---|---|
To the required tolerance, Muller's method generates the complex solution on the eighth iteration.
Speed of convergence
[edit]Suppose the real-valued function has a root at . Let denote the error at the iteration of Muller's method. By definition, we have where is the order of convergence. Therefore, and which gives and Near the root , Taylor's theorem gives where is the remainder term, defined as for some between and . Using the three consecutive iterates of Mullers method, , and evaluated at the root gives
or since the next iterate is obtained by setting the interpolating quadratic to zero. Asymptotically, Using and gives
By definition, so equating exponents gives which can be rearranged to give
Solving this equation gives , so the order of convergence of Muller's method is exactly the tribonacci constant. This can be compared with approximately 1.618, exactly the golden ratio, for the secant method and with exactly 2 for Newton's method. So, the secant method makes less progress per iteration than Muller's method and Newton's method makes more progress.
More precisely, if denotes a single root of and and is three times continuously differentiable, if the initial guesses , and are taken sufficiently close to , then the iterates satisfy
where is the positive solution of , the defining equation for the tribonacci constant.
Generalizations and related methods
[edit]Muller's method fits a parabola, i.e. a second-order polynomial, to the last three obtained points f(xk-1), f(xk-2) and f(xk-3) in each iteration. One can generalize this and fit a polynomial pk,m(x) of degree m to the last m+1 points in the kth iteration. Our parabola yk is written as pk,2 in this notation. The degree m must be 1 or larger. The next approximation xk is now one of the roots of the pk,m, i.e. one of the solutions of pk,m(x)=0. Taking m=1 we obtain the secant method whereas m=2 gives Muller's method.
Muller calculated that the sequence {xk} generated this way converges to the root ξ with an order μm where μm is the positive solution of .
As m approaches infinity the positive solution for the equation approaches 2. The method is much more difficult though for m>2 than it is for m=1 or m=2 because it is much harder to determine the roots of a polynomial of degree 3 or higher. Another problem is that there seems no prescription of which of the roots of pk,m to pick as the next approximation xk for m>2.
These difficulties are overcome by Sidi's generalized secant method which also employs the polynomial pk,m. Instead of trying to solve pk,m(x)=0, the next approximation xk is calculated with the aid of the derivative of pk,m at xk-1 in this method.
See also
[edit]- Halley's method, with cubic convergence
- Householder's method, includes Newton's, Halley's and higher-order convergence
References
[edit]- Atkinson, Kendall E. (1989). An Introduction to Numerical Analysis, 2nd edition, Section 2.4. John Wiley & Sons, New York. ISBN 0-471-50023-2.
- Burden, R. L. and Faires, J. D. Numerical Analysis, 4th edition, pages 77ff.
- Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "Section 9.5.2. Muller's Method". Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.
Further reading
[edit]- A bracketing variant with global convergence: Costabile, F.; Gualtieri, M.I.; Luceri, R. (March 2006). "A modification of Muller's method". Calcolo. 43 (1): 39–50. doi:10.1007/s10092-006-0113-9. S2CID 124772103.