Does there currently exist a general algorithm (or set of algorithms used together) that will approximate all the zeros of any well behaved non-differential equation of a single variable which has a finite number of zeros?
(By "well-behaved", I mean differentiable, without "holes". By a set of algorithms, I mean (for example) a setup such that one algorithm can be used in cases when the other algorithm fails such that between all the algorithms or techniques in the set, at least one is guaranteed to work.)
Say for example I need all the real and imaginary solutions for a complicated looking, non-linear equation like:
$$ x^{-x^8} + \frac{(\ln x)^2}{x^3}+2x^{7/2}+\frac{\ln(5x^{3/2})}{\ln(3 + x^2)} - 10 = 0. $$ Note: Sorry if this example is flawed; its purpose is to show that I want an algorithm that can handle a rather arbitrary mix of polynomials, logs, powers, and other operations that is not your run of the mill n-th degree polynomial.
Anyway... Does there exist some algorithm or set of algorithms (known to man) that is guaranteed to find and approximation all the real and imaginary zeros for this equation of a single variable with finite number of zeros? If so, can you describe it or refer me to some information about it? For the algorithm to be useful, it must know when to stop - it must always have a way to stop searching for zeros after it has found all n zeros.
My algorithm options thus far are:
No such general algorithm exists. Perhaps a computer faced with finding the zeros of such an equation should just brute force test millions upon millions of points and see what's close to zero.
A computer should use the Lehmer–Schur algorithm and take care to avoid ill-behaved areas.