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 float och returnerar en float.

  • 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öredra quad() för ny kod.

Parametrar:
  • f – anropsbar funktion som tar en enda float och returnerar en float.

  • 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.simpson tar 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 float och returnerar en float.

  • 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 float och returnerar en float.

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