scipy.integrate — Numeerinen integrointi

scipy.integrate -alimoduuli tarjoaa numeerisia integrointirutiineja reaaliarvoisille, yksimuuttujaisille funktioille. Algoritmeja ei ole siirretty CPythonin scipy.integrate -paketista, vaan ne on johdettu osoitteessa https://www.genivia.com/qthsh.html olevasta viitetoteutuksesta.

Numeerinen integrointi toimii parhaiten float64-laskenta käytössä. float32-laskennalla rutiinit toimivat edelleen, mutta heikommalla tarkkuudella. Vaadittu virhetoleranssi voidaan määrittää eps -avainsana-argumentilla; oletuksena on käännösaikainen etolerance -arvo (1e-14 fp64:lle, 1e-8 fp32:lle). Kompleksilukuja ei tueta.

Funktiot

scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]

Integroi f välillä a - b käyttäen adaptiivista Gauss-Kronrod-kvadratuuria (G10, K21). Tämä on suositeltu yleiskäyttöinen integrointimenetelmä.

Parametrit:
  • f – kutsuttava, joka ottaa yhden float -arvon ja palauttaa float -arvon.

  • a – integroinnin alaraja.

  • b – integroinnin yläraja.

  • order – integroinnin kertaluku (oletus 5).

  • eps – virhetoleranssi (oletus etolerance).

Palauttaa:

kahden liukuluvun monikko (result, error), joka antaa integraalin arvon ja virhearvion.

scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integroi f välillä a - b käyttäen Rombergin menetelmää, Newton-Cotes-kaavaa, joka laskee integrandin tasaisin välein sijoitetuissa pisteissä. Sopii parhaiten integrandeille, joilla on jatkuvat derivaatat. Huomaa, että scipy.integrate.romberg on vanhentunut CPythonissa SciPy-versiosta 1.12.0 alkaen; suosi uudessa koodissa quad().

Parametrit:
  • f – kutsuttava, joka ottaa yhden float -arvon ja palauttaa float -arvon.

  • a – integroinnin alaraja.

  • b – integroinnin yläraja.

  • steps – askelten määrä (oletus 100).

  • eps – virhetoleranssi (oletus etolerance).

Palauttaa:

integraalin arvo float -muodossa.

scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integroi f välillä a - b käyttäen adaptiivista Simpsonin sääntöä. Toisin kuin CPythonin scipy.integrate.simpson, tämä funktio ottaa kutsuttavan ja valitsee näytteenottovälin sisäisesti sen sijaan, että ottaisi taulukon valmiiksi laskettuja funktion arvoja.

Parametrit:
  • f – kutsuttava, joka ottaa yhden float -arvon ja palauttaa float -arvon.

  • a – integroinnin alaraja.

  • b – integroinnin yläraja.

  • steps – askelten määrä (oletus 100).

  • eps – virhetoleranssi (oletus etolerance).

Palauttaa:

integraalin arvo float -muodossa.

scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]

Integroi f välillä a - b käyttäen Tanh-Sinh-, Sinh-Sinh- ja Exp-Sinh-kvadratuuriperhettä (kaksoiseksponentiaalinen). Tätä rutiinia kannattaa käyttää, kun integrandilla on singulariteetteja tai äärettömiä derivaattoja päätepisteissä, ja se on tämän alimoduulin ainoa rutiini, joka hyväksyy äärettömät integrointirajat (esim. -np.inf, np.inf).

Parametrit:
  • f – kutsuttava, joka ottaa yhden float -arvon ja palauttaa float -arvon.

  • a – integroinnin alaraja; voi olla -np.inf.

  • b – integroinnin yläraja; voi olla np.inf.

  • levels – tarkennustasojen määrä (oletus 6).

  • eps – virhetoleranssi (oletus etolerance).

Palauttaa:

kahden liukuluvun monikko (result, error), joka antaa integraalin arvon ja virhearvion.