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(n2) 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(n2) 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.
Get Free Quote!
434 Experts Online