def ftrap(oldx,oldy): # Return double of the sample size newx = sp.arange(oldx[0],oldx[-1]+(0.5)*step,0.5*step) newy = sp.linspace(0,0,len(newx)) return (newx,newy)
from scipy.integrate import quad from scipy import linspace, cumsum, where import matplotlib.pyplot as graph import scipy.special as sp from numpy import fabs # The function that Quad uses func=lambda x: 1/(1+x**2) step=0.1 err=1 counter=0 steps = [] samples=sp.arange(0,5+step,step) results = sp.linspace(0,0,len(samples)) manual= sp.linspace(0,0,len(samples)) estimated_errors, real_errors=[],[] def integrate(samples,results): for i in range(len(samples)): # Compute Results with Quad results[i]=quad(func,0,samples[i])[0] return results def series(new_samples,new_results): # Compute manually using recursive summation new_results=step*(cumsum(func(new_samples)) - 0.5*(func(min(new_samples))+func(new_samples))) return new_results def ftrap(oldx,oldy): # Return double of the sample size