pylib.numerical.integration module¶
Numerical integration, numerical quadrature.
de: numerische Integration, numerische Quadratur.
- Date
2015-10-15
-
trapez(f, a=0, b=1, N=10, x=None, verbose=False, save_values=False)[source]¶ Integration of \(f(x)\) using the trapezoidal rule (Simpson’s rule, Kepler’s rule).
de: Trapezregel, Simpsonregel (Thomas Simpson), Keplersche Fassregel (Johannes Kepler)
- Parameters
f (function or list) – function to integrate.
a (float) – lower limit of integration (default = 0).
b (float) – upper limit of integration (default = 1).
N (int) – specify the number of subintervals.
x (list) – variable of integration, necessary if f is a list (default = None).
verbose (bool) – print information (default = False)
- Returns
the definite integral as approximated by trapezoidal rule.
- Return type
float
The trapezoidal rule approximates the integral by the area of a trapezoid with base h=b-a and sides equal to the values of the integrand at the two end points.
\[f_n(x) = f(a)+\frac{f(b)-f(a)}{b-a}(x-a)\]\[\begin{split}I &= \int\limits_a^b f(x) \,\mathrm{d}x \\ I &\approx \int\limits_a^b f_n(x) \,\mathrm{d}x \\ &= \int\limits_a^b \left( f(a)+\frac{f(b)-f(a)}{b-a}(x-a) \right) \mathrm{d}x \\ &= \left.\left( f(a)-a\frac{f(b)-f(a)}{b-a} \right) x \right\vert_a^b + \left. \frac{f(b)-f(a)}{b-a} \frac{x^2}{2} \right\vert_a^b \\ &= \frac{b-a}{2}\left[f(a)+f(b)\right]\end{split}\]The composite trapezium rule. If the interval is divided into n segments (not necessarily equal)
\[a = x_0 \leq x_1 \leq x_2 \leq \ldots \leq x_n = b\]\[\begin{split}I &\approx \sum\limits_{i=0}^{n-1} \frac{1}{2} (x_{i+1}-x_i) \left[f(x_{i+1})+f(x_i)\right] \\\end{split}\]Special Case (Equaliy spaced base points)
\[x_{i+1}-x_i = h \quad \forall i\]\[I \approx h \left\{ \frac{1}{2} \left[f(x_0)+f(x_n)\right] + \sum\limits_{i=1}^{n-1} f(x_i) \right\}\]Example
\[\begin{split}I &= \int\limits_a^b f(x) \,\mathrm{d}x \\ f(x) &= x^2 \\ a &= 0 \\ b &= 1\end{split}\]analytical solution
\[I = \int\limits_{0}^{1} x^2 \,\mathrm{d}x = \left. \frac{1}{3} x^3 \right\vert_0^1 = \frac{1}{3}\]numerical solution
>>> f = lambda(x): x**2 >>> trapez(f, 0, 1, 1) 0.5 >>> trapez(f, 0, 1, 10) 0.3350000000000001 >>> trapez(f, 0, 1, 100) 0.33335000000000004