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.