# STEP = size of integration step from IntegrationEngine import * from InputValidator import * from InputReader import * from scipy import integrate import sys print "Welcome to >>INTEGRATOR 2000<<" reader = InputReader(sys.argv) # get input validator = InputValidator(reader.data()) # initialize validator validator.run() # validate input if validator.isvalid: # if input is valid, proceed with integral calculation func = validator.function() opts = validator.options() integrator = IntegrationEngine('trapez') # initialization of an engine myintegral = integrator.integrate(func, *opts) # calculate integral using own algorithm scipyintegral = integrate.quad(func, opts[0], opts[1]) # calculate integral using scipy library print 'Integral calculated with own algorithm :\t' + str(myintegral) print 'Integral calculated with scipy.integrate.quad :\t' + str(scipyintegral[0]) print 'Relative difference amounts ' + str(100*(myintegral-scipyintegral[0])/scipyintegral[0]) + '%' print "Thank you for using >>INTEGRATOR 2000<< :-)" else: print "Invalid input parameters, exiting >>INTEGRATOR 2000<<."