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 float i vraća float.

  • 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.romberg zastario u CPythonu od SciPy 1.12.0; za novi kod radije koristite quad().

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

  • 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 float i vraća float.

  • 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 float i vraća float.

  • 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.