# scipy.integrate.romberg¶

scipy.integrate.romberg(function, a, b, args=(), tol=1.48e-08, rtol=1.48e-08, show=False, divmax=10, vec_func=False)[source]

Romberg integration of a callable function or method.

Returns the integral of function (a function of one variable) over the interval (a, b).

If show is 1, the triangular array of the intermediate results will be printed. If vec_func is True (default is False), then function is assumed to support vector arguments.

Parameters : Returns : function : callable Function to be integrated. a : float Lower limit of integration. b : float Upper limit of integration. results : float Result of the integration. args : tuple, optional Extra arguments to pass to function. Each element of args will be passed as a single argument to func. Default is to pass no extra arguments. tol, rtol : float, optional The desired absolute and relative tolerances. Defaults are 1.48e-8. show : bool, optional Whether to print the results. Default is False. divmax : int, optional Maximum order of extrapolation. Default is 10. vec_func : bool, optional Whether func handles arrays as arguments (i.e whether it is a “vector” function). Default is False.

cumtrapz
Cumulative integration for sampled data.

References

 [R25] ‘Romberg’s method’ http://en.wikipedia.org/wiki/Romberg%27s_method

Examples

Integrate a gaussian from 0 to 1 and compare to the error function.

```>>> from scipy.special import erf
>>> gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)
>>> result = romberg(gaussian, 0, 1, show=True)
Romberg integration of <function vfunc at 0x101eceaa0> from [0, 1]
```
```Steps  StepSize  Results
1  1.000000  0.385872
2  0.500000  0.412631  0.421551
4  0.250000  0.419184  0.421368  0.421356
8  0.125000  0.420810  0.421352  0.421350  0.421350
16  0.062500  0.421215  0.421350  0.421350  0.421350  0.421350
32  0.031250  0.421317  0.421350  0.421350  0.421350  0.421350  0.421350```

The final result is 0.421350396475 after 33 function evaluations.

```>>> print("%g %g" % (2*result, erf(1)))
0.84270079295 0.84270079295
```