scipy.optimize — Поиск корней и минимизация

Подмодуль scipy.optimize предоставляет простые процедуры для поиска корней и минимумов пользовательских скалярных функций. Поскольку каждая итерация должна вызывать заданный пользователем Python-объект, выигрыш в скорости по сравнению с реализацией на чистом Python невелик (обычно около 2x).

Функции

scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float

Находит корень f в брекете [a, b] методом бисекции. f должна менять знак на интервале.

Параметры:
  • f – вызываемый объект, принимающий одно значение float и возвращающий float.

  • a – левый конец брекета.

  • b – правый конец брекета.

  • xtol – абсолютный допуск на положение корня (по умолчанию xtolerance).

  • maxiter – максимальное число бисекций (по умолчанию 100).

Результат:

положение корня как float.

Исключение:

ValueError – если f(a) * f(b) > 0.

scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None

Заглушка для нелинейной аппроксимации кривой методом наименьших квадратов (Левенберга-Марквардта). Присутствует в таблице модуля для совместимости API, но в настоящее время является заглушкой: она принимает и проверяет свои аргументы, но всегда возвращает None. До реализации этой процедуры предпочтительнее fmin() или внешние библиотеки.

Параметры:
  • f – вызываемая модель f(x, *params) -> float.

  • xdata – одномерный массивоподобный объект независимых значений.

  • ydata – одномерный массивоподобный объект зависимых значений той же длины, что и xdata.

  • p0 – одномерный массивоподобный объект начальных оценок параметров.

scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float

Находит положение локального минимума скалярной функции f методом нисходящего симплекса (Нелдера-Мида).

Параметры:
  • f – вызываемый объект, принимающий одно значение float и возвращающий float.

  • x0 – начальное приближение.

  • xatol – абсолютный допуск на положение (по умолчанию xtolerance).

  • fatol – абсолютный допуск на значение функции (по умолчанию xtolerance).

  • maxiter – максимальное число итераций (по умолчанию 200).

Результат:

положение минимума как float.

scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float

Находит нуль вещественнозначной скалярной функции f методом Ньютона-Рафсона (секущих).

Параметры:
  • f – вызываемый объект, принимающий одно значение float и возвращающий float.

  • x0 – начальное приближение.

  • tol – абсолютный допуск на корень (по умолчанию xtolerance).

  • rtol – относительный допуск на корень (по умолчанию rtolerance).

  • maxiter – максимальное число итераций (по умолчанию 50).

Результат:

положение корня как float.