brent#
- scipy.optimize.brent(функция, args=(), brack=None, tol=1.48e-08, full_output=0, maxiter=500)[источник]#
Для заданной функции одной переменной и возможного интервала вернуть локальный минимизатор функции, изолированный с дробной точностью tol.
- Параметры:
- функциявызываемая функция f(x,*args)
Целевая функция.
- argsкортеж, необязательный
Дополнительные аргументы (если присутствуют).
- brackкортеж, необязательный
Либо тройка
(xa, xb, xc)удовлетворяющийxa < xb < xcиfunc(xb) < func(xa) and func(xb) < func(xc), или пара(xa, xb)для использования в качестве начальных точек для поиска скобки вниз по склону (см.scipy.optimize.bracket). Минимизаторxне обязательно будет удовлетворятьxa <= x <= xb.- tolfloat, опционально
Относительная ошибка в решении xopt допустимый для сходимости.
- full_outputbool, необязательно
Если True, возвращает все выходные аргументы (xmin, fval, iter, funcalls).
- maxiterint, необязательный
Максимальное количество итераций в решении.
- Возвращает:
- xminndarray
Оптимальная точка.
- fvalfloat
(Необязательный вывод) Оптимальное значение функции.
- iterint
(Необязательный вывод) Количество итераций.
- funcallsint
(Необязательный вывод) Количество выполненных вычислений целевой функции.
Смотрите также
minimize_scalarИнтерфейс к алгоритмам минимизации для скалярных одномерных функций. См. 'Brent' метод в частности.
Примечания
Использует обратную параболическую интерполяцию, когда это возможно, для ускорения сходимости метода золотого сечения.
Не гарантирует, что минимум лежит в диапазоне, указанном brack. См.
scipy.optimize.fminbound.Примеры
Мы иллюстрируем поведение функции, когда brack имеет размер 2 и 3 соответственно. В случае, когда brack имеет вид
(xa, xb), мы видим, что для заданных значений выход не обязательно лежит в диапазоне(xa, xb).>>> def f(x): ... return (x-1)**2
>>> from scipy import optimize
>>> minimizer = optimize.brent(f, brack=(1, 2)) >>> minimizer 1 >>> res = optimize.brent(f, brack=(-1, 0.5, 2), full_output=True) >>> xmin, fval, iter, funcalls = res >>> f(xmin), fval (0.0, 0.0)