scipy.optimize — Пошук коренів і мінімізація¶
Підмодуль scipy.optimize надає прості процедури для пошуку коренів і мінімумів скалярних функцій, визначених користувачем. Оскільки кожна ітерація має звертатися до наданої користувачем Python-функції, виграш у швидкості порівняно з чистою реалізацією на Python є невеликим (зазвичай приблизно в 2 рази).
Функції¶
- 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.