Module flavio.math.integrate

Functions

def nintegrate(f, a, b, epsrel=0.005, **kwargs)
Expand source code
def nintegrate(f, a, b, epsrel=0.005, **kwargs):
    return scipy.integrate.quad(f, a, b, epsabs=0, epsrel=epsrel, **kwargs)[0]
def nintegrate_complex(func, a, b, epsrel=0.005, **kwargs)
Expand source code
def nintegrate_complex(func, a, b, epsrel=0.005, **kwargs):
    def real_func(x):
        return np.real(func(x))
    def imag_func(x):
        return np.imag(func(x))
    real_integral = scipy.integrate.quad(real_func, a, b, epsrel=epsrel, epsabs=0, **kwargs)
    imag_integral = scipy.integrate.quad(imag_func, a, b, epsrel=epsrel, epsabs=0, **kwargs)
    return real_integral[0] + 1j*imag_integral[0]
def nintegrate_fast(f, a, b, N=5, **kwargs)
Expand source code
def nintegrate_fast(f, a, b, N=5, **kwargs):
    x = np.linspace(a,b,N)
    y = np.array([f(X) for X in x])
    f_interp = scipy.interpolate.interp1d(x, y, kind='cubic')
    x_fine = np.linspace(a,b,N*4)
    y_interp = np.array([f_interp(X) for X in x_fine])
    return trapezoid(y_interp, x=x_fine)