#### Previous topic

scipy.integrate.trapz

#### Next topic

scipy.integrate.simps

# scipy.integrate.cumtrapz

`scipy.integrate.``cumtrapz`(y, x=None, dx=1.0, axis=-1, initial=None)

  Cumulatively integrate y(x) using the composite trapezoidal rule.

  Parameters:

  y : array_like

  > Values to integrate.

  x : array_like, optional

  > The coordinate to integrate along. If None (default), use spacing dx between consecutive elements in y.

  dx : float, optional

  > Spacing between elements of y. Only used if x is None.

  axis : int, optional

  > Specifies the axis to cumulate. Default is -1 (last axis).

  initial : scalar, optional

  > If given, uses this value as the first value in the returned result. Typically this value should be 0. Default is None, which means no value at `x[0]` is returned and res has one element less than y along the axis of integration.

  Returns:

  res : ndarray

  > The result of cumulative integration of y along axis. If initial is None, the shape is such that the axis of integration has one less value than y. If initial is given, the shape is equal to that of y.

  See also

  `numpy.cumsum`, `numpy.cumprod`

  `quad`
    adaptive quadrature using QUADPACK
  `romberg`
    adaptive Romberg quadrature
  `quadrature`
    adaptive Gaussian quadrature
  `fixed_quad`
    fixed-order Gaussian quadrature
  `dblquad`
    double integrals
  `tplquad`
    triple integrals
  `romb`
    integrators for sampled data
  `ode`
    ODE integrators
  `odeint`
    ODE integrators

  Examples

      >>> from scipy import integrate
      >>> import matplotlib.pyplot as plt

      >>> x = np.linspace(-2, 2, num=20)
      >>> y = x
      >>> y_int = integrate.cumtrapz(y, x, initial=0)
      >>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-')
      >>> plt.show()

  (Source code)