scipy.integrate — Numerická integrace

Podmodul scipy.integrate poskytuje rutiny numerické integrace pro reálné funkce jedné proměnné. Algoritmy nejsou převzaty z scipy.integrate v CPythonu, ale odvozeny z referenční implementace na https://www.genivia.com/qthsh.html.

Numerická integrace funguje nejlépe s povolenou matematikou ve float64. S matematikou ve float32 rutiny stále fungují, ale se sníženou přesností. Požadovanou toleranci chyby lze zadat pomocí klíčového argumentu eps; výchozí je hodnota etolerance z doby kompilace (1e-14 pro fp64, 1e-8 pro fp32). Komplexní čísla nejsou podporována.

Funkce

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

Integruje f od a do b pomocí adaptivní Gauss-Kronrodovy kvadratury (G10, K21). Toto je doporučený univerzální integrátor.

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • a – dolní mez integrace.

  • b – horní mez integrace.

  • order – řád integrace (výchozí 5).

  • eps – tolerance chyby (výchozí etolerance).

Vrací:

dvouprvkovou n-tici (result, error) floatů udávající hodnotu integrálu a odhad chyby.

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

Integruje f od a do b pomocí Rombergovy metody, Newton-Cotesova vzorce, který vyhodnocuje integrand v rovnoměrně rozmístěných bodech. Nejvhodnější pro integrandy se spojitými derivacemi. Pozor: scipy.integrate.romberg je v CPythonu od SciPy 1.12.0 zastaralé; pro nový kód preferujte quad().

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • a – dolní mez integrace.

  • b – horní mez integrace.

  • steps – počet kroků (výchozí 100).

  • eps – tolerance chyby (výchozí etolerance).

Vrací:

hodnota integrálu jako float.

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

Integruje f od a do b pomocí adaptivního Simpsonova pravidla. Na rozdíl od scipy.integrate.simpson v CPythonu tato funkce přijímá volatelný objekt a volí rozestup vzorků interně, místo aby přijímala pole předem vypočtených hodnot funkce.

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • a – dolní mez integrace.

  • b – horní mez integrace.

  • steps – počet kroků (výchozí 100).

  • eps – tolerance chyby (výchozí etolerance).

Vrací:

hodnota integrálu jako float.

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

Integruje f od a do b pomocí rodiny kvadratur Tanh-Sinh, Sinh-Sinh a Exp-Sinh (dvojitě exponenciální). Toto je rutina, kterou je třeba použít, pokud má integrand v koncových bodech singularity nebo nekonečné derivace, a je to jediná rutina v tomto podmodulu, která přijímá nekonečné meze integrace (např. -np.inf, np.inf).

Parametry:
  • f – volatelný objekt přijímající jediný float a vracející float.

  • a – dolní mez integrace; může být -np.inf.

  • b – horní mez integrace; může být np.inf.

  • levels – počet úrovní zjemnění (výchozí 6).

  • eps – tolerance chyby (výchozí etolerance).

Vrací:

dvouprvkovou n-tici (result, error) floatů udávající hodnotu integrálu a odhad chyby.