<bracket_and_solve_root>- функция удобства, которая вызываеталгоритм TOMS 748Внутренне найти кореньf(x). Как правило, гораздо проще использовать эту функцию, чем алгоритмTOMS 748, поскольку он выполняет тяжелую работу по скобке корня для вас. Это рутинные кронштейны довольно надежны и обычно будут более надежными, чем домашние рутины, если функция не может быть проанализирована, чтобы получить жесткие скобки.
Обратите внимание, что эта процедура может использоваться только тогда, когда:
f(x)является монотонным в половине реальной оси, содержащейдогадку.
Значение исходной догадки должно иметь тот же знак, что и корень: функцияпри поиске корня никогда не пересекает происхождение.
Расположение корня должно быть известно, по крайней мере, приблизительно, если расположение корня отличается на много порядков отдогадываться, тогда потребуется много итераций, чтобы скрепить корень, несмотря на специальные эвристики, используемые для защиты от этой самой ситуации. Типичным примером является установка начальной догадки до 0,1, когда корень находится на уровне 1e-300.
Параметры<bracket_and_solve_root>:
f
Унарный функтор — функция, корень которой должен быть решен.f(x)должно равномерно увеличиваться или уменьшаться нах.
guess
Первоначальное приближение к корню.
factor
Коэффициент масштабирования, который используется для скобки корня: значениеугадываниеумножается (или делится, когда это уместно) нафактордо тех пор, пока не будут найдены два значения, которые скобка корень. Значение, такое как 2, является типичным выбором дляфактора. Кроме того,факторбудет умножаться на 2 каждые 32 итерации: это для защиты от очень плохой первоначальной догадки, обычно они происходят, когда известно, что результат очень большой или маленький, но не точный порядок величины.
rising
истинно, еслиf(x)поднимается наxиложно, еслиf(x)падает наx. Это значение используется вместе с результатомf, чтобы определить, находится липредположениевыше или ниже корня.
tol
Бинарный функтор, определяющий условие терминации для поиска корня.tolпропускают текущие скобки на каждом шаге, когда они возвращаются истинными, тогда текущие скобки возвращаются в результате пары. См. такжепредопределенные функторы терминации.
max_iter
Максимальное количество вызовов функций для выполнения в поиске корня. На выходе устанавливается фактическое количество выполненных вызовов.
Окончательный аргументPolicyнеобязателен и может быть использован для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документацию по политикедля более подробной информации.
Возвращает: пару значенийr, которые скрепляют корень так, что:
Другими словами, абонент должен проверить, произошло ли прекращение в результате превышенияmax_iterвызовов функции (легко осуществляется путем проверки значенияmax_iter, когда функция возвращается), а не потому, что условие прекращенияtolбыло удовлетворено.
Статья Bracket and Solve Root раздела Math Toolkit 2.5.0 Root Finding Without Derivatives может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.