scipy.integrate — Integrare numerică

Submodulul scipy.integrate oferă rutine de integrare numerică pentru funcții cu valori reale, de o singură variabilă. Algoritmii nu sunt portați din scipy.integrate al CPython, ci derivați din implementarea de referință de la https://www.genivia.com/qthsh.html.

Integrarea numerică funcționează cel mai bine cu matematica float64 activată. Cu matematica float32 rutinele funcționează în continuare, cu precizie redusă. Toleranța de eroare necesară poate fi specificată prin argumentul cuvânt-cheie eps; valoarea implicită este valoarea etolerance de la momentul compilării (1e-14 pentru fp64, 1e-8 pentru fp32). Numerele complexe nu sunt acceptate.

Funcții

scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]

Integrează f de la a la b folosind o cuadratură adaptivă Gauss-Kronrod (G10, K21). Acesta este integratorul de uz general recomandat.

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

  • a – limita inferioară de integrare.

  • b – limita superioară de integrare.

  • order – ordinul de integrare (implicit 5).

  • eps – toleranța de eroare (implicit etolerance).

Întoarce:

un tuplu de 2 elemente (result, error) de float-uri care dau valoarea integralei și o estimare a erorii.

scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integrează f de la a la b folosind metoda lui Romberg, o formulă Newton-Cotes care evaluează integrandul în puncte echidistante. Cea mai potrivită pentru integranzi cu derivate continue. Rețineți că scipy.integrate.romberg este depreciat în CPython începând cu SciPy 1.12.0; preferați quad() pentru cod nou.

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

  • a – limita inferioară de integrare.

  • b – limita superioară de integrare.

  • steps – numărul de pași (implicit 100).

  • eps – toleranța de eroare (implicit etolerance).

Întoarce:

valoarea integralei ca float.

scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integrează f de la a la b folosind regula adaptivă a lui Simpson. Spre deosebire de scipy.integrate.simpson al CPython, această funcție preia un apelabil și alege intern distanța dintre eșantioane, în loc să preia un tablou de valori ale funcției precalculate.

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

  • a – limita inferioară de integrare.

  • b – limita superioară de integrare.

  • steps – numărul de pași (implicit 100).

  • eps – toleranța de eroare (implicit etolerance).

Întoarce:

valoarea integralei ca float.

scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]

Integrează f de la a la b folosind familia de cuadraturi Tanh-Sinh, Sinh-Sinh și Exp-Sinh (dublu exponențială). Aceasta este rutina de utilizat atunci când integrandul are singularități sau derivate infinite la capete și este singura rutină din acest submodul care acceptă limite de integrare infinite (de ex. -np.inf, np.inf).

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

  • a – limita inferioară de integrare; poate fi -np.inf.

  • b – limita superioară de integrare; poate fi np.inf.

  • levels – numărul de niveluri de rafinare (implicit 6).

  • eps – toleranța de eroare (implicit etolerance).

Întoarce:

un tuplu de 2 elemente (result, error) de float-uri care dau valoarea integralei și o estimare a erorii.