#! /usr/local/bin/python3.6"""Definite integral by by simpson rule"""importmathimportsysimporttracebackclassDefiniteIntegralSimpson:M=100# Number of divisiondef__init__(self):self.f=lambdax:math.sqrt(4-x*x)defcompute(self,a,b):""" Computation of infinite intagral :param float a :param float b """try:h=(b-a)/(2*self.M)x,f_o,f_e=a,0,0forkinrange(1,2*self.M-1):x+=hifk%2==1:f_o+=self.f(x)else:f_e+=self.f(x)s=self.f(a)+self.f(b)s+=4*(f_o+self.f(b-h))+2*f_es*=h/3.0print(" / {:f}".format(b))print(" | f(x)dx = {:f} ".format(s))print(" / {:f}".format(a))exceptExceptionase:raiseif__name__=='__main__':iflen(sys.argv)<3:print("USAGE: ./definite_integral_simpson.py A B")sys.exit(0)a,b=list(map(float,sys.argv[1:3]))ifa==0andb==0:sys.exit(0)try:obj=DefiniteIntegralSimpson()obj.compute(a,b)exceptExceptionase:traceback.print_exc()sys.exit(1)