Mam własną małą procedurę integracji numerycznej (kwadraturę), która jest adaptacją C ++ programu ALGOL opublikowanego przez Bulirsch & Stoer w 1967 r. (Numerische Mathematik, 9, 271-278).
Chciałbym uaktualnić do bardziej nowoczesnego (adaptacyjnego) algorytmu i zastanawiać się, czy istnieją (bezpłatne) biblioteki C ++, które to zapewniają. Wyglądałem jak GSL (który jest C), ale ma straszne API (chociaż cyfry mogą być dobre). Czy jest coś jeszcze?
Przydatny interfejs API wyglądałby tak:
double quadrature(double lower_integration_limit,
double upper_integration_limit,
std::function<double(double)> const&func,
double desired_error_bound_relative=1.e-12,
double desired_error_bound_absolute=0,
double*error_estimate=nullptr);
gsl_function
jest wskaźnikiem funkcji wraz z pewnym nieprzezroczystym wskaźnikiem danych, który może zawierać twój stan. Po drugie, istnieją pewne obawy związane z wydajnością związane z (ponownym) przydzielaniem dowolnie dużych buforów roboczych, tak że część ma co najmniej pewne uzasadnione uzasadnienie.