Begin by finding three initial approximations, x_0, x_1 and x_2, of the root of the function f. Muller's method works best when |f(x_0)| > |f(x_1)| > |f(x_2)|. The expression x_n denotes x subscript n.
Calculate the coefficients for the quadratic, ax^2 + bx +c, passing through the points:
1. (x_n-2 - x_n-1, f(x_n-2))
2. (0, f(x_n-1))
3. (x_n - x_n-1, f(x_n))
Where x_n-2, x_n-1 and x_n are the three most recent approximations of the solution x.
Determine the smallest root of the quadratic ax^2 + bx + c. Use this as the next estimate of x.
Iterate the above process until:
1. The iterative step in x -- that is |x_n+1 - x_n| -- and the value of the function f evaluation at x_n+1 are both sufficiently small;
2. The estimated function fails to have a solution, or;
3. You have iterated some predetermine maximum number of times without meeting condition 1.
If you ended with condition 1, x_n+1 is the best approximation of the solution. If you ended with conditions 2 or 3, the function may not have a solution or another method may be better suited.