
Ridder’s Method For Solving Linear and Nonlinear Equations
by admin in Math, Statistics, and Optimization , MATLAB Family , Roots of Equation on June 14, 2019Ridders’ 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.[1][2] Ridders’ method is simpler than Muller’s method or Brent’s method but with similar performance.[3] 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
Input
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
Output
xZero = 0.868830020341475 func(xZero) = 0.0
Method
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
satisfies
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.
References
- 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.
Share Now!