GNU Scientific Library Reference Manual - Third Edition (v1.12)by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, P. Alken, M. Booth, F. Rossi Paperback (6"x9"), 592 pages, 60 figures ISBN 0954612078 RRP £24.95 ($39.95) |

## 32.2 Caveats

Note that root finding functions can only search for one root at a time.
When there are several roots in the search area, the first root to be
found will be returned; however it is difficult to predict which of the
roots this will be. *In most cases, no error will be reported if
you try to find a root in an area where there is more than one.*

Care must be taken when a function may have a multiple root (such as
f(x) = (x-x_0)^2 or
f(x) = (x-x_0)^3).
It is not possible to use root-bracketing algorithms on
even-multiplicity roots. For these algorithms the initial interval must
contain a zero-crossing, where the function is negative at one end of
the interval and positive at the other end. Roots with even-multiplicity
do not cross zero, but only touch it instantaneously. Algorithms based
on root bracketing will still work for odd-multiplicity roots
(e.g. cubic, quintic, ...).
Root polishing algorithms generally work with higher multiplicity roots,
but at a reduced rate of convergence. In these cases the *Steffenson
algorithm* can be used to accelerate the convergence of multiple roots.

While it is not absolutely required that f have a root within the
search region, numerical root finding functions should not be used
haphazardly to check for the *existence* of roots. There are better
ways to do this. Because it is easy to create situations where numerical
root finders can fail, it is a bad idea to throw a root finder at a
function you do not know much about. In general it is best to examine
the function visually by plotting before searching for a root.

ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |