Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Bisection

Boost , Math Toolkit 2.5.0 , Root Finding Without Derivatives

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
template <class F, class T, class Tol>
std::pair<T, T>
   bisect(  // Unlimited iterations.
      F f,
      T min,
      T max,
      Tol tol);
template <class F, class T, class Tol>
std::pair<T, T>
   bisect(  // Limited iterations.
      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( // Specified policy.
      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было удовлетворено.


PrevUpHomeNext

Статья Bisection раздела Math Toolkit 2.5.0 Root Finding Without Derivatives может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Root Finding Without Derivatives ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:37:36/0.0057711601257324/1