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ă unfloat.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.rombergeste depreciat în CPython începând cu SciPy 1.12.0; preferațiquad()pentru cod nou.- Parametrii:
f – apelabil care preia un singur
floatși returnează unfloat.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.simpsonal 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ă unfloat.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ă unfloat.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.