template <class F, class T, class Tol>
std::pair<T, T>
   bisect(  
      F f,
      T min,
      T max,
      Tol tol);
template <class F, class T, class Tol>
std::pair<T, T>
   bisect(  
      F f,
      T min,
      T max,
      Tol tol,
      boost::uintmax_t& max_iter);
template <class F, class T, class Tol, class Policy>
std::pair<T, T>
   bisect( 
      F f,
      T min,
      T max,
      Tol tol,
      boost::uintmax_t& max_iter,
      const Policy&);
Эти функции находят корень, используябисекция.
<bisect>Функциональные аргументы:
- f
 
Унарный функтор, который является функциейf(x), чьи корни должны быть найдены.
 
- min
 
Левая скобка интервала, как известно, содержит корень.
 
- max
 
Правая скобка интервала, как известно, содержит корень.
Предпосылкой является то, чтоmin< maxиf(min)*f(max)<= 0, функция повышаетоценку_error, если эти предварительные условия нарушены. Действие, предпринятое по ошибке, контролируется аргументом шаблонаPolicy: поведение по умолчанию заключается в том, чтобы броситьповышение::math::evaluation_error. Еслиполитикаизменена, чтобы не бросать, то она возвращается.std::pair(min, min).
 
- tol
 
Бинарный функтор, который определяет условие терминации: функция возвращает текущие скобки, заключающие корень, когдаtol(min, max)становится правдой. См. такжепредопределенные функторы терминации.
 
- max_iter
 
Максимальное количество призывовf(x)при поиске корня. На выходе это обновляется до фактического количества выполненных вызовов.
 
 
Конечный аргументПолитикаявляется необязательным и может быть использован для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документациюдля более подробной информации.
Возвращает: пара значенийr, которые скрепляют корень так, что:
f(r.first) * f(r.second) <= 0
и либо
tol(r.first, r.second) == true
и либо
max_iter >= m
гдем— начальное значениеmax_iter, переданное функции.
Другими словами, абонент должен проверить, произошло ли прекращение в результате превышенияmax_iterвызовов функции (легко осуществляется путем проверки обновленного значенияmax_iter, когда функция возвращается), а не потому, что условие прекращенияtolбыло удовлетворено.