syrte
8/20/2018 - 12:35 PM

trapz2d.py

def trapz2d(y, dx=1, dy=1):
    """y: 2d array
    >>> trapz2d(np.ones((5, 5)))
    16.0
    """
    y = np.asarray(y)
    s = y.sum()
    s -= 0.50 * (y[0, :].sum() + y[-1, :].sum() + y[:, 0].sum() + y[:, -1].sum())
    s += 0.25 * (y[0, 0] + y[0, -1] + y[-1, 0] + y[-1, -1])
    return s * (dx * dy)