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.