scipy.integrate — Numerikus integrálás

A scipy.integrate almodul numerikus integrálási rutinokat biztosít valós értékű, egyváltozós függvényekhez. Az algoritmusok nem a CPython scipy.integrate csomagjából lettek átültetve, hanem a https://www.genivia.com/qthsh.html referencia-implementációból származnak.

A numerikus integrálás akkor működik a legjobban, ha a float64 matematika engedélyezve van. A float32 matematikával a rutinok továbbra is működnek, csökkentett pontossággal. A szükséges hibatűrés az eps kulcsszó-argumentummal adható meg; az alapértelmezett a fordítási idejű etolerance érték (1e-14 fp64 esetén, 1e-8 fp32 esetén). A komplex számok nem támogatottak.

Függvények

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

Az f integrálása a-tól b-ig adaptív Gauss-Kronrod (G10, K21) kvadratúrával. Ez az ajánlott általános célú integrátor.

Paraméterek:
  • f – egyetlen float értéket fogadó és float értéket visszaadó hívható objektum.

  • a – alsó integrálási határ.

  • b – felső integrálási határ.

  • order – az integrálás rendje (alapértelmezett 5).

  • eps – hibatűrés (alapértelmezett etolerance).

Visszatérési érték:

egy (result, error) 2-tuple float értékekkel, amely megadja az integrál értékét és egy hibabecslést.

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

Az f integrálása a-tól b-ig Romberg módszerével, amely egy Newton-Cotes-képlet, és az integrandust egyenletesen elhelyezkedő pontokban értékeli ki. Legjobban a folytonos deriváltakkal rendelkező integrandusokhoz illik. Vegye figyelembe, hogy a scipy.integrate.romberg a CPythonban a SciPy 1.12.0 óta elavult; új kódhoz inkább a quad() ajánlott.

Paraméterek:
  • f – egyetlen float értéket fogadó és float értéket visszaadó hívható objektum.

  • a – alsó integrálási határ.

  • b – felső integrálási határ.

  • steps – lépések száma (alapértelmezett 100).

  • eps – hibatűrés (alapértelmezett etolerance).

Visszatérési érték:

az integrál értéke float típusként.

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

Az f integrálása a-tól b-ig adaptív Simpson-szabállyal. A CPython scipy.integrate.simpson függvényével ellentétben ez a függvény egy hívható objektumot vesz át, és a mintaközöket belsőleg választja meg, ahelyett, hogy előre kiszámított függvényértékek tömbjét venné át.

Paraméterek:
  • f – egyetlen float értéket fogadó és float értéket visszaadó hívható objektum.

  • a – alsó integrálási határ.

  • b – felső integrálási határ.

  • steps – lépések száma (alapértelmezett 100).

  • eps – hibatűrés (alapértelmezett etolerance).

Visszatérési érték:

az integrál értéke float típusként.

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

Az f integrálása a-tól b-ig a Tanh-Sinh, Sinh-Sinh és Exp-Sinh (kettősen exponenciális) kvadratúra-családdal. Ezt a rutint akkor érdemes használni, ha az integrandusnak szingularitásai vagy végtelen deriváltjai vannak a végpontokban, és ez az egyetlen rutin ebben az almodulban, amely végtelen integrálási határokat is elfogad (pl. -np.inf, np.inf).

Paraméterek:
  • f – egyetlen float értéket fogadó és float értéket visszaadó hívható objektum.

  • a – alsó integrálási határ; lehet -np.inf is.

  • b – felső integrálási határ; lehet np.inf is.

  • levels – a finomítási szintek száma (alapértelmezett 6).

  • eps – hibatűrés (alapértelmezett etolerance).

Visszatérési érték:

egy (result, error) 2-tuple float értékekkel, amely megadja az integrál értékét és egy hibabecslést.