To achieve a definite integration of functions on suitable domains, we have mainly two methods—Numerical integration and Symbolic integration.
Numerical integration refers to the approximation of a definite integral by a quadrature process. Depending on how the function f(x) is given, the domain of integration, the knowledge of its singularities, and the choice of quadrature, we have different ways to attack this problem:
For univariate polynomials, exact integration is achieved algebraically on each finite interval
For functions given as a finite set of samples over their domain:
The composite trapezoidal rule
Simpson's trapezoidal rules
Romberg integration scheme
For generic univariate functions given as Python functions, on finite intervals:
Fixed-order Gaussian quadrature
Fixed-tolerance Gaussian quadrature
Simple non-adaptive quadrature, by applying 21-, 43- and 87-point Gauss-Kronron rules
Simple adaptive quadrature, by subdivision and quadrature on each subinterval
A blind global...