scipy.optimize — Hledání kořenů a minimalizace

Podmodul scipy.optimize poskytuje jednoduché rutiny pro hledání kořenů a minim uživatelsky definovaných skalárních funkcí. Protože každá iterace musí volat zpět do uživatelem dodaného Python volatelného objektu, je nárůst rychlosti oproti čistě Python implementaci skromný (typicky asi 2x).

Funkce

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

Najde kořen f v intervalu [a, b] pomocí metody půlení. f musí na intervalu měnit znaménko.

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • a – levý koncový bod intervalu.

  • b – pravý koncový bod intervalu.

  • xtol – absolutní tolerance umístění kořene (výchozí xtolerance).

  • maxiter – maximální počet půlení (výchozí 100).

Vrací:

umístění kořene jako float.

Vyvolá:

ValueError – pokud 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

Zástupný kód pro nelineární proložení křivky metodou nejmenších čtverců (Levenberg-Marquardt). Přítomen v tabulce modulu kvůli kompatibilitě API, ale momentálně jde o zástupný symbol: přijímá a validuje své argumenty, ale vždy vrací None. Dokud nebude tato rutina implementována, preferujte fmin() nebo externí knihovny.

Parametry:
  • f – modelový volatelný objekt f(x, *params) -> float.

  • xdata – 1-D pole-like nezávislých hodnot.

  • ydata – 1-D pole-like závislých hodnot, stejné délky jako xdata.

  • p0 – 1-D pole-like počátečních odhadů parametrů.

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

Najde polohu lokálního minima skalární funkce f pomocí metody simplexu (Nelder-Mead).

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • x0 – počáteční odhad.

  • xatol – absolutní tolerance polohy (výchozí xtolerance).

  • fatol – absolutní tolerance hodnoty funkce (výchozí xtolerance).

  • maxiter – maximální počet iterací (výchozí 200).

Vrací:

umístění minima jako float.

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

Najde nulu reálné skalární funkce f metodou Newton-Raphson (sečen).

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • x0 – počáteční odhad.

  • tol – absolutní tolerance kořene (výchozí xtolerance).

  • rtol – relativní tolerance kořene (výchozí rtolerance).

  • maxiter – maximální počet iterací (výchozí 50).

Vrací:

umístění kořene jako float.