scipy.optimize — Traženje korijena i minimizacija

Podmodul scipy.optimize pruža jednostavne rutine za pronalaženje korijena i minimuma korisnički definiranih skalarnih funkcija. Budući da svaka iteracija mora pozvati natrag korisnički dostavljeni Python pozivni objekt, dobitak u brzini u odnosu na čistu Python implementaciju je skroman (obično oko 2x).

Funkcije

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

Pronalazi korijen f u zagradi [a, b] pomoću metode bisekcije. f mora promijeniti predznak na intervalu.

Parametri:
  • f – pozivni objekt koji prima jedan float i vraća float.

  • a – lijevi kraj zagrade.

  • b – desni kraj zagrade.

  • xtol – apsolutna tolerancija na lokaciju korijena (zadano xtolerance).

  • maxiter – najveći broj bisekcija (zadano 100).

Vraća:

lokacija korijena kao float.

Podiže:

ValueError – ako je 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

Zaglavlje za nelinearno prilagođavanje krivulje metodom najmanjih kvadrata (Levenberg-Marquardt). Prisutno u tablici modula radi kompatibilnosti API-ja, ali trenutno je rezervirano mjesto: prihvaća i provjerava svoje argumente, ali uvijek vraća None. Dok ova rutina ne bude implementirana, radije koristite fmin() ili vanjske biblioteke.

Parametri:
  • f – model pozivni objekt f(x, *params) -> float.

  • xdata – 1-D polju slično neovisnih vrijednosti.

  • ydata – 1-D polju slično zavisnih vrijednosti, iste duljine kao xdata.

  • p0 – 1-D polju slično početnih procjena parametara.

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

Pronalazi položaj lokalnog minimuma skalarne funkcije f pomoću metode silaznog simpleksa (Nelder-Mead).

Parametri:
  • f – pozivni objekt koji prima jedan float i vraća float.

  • x0 – početna pretpostavka.

  • xatol – apsolutna tolerancija na položaj (zadano xtolerance).

  • fatol – apsolutna tolerancija na vrijednost funkcije (zadano xtolerance).

  • maxiter – najveći broj iteracija (zadano 200).

Vraća:

lokacija minimuma kao float.

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

Pronalazi nulu realno vrijedne, skalarne funkcije f pomoću Newton-Raphsonove (sekantne) metode.

Parametri:
  • f – pozivni objekt koji prima jedan float i vraća float.

  • x0 – početna pretpostavka.

  • tol – apsolutna tolerancija na korijen (zadano xtolerance).

  • rtol – relativna tolerancija na korijen (zadano rtolerance).

  • maxiter – najveći broj iteracija (zadano 50).

Vraća:

lokacija korijena kao float.