scipy.integrate — Całkowanie numeryczne¶
Podmoduł scipy.integrate udostępnia procedury całkowania numerycznego dla rzeczywistych funkcji jednej zmiennej. Algorytmy nie są przeniesione z scipy.integrate z CPythona, lecz wywodzą się z implementacji referencyjnej dostępnej pod adresem https://www.genivia.com/qthsh.html.
Całkowanie numeryczne działa najlepiej przy włączonej arytmetyce float64. Przy arytmetyce float32 procedury nadal działają, ze zmniejszoną precyzją. Wymaganą tolerancję błędu można określić za pomocą argumentu nazwanego eps; wartością domyślną jest ustalana podczas kompilacji wartość etolerance (1e-14 dla fp64, 1e-8 dla fp32). Liczby zespolone nie są obsługiwane.
Funkcje¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Całkuje f od a do b przy użyciu adaptacyjnej kwadratury Gaussa-Kronroda (G10, K21). To zalecany całkownik ogólnego przeznaczenia.
- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.a – dolna granica całkowania.
b – górna granica całkowania.
order – rząd całkowania (domyślnie
5).eps – tolerancja błędu (domyślnie
etolerance).
- Zwraca:
2-krotkę
(result, error)liczb float podającą wartość całki oraz oszacowanie błędu.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Całkuje f od a do b metodą Romberga, wzorem Newtona-Cotesa, który oblicza wartości całkowanej funkcji w równoodległych punktach. Najlepiej nadaje się do funkcji o ciągłych pochodnych. Należy pamiętać, że
scipy.integrate.rombergjest przestarzałe w CPythonie od wersji SciPy 1.12.0; w nowym kodzie preferujquad().- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.a – dolna granica całkowania.
b – górna granica całkowania.
steps – liczba kroków (domyślnie
100).eps – tolerancja błędu (domyślnie
etolerance).
- Zwraca:
wartość całki jako
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Całkuje f od a do b przy użyciu adaptacyjnej reguły Simpsona. W przeciwieństwie do
scipy.integrate.simpsonz CPythona ta funkcja przyjmuje obiekt wywoływalny i sama wybiera odstęp między próbkami, zamiast przyjmować tablicę wstępnie obliczonych wartości funkcji.- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.a – dolna granica całkowania.
b – górna granica całkowania.
steps – liczba kroków (domyślnie
100).eps – tolerancja błędu (domyślnie
etolerance).
- Zwraca:
wartość całki jako
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Całkuje f od a do b przy użyciu rodziny kwadratur Tanh-Sinh, Sinh-Sinh i Exp-Sinh (podwójnie wykładniczych). To procedura, której należy używać, gdy funkcja całkowana ma osobliwości lub nieskończone pochodne na krańcach przedziału, i jest jedyną procedurą w tym podmodule akceptującą nieskończone granice całkowania (np.
-np.inf,np.inf).- Parametry:
f – obiekt wywoływalny przyjmujący pojedynczy
floati zwracającyfloat.a – dolna granica całkowania; może być
-np.inf.b – górna granica całkowania; może być
np.inf.levels – liczba poziomów zagęszczania (domyślnie
6).eps – tolerancja błędu (domyślnie
etolerance).
- Zwraca:
2-krotkę
(result, error)liczb float podającą wartość całki oraz oszacowanie błędu.