# Root Finding Methods Gaurenteed to Find All Root Between (xmin, xmax)

Discussion in 'Mathematica' started by Ted Ersek, Sep 20, 2010.

1. ### Ted ErsekGuest

In [1] I gave a long response to the thread [FindRoots]

It seems in [2] Andrzej Kozlowski was saying there are ways to
obtain the complete set of roots (provably complete) over a
closed and bounded set provided the function is C2 continuous
and does not have multiple roots in the domain of definition.

I suppose he is talking about numeric methods to find all the roots.
If that is the case I would expect these methods to have practical
limitations in what they can do? I mean a function could be very
ill-behaved and still meet the conditions above. Consider f[x] below.

pnts=Table[ {x,Log[x]}, {x,3.0,250.0,0.01}];
Part[ pnts, 16000, 2] = -0.05;
f=Interpolation[ pnts, Method:>Spline ];
well behaved and having no roots between (3, 250). In fact it is
C2 continuous, but it does have two root close to 18.99. It actually is
well behaved except for the small interval between (18.992, 19.006).

Suppose we wanted to find all the roots between (3,250) of a function
defined as SomeNumericalAlgorithm[x] and the function always evaluated to
the same value as the InterpolatingFunction above. How can a numeric
RootFinding
algorithm be gaurenteed to find these roots near 18.99 if it doesn't have
the
good furtune of taking one or more sample between (18.992, 19.006), or
sampling higher order derivatives in a interval a bit larger than (18.992,
19.006)?

(******* References ********)

[1] http://forums.wolfram.com/mathgroup/archive/2010/Sep/msg00255.html

[2] http://forums.wolfram.com/mathgroup/archive/2010/Sep/msg00262.html

Ted Ersek, Sep 20, 2010