from math import exp def trapezoid(f, ta, tb, n , *fpars): """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,*fpars) + f(tb,*fpars) for i in range(1, n): s += 2 * f(ta + i * h,*fpars) return s * h / 2 def g(t,a,A,B): return A*exp(-a*t) + B if __name__=='__main__': i1 = trapezoid(g,0,1,100,0.6,2.,0.0) i2 = trapezoid(g,0,1,100,2.0,1.7,0.7) 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))