scipy.integrate — Numerisk integration¶
Undermodulen scipy.integrate tillhandahåller numeriska integrationsrutiner för reellvärda funktioner av en variabel. Algoritmerna är inte portade från CPythons scipy.integrate utan härledda från referensimplementationen på https://www.genivia.com/qthsh.html.
Numerisk integration fungerar bäst med float64-matematik aktiverad. Med float32-matematik fungerar rutinerna fortfarande, men med reducerad precision. Den önskade feltoleransen kan anges via nyckelordsargumentet eps; standardvärdet är värdet etolerance som sätts vid kompilering (1e-14 för fp64, 1e-8 för fp32). Komplexa tal stöds inte.
Funktioner¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integrerar f från a till b med adaptiv Gauss-Kronrod-kvadratur (G10, K21). Detta är den rekommenderade allmänna integratorn.
- Parametrar:
f – anropsbar funktion som tar en enda
floatoch returnerar enfloat.a – nedre integrationsgräns.
b – övre integrationsgräns.
order – integrationsordning (standard
5).eps – feltolerans (standard
etolerance).
- Returer:
en 2-tupel
(result, error)av float som ger integralens värde och en feluppskattning.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integrerar f från a till b med Rombergs metod, en Newton-Cotes-formel som utvärderar integranden i jämnt fördelade punkter. Bäst lämpad för integrander med kontinuerliga derivator. Observera att
scipy.integrate.rombergär föråldrad i CPython sedan SciPy 1.12.0; föredraquad()för ny kod.- Parametrar:
f – anropsbar funktion som tar en enda
floatoch returnerar enfloat.a – nedre integrationsgräns.
b – övre integrationsgräns.
steps – antal steg (standard
100).eps – feltolerans (standard
etolerance).
- Returer:
integralens värde som en
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integrerar f från a till b med adaptiv Simpsons regel. Till skillnad från CPythons
scipy.integrate.simpsontar denna funktion en anropsbar funktion och väljer stickprovsavståndet internt i stället för att ta en matris av förberäknade funktionsvärden.- Parametrar:
f – anropsbar funktion som tar en enda
floatoch returnerar enfloat.a – nedre integrationsgräns.
b – övre integrationsgräns.
steps – antal steg (standard
100).eps – feltolerans (standard
etolerance).
- Returer:
integralens värde som en
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integrerar f från a till b med kvadraturfamiljen Tanh-Sinh, Sinh-Sinh och Exp-Sinh (dubbelexponentiell). Detta är rutinen att använda när integranden har singulariteter eller oändliga derivator i ändpunkterna, och den är den enda rutinen i denna undermodul som accepterar oändliga integrationsgränser (t.ex.
-np.inf,np.inf).- Parametrar:
f – anropsbar funktion som tar en enda
floatoch returnerar enfloat.a – nedre integrationsgräns; får vara
-np.inf.b – övre integrationsgräns; får vara
np.inf.levels – antal förfiningsnivåer (standard
6).eps – feltolerans (standard
etolerance).
- Returer:
en 2-tupel
(result, error)av float som ger integralens värde och en feluppskattning.