scipy.integrate — Numerička integracija¶
Podmodul scipy.integrate pruža rutine za numeričku integraciju realno vrijednih funkcija jedne varijable. Algoritmi nisu preneseni iz CPythonove scipy.integrate već su izvedeni iz referentne implementacije na https://www.genivia.com/qthsh.html .
Numerička integracija najbolje radi s omogućenom float64 matematikom. S float32 matematikom rutine i dalje rade, ali sa smanjenom preciznošću. Potrebna tolerancija pogreške može se navesti pomoću ključne riječi eps; zadana vrijednost je vrijednost etolerance iz vremena prevođenja (1e-14 za fp64, 1e-8 za fp32). Kompleksni brojevi nisu podržani.
Funkcije¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integrira f od a do b pomoću adaptivne Gauss-Kronrod (G10, K21) kvadrature. Ovo je preporučeni integrator opće namjene.
- Parametri:
f – pozivni objekt koji prima jedan
floati vraćafloat.a – donja granica integracije.
b – gornja granica integracije.
order – red integracije (zadano
5).eps – tolerancija pogreške (zadano
etolerance).
- Vraća:
2-torka
(result, error)floatova koja daje vrijednost integrala i procjenu pogreške.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integrira f od a do b pomoću Rombergove metode, Newton-Cotesove formule koja vrednuje integrand u jednako razmaknutim točkama. Najprikladnija za integrande s neprekinutim derivacijama. Imajte na umu da je
scipy.integrate.rombergzastario u CPythonu od SciPy 1.12.0; za novi kod radije koristitequad().- Parametri:
f – pozivni objekt koji prima jedan
floati vraćafloat.a – donja granica integracije.
b – gornja granica integracije.
steps – broj koraka (zadano
100).eps – tolerancija pogreške (zadano
etolerance).
- Vraća:
vrijednost integrala kao
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integrira f od a do b pomoću adaptivnog Simpsonovog pravila. Za razliku od CPythonove
scipy.integrate.simpson, ova funkcija prima pozivni objekt i interno bira razmak uzorkovanja umjesto da prima polje unaprijed izračunatih vrijednosti funkcije.- Parametri:
f – pozivni objekt koji prima jedan
floati vraćafloat.a – donja granica integracije.
b – gornja granica integracije.
steps – broj koraka (zadano
100).eps – tolerancija pogreške (zadano
etolerance).
- Vraća:
vrijednost integrala kao
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integrira f od a do b pomoću obitelji Tanh-Sinh, Sinh-Sinh i Exp-Sinh (dvostruko eksponencijalnih) kvadratura. Ovo je rutina koju treba koristiti kada integrand ima singularitete ili beskonačne derivacije u krajnjim točkama, i jedina je rutina u ovom podmodulu koja prihvaća beskonačne granice integracije (npr.
-np.inf,np.inf).- Parametri:
f – pozivni objekt koji prima jedan
floati vraćafloat.a – donja granica integracije; može biti
-np.inf.b – gornja granica integracije; može biti
np.inf.levels – broj razina profinjenja (zadano
6).eps – tolerancija pogreške (zadano
etolerance).
- Vraća:
2-torka
(result, error)floatova koja daje vrijednost integrala i procjenu pogreške.