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ý
floata 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.rombergje v CPythonu od SciPy 1.12.0 zastaralé; pro nový kód preferujtequad().- Parametry:
f – volatelný objekt přijímající jediný
floata 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.simpsonv 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ý
floata 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ý
floata 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.