Root finding without a starting point
If we have a continuous function f and values a_0 and b_0 such that f(a_0) * f(b_0) <= 0 then we can use one of several algorithms such as Brent's method, the secant method or just the bisection method (See http:/开发者_如何学JAVA/en.wikipedia.org/wiki/Category:Root-finding_algorithms for more) to find a zero of f inside the interval [a_0, b_0]. However, is there an algorithm for finding pairs a_0 & b_0 such that f(a_0) * f(b_0) <= 0 in order to give us a starting point to apply these algorithms?
In general no, not without knowing more about your function. Continuous functions can still be defined to do all kinds of crazy things, and no general algorithm will be able to necessarily find two points whose function values have opposite signs.
Certain classes of functions are easier; for example a polynomial function of odd order always has two such points where .
精彩评论