Abstract
Brent’s method, also known as zeroin, has been the most popular method for finding zeros of functions since it was developed in 1972. This method usually converges very quickly to a zero; for the occasional difficult functions encountered in practice, it typically takes \(O(n)\) iterations to converge, where \(n\) is the number of steps required for the bisection method to find the zero to approximately the same accuracy. While it has long been known that in theory Brent’s method could require as many as \(O(n^2)\) iterations to find a zero, such behavior had never been observed in practice. In this paper, we first show that Brent’s method can indeed take \(O(n^2)\) iterations to converge, by explicitly constructing such worst case functions. In particular, for double precision accuracy, Brent’s method takes \(2{,}914\) iterations to find the zero of our function, compared to the \(77\) iterations required by bisection. Secondly, we present a modification of Brent’s method that places a stricter complexity bound of \(O(n)\) on the search for a zero. In our extensive testing, this modification appears to behave very similarly to Brent’s method for all the common functions, yet it remains at worst five times slower than the bisection method for all difficult functions, in sharp contrast to Brent’s method.
Similar content being viewed by others
References
Brent, R.: Algorithms for Minimization Without Derivatives. Dover Publications, Mineola (2002)
Burden, R.L., Faires, J.D.: Numerical Analysis. Brooks Cole, Pacific Grove (2005)
Dekker, T.J.: Finding a zero by means of successive linear interpolation. In: Dejon, B., Henrici, P. (eds.) Constructive Aspects of the Fundamental Theorem of Algebra. Wiley, London (1969)
Kahan, W.: Lecture notes on real root-finding (2009)
Moler, C.: Numerical Computing with MATLAB. SIAM, Auckland (2008)
Shengguo, L., Xiangke, L., Lizhi, C.: A new fourth-order iterative method for finding multiple roots of nonlinear equations. Appl. Math. Comput. 215(3), 1288–1292 (2009). doi:10.1016/j.amc.2009.06.065. http://www.sciencedirect.com/science/article/pii/S0096300309006444
Wang, X., Liu, L.: New eighth-order iterative methods for solving nonlinear equations. J. Comput. Appl. Math. 234(5), 1611–1620 (2010). doi:10.1016/j.cam.2010.03.002. http://www.sciencedirect.com/science/article/pii/S0377042710001433
Yun, B.I.: Transformation methods for finding multiple roots of nonlinear equations. Appl. Math. Comput. 217(2), 599–606 (2010). doi:10.1016/j.amc.2010.05.094. http://www.sciencedirect.com/science/article/pii/S0096300310006673
Yun, B.I.: Solving nonlinear equations by a new derivative free iterative method. Appl. Math. Comput. 217(12), 5768–5773 (2011). doi:10.1016/j.amc.2010.12.055. http://www.sciencedirect.com/science/article/pii/S0096300310012579
Acknowledgments
The authors thank Prof. William Kahan and Dr. Hanyou Chu for a number of enlightening discussions while the ideas in this paper were in development.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wilkins, G., Gu, M. A modified Brent’s method for finding zeros of functions. Numer. Math. 123, 177–188 (2013). https://doi.org/10.1007/s00211-012-0480-x
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00211-012-0480-x