blob: 18e21940ccef6d351c698e26a95f62e235e70e11 [file] [log] [blame]
[section:minima Locating Function Minima]
[h4 synopsis]
``
#include <boost/math/tools/minima.hpp>
``
template <class F, class T>
std::pair<T, T> brent_find_minima(F f, T min, T max, int bits);
template <class F, class T>
std::pair<T, T> brent_find_minima(F f, T min, T max, int bits, boost::uintmax_t& max_iter);
[h4 Description]
These two functions locate the minima of the continuous function /f/ using Brent's
algorithm. Parameters are:
[variablelist
[[f] [The function to minimise. The function should be smooth over the
range \[min,max\], with no maxima occurring in that interval.]]
[[min] [The lower endpoint of the range in which to search
for the minima.]]
[[max] [The upper endpoint of the range in which to search
for the minima.]]
[[bits] [The number of bits precision to which the minima should be found.
Note that in principle, the minima can not be located to greater
accuracy than the square root of machine epsilon, therefore if /bits/
is set to a value greater than one half of the bits in type T, then
the value will be ignored.]]
[[max_iter] [The maximum number of iterations to use
in the algorithm, if not provided the algorithm will just
keep on going until the minima is found.]]
]
[*Returns:] a pair containing the value of the abscissa at the minima and the value
of f(x) at the minima.
[h4 Implementation]
This is a reasonably faithful implementation of Brent's algorithm, refer
to:
Brent, R.P. 1973, Algorithms for Minimization without Derivatives
(Englewood Cliffs, NJ: Prentice-Hall), Chapter 5.
Numerical Recipes in C, The Art of Scientific Computing,
Second Edition, William H. Press, Saul A. Teukolsky,
William T. Vetterling, and Brian P. Flannery.
Cambridge University Press. 1988, 1992.
An algorithm with guaranteed convergence for finding a zero
of a function, R. P. Brent, The Computer Journal, Vol 44, 1971.
[endsect][/section:minima Locating Function Minima]
[/
Copyright 2006 John Maddock and Paul A. Bristow.
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt).
]