Ridders’ method is a root-finding algorithm based on the false position method and the use of an exponential function to successively approximate a root of a continuous function f(x) . The method is due to C. Ridders. Ridders’ method is simpler than Muller’s method or Brent’s method but with similar performance. The formula below converges quadratically when the function is well-behaved, which implies that the number of additional significant digits found at each step approximately doubles; but the function has to be evaluated twice for each step, so the overall order of convergence of the method is Sqrt(2) . If the function is not well-behaved, the root remains bracketed and the length of the bracketing interval at least halves on each iteration, so convergence is guaranteed.
Example On Using This Code
func =@(x) x^3 + 5*x - 5; % Equation we interest to solve xLow = -50; % Lower interval bound xUpp = 100; % Upper interval bound xZero = rootSolve(func,xLow,xUpp) % Calling Ridder's Function
xZero = 0.868830020341475 func(xZero) = 0.0
Given two values of the independent variable, x_(0) and x_(2), which are on two different sides of the root being sought, i.e., f(x_(0)) . f(x_(2)) < 0, the method begins by evaluating the function at the midpoint x_(1) = (x_(0) + x_(2)) / 2. One then finds the unique exponential function e^(ax) such that function
Specifically, parameter a is determined by
The false position method is then applied to the points (x_(0), h(x_(0))) and (x_(2), h(x_(2))), leading to a new value x_(3) between x_(0) and x_(2),
which will be used as one of the two bracketing values in the next step of the iteration. The other bracketing value is taken to be x_(1) if f(x_(1)) . f(x_(3)) < 0 (well-behaved case), or otherwise whichever of x_(0) and x_(2) has function value of opposite sign to f(x_(3)). The procedure can be terminated when a given accuracy is obtained.
- Ridders, C. (1979). “A new algorithm for computing a single root of a real continuous function”. IEEE Transactions on Circuits and Systems. 26: 979–980. doi:10.1109/TCS.1979.1084580.
- Kiusalaas, Jaan (2010). Numerical Methods in Engineering with Python (2nd ed.). Cambridge University Press. pp. 146–150. ISBN 978-0-521-19132-6.
- Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). “Section 9.2.1. Ridders’ Method”. Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.