scipy.optimize — Găsirea rădăcinilor și minimizare

Submodulul scipy.optimize oferă rutine simple pentru găsirea rădăcinilor și minimelor funcțiilor scalare definite de utilizator. Deoarece fiecare iterație trebuie să apeleze înapoi apelabilul Python furnizat de utilizator, câștigul de viteză față de o implementare pur Python este modest (de obicei aproximativ 2x).

Funcții

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

Găsește o rădăcină a lui f în intervalul [a, b] folosind metoda bisecției. f trebuie să își schimbe semnul pe interval.

Parametrii:
  • f – apelabil care preia un singur float și returnează un float.

  • a – capătul stâng al intervalului.

  • b – capătul drept al intervalului.

  • xtol – toleranța absolută asupra poziției rădăcinii (implicit xtolerance).

  • maxiter – numărul maxim de bisecții (implicit 100).

Întoarce:

poziția rădăcinii ca float.

Generează:

ValueError – dacă 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

Funcție-substitut pentru ajustarea curbelor prin cele mai mici pătrate neliniare (Levenberg-Marquardt). Prezentă în tabelul modulului pentru compatibilitatea API, dar momentan un substituent: acceptă și validează argumentele, dar returnează întotdeauna None. Preferați fmin() sau biblioteci externe până când această rutină este implementată.

Parametrii:
  • f – model apelabil f(x, *params) -> float.

  • xdata – obiect asemănător unui tablou 1-D de valori independente.

  • ydata – obiect asemănător unui tablou 1-D de valori dependente, de aceeași lungime ca xdata.

  • p0 – obiect asemănător unui tablou 1-D de estimări inițiale ale parametrilor.

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

Găsește poziția unui minim local al funcției scalare f folosind metoda simplexului descendent (Nelder-Mead).

Parametrii:
  • f – apelabil care preia un singur float și returnează un float.

  • x0 – estimare inițială.

  • xatol – toleranța absolută asupra poziției (implicit xtolerance).

  • fatol – toleranța absolută asupra valorii funcției (implicit xtolerance).

  • maxiter – numărul maxim de iterații (implicit 200).

Întoarce:

poziția minimului ca float.

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

Găsește un zero al funcției scalare cu valori reale f prin metoda Newton-Raphson (secantei).

Parametrii:
  • f – apelabil care preia un singur float și returnează un float.

  • x0 – estimare inițială.

  • tol – toleranța absolută asupra rădăcinii (implicit xtolerance).

  • rtol – toleranța relativă asupra rădăcinii (implicit rtolerance).

  • maxiter – numărul maxim de iterații (implicit 50).

Întoarce:

poziția rădăcinii ca float.