scipy.optimize — Znajdowanie miejsc zerowych i minimalizacja¶
Podmoduł scipy.optimize udostępnia proste procedury znajdowania miejsc zerowych i minimów zdefiniowanych przez użytkownika funkcji skalarnych. Ponieważ każda iteracja musi wywoływać dostarczony przez użytkownika obiekt wywoływalny Pythona, zysk szybkości względem implementacji w czystym Pythonie jest umiarkowany (zwykle około 2x).
Funkcje¶
- scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float¶
Znajduje miejsce zerowe f w przedziale
[a, b]metodą bisekcji. f musi zmieniać znak na tym przedziale.- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.a – lewy koniec przedziału.
b – prawy koniec przedziału.
xtol – tolerancja bezwzględna położenia miejsca zerowego (domyślnie
xtolerance).maxiter – maksymalna liczba bisekcji (domyślnie
100).
- Zwraca:
położenie miejsca zerowego jako
float.- Wyrzuca:
ValueError – jeśli
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¶
Zaślepka dla nieliniowego dopasowania krzywej metodą najmniejszych kwadratów (Levenberg-Marquardt). Obecna w tablicy modułu dla zgodności API, lecz obecnie jest to tylko placeholder: przyjmuje i waliduje swoje argumenty, ale zawsze zwraca
None. Do czasu zaimplementowania tej procedury preferujfmin()lub biblioteki zewnętrzne.- Parametry:
f – obiekt wywoływalny modelu
f(x, *params) -> float.xdata – 1-wymiarowa struktura przypominająca tablicę z wartościami niezależnymi.
ydata – 1-wymiarowa struktura przypominająca tablicę z wartościami zależnymi, o tej samej długości co xdata.
p0 – 1-wymiarowa struktura przypominająca tablicę z początkowymi oszacowaniami parametrów.
- scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float¶
Znajduje położenie lokalnego minimum funkcji skalarnej f metodą sympleksu opadającego (Neldera-Meada).
- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.x0 – wstępne przybliżenie.
xatol – tolerancja bezwzględna położenia (domyślnie
xtolerance).fatol – tolerancja bezwzględna wartości funkcji (domyślnie
xtolerance).maxiter – maksymalna liczba iteracji (domyślnie
200).
- Zwraca:
położenie minimum jako
float.
- scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float¶
Znajduje miejsce zerowe rzeczywistej funkcji skalarnej f metodą Newtona-Raphsona (siecznych).
- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.x0 – wstępne przybliżenie.
tol – tolerancja bezwzględna miejsca zerowego (domyślnie
xtolerance).rtol – tolerancja względna miejsca zerowego (domyślnie
rtolerance).maxiter – maksymalna liczba iteracji (domyślnie
50).
- Zwraca:
położenie miejsca zerowego jako
float.