Integrate

quad and trapezoid.

quad is adaptive. trapezoid uses samples you already have.

Goal

Integrate x^2 from 0 to 3 two ways.

from scipy.integrate import quad
val, err = quad(lambda x: x ** 2, 0, 3)
print(val, err)
from scipy.integrate import trapezoid
x = np.linspace(0, 3, 50)
print(trapezoid(x ** 2, x))
from scipy.integrate import cumulative_trapezoid
x = np.linspace(0, 3, 6)
print(cumulative_trapezoid(x, x, initial=0).round(3))
from scipy.integrate import quad
print(quad(np.sin, 0, np.pi)[0])