scipy.optimize.

fminbound#

scipy.optimize.fminbound(функция, x1, x2, args=(), xtol=1e-05, maxfun=500, full_output=0, disp=1)[источник]#

Ограниченная минимизация для скалярных функций.

Параметры:
функциявызываемая функция f(x,*args)

Целевая функция для минимизации (должна принимать и возвращать скаляры).

x1, x2float или скаляр массива

Конечные границы оптимизации.

argsкортеж, необязательный

Дополнительные аргументы, передаваемые функции.

xtolfloat, опционально

Допуск сходимости.

maxfunint, необязательный

Максимально допустимое количество оценок функции.

full_outputbool, необязательно

Если True, возвращает дополнительные выходные данные.

disp: int, optional

Если не равно нулю, выводить сообщения.

0 : без вывода сообщений.

1 : только уведомления о не сходимости.

2 : также выводить сообщение о сходимости.

3 : вывод результатов итерации.

Возвращает:
xoptndarray

Параметры (на заданном интервале), которые минимизируют целевую функцию.

fvalчисло

(Необязательный вывод) Значение функции, вычисленное в точке минимума.

ierrint

(Необязательный вывод) Флаг ошибки (0, если сошлось, 1, если достигнуто максимальное количество вызовов функции).

numfuncint

(Необязательный вывод) Количество выполненных вызовов функций.

Смотрите также

minimize_scalar

Интерфейс к алгоритмам минимизации для скалярных функций одной переменной. См. 'Bounded' метод в частности.

Примечания

Находит локальный минимизатор скалярной функции функция в интервале x1 < xopt < x2 с использованием метода Брента. (См. brent для автоматического определения скобок.)

Ссылки

[1]

Forsythe, G.E., M. A. Malcolm, и C. B. Moler. "Компьютерные методы для математических вычислений." Prentice-Hall Series in Automatic Computation 259 (1977).

[2]

Brent, Richard P. Algorithms for Minimization Without Derivatives. Courier Corporation, 2013.

Примеры

fminbound находит минимизатор функции в заданном диапазоне. Следующие примеры иллюстрируют это.

>>> from scipy import optimize
>>> def f(x):
...     return (x-1)**2
>>> minimizer = optimize.fminbound(f, -4, 4)
>>> minimizer
1.0
>>> minimum = f(minimizer)
>>> minimum
0.0
>>> res = optimize.fminbound(f, 3, 4, full_output=True)
>>> minimizer, fval, ierr, numfunc = res
>>> minimizer
3.000005960860986
>>> minimum = f(minimizer)
>>> minimum, fval
(4.000023843479476, 4.000023843479476)