from math import exp def trapezoid(f, ta, tb, n): """Approssima l'integrale definito di f tra a e b con la formula dell'integrazione trapezioidale su n intervalli""" h = (tb - ta) / n s = f(ta) + f(tb) for i in range(1, n): s += 2 * f(ta + i * h) return s * h / 2 def G(a,A,B): def g(t): return A*exp(-a*t) + B return g if __name__=='__main__': g1=G(0.6 , 2., 0. ) i1 = trapezoid(g1,0,1,100) g2=G(2. , 1.7 , 0.7) i2 = trapezoid(g2,0,1,100) print("Integrale di g(t,0.6,2.0,0.0) tra 0 ed 1 con 100 intervalli = {0:.3f}".format(i1)) print("Integrale di g(t,2.0,1.7,0.7) tra 0 ed 1 con 100 intervalli = {0:.3f}".format(i2))