from numpy import * def midtpunkt_metoden(f,a,b,n): h = (b-a)/float(n) s = 0; for i in range(1,n+1): s += f(a + (i-0.5)*h) s = h*s; return s; def trapes_metoden(f,a,b,n): h = (b-a)/float(n) s = h * (f(a)+f(b))/2.0; for i in range(1,n): s += f(a + i*h) s = h*s; return s; I = exp(1) - 1 f = lambda x: exp(x) a = 0 b = 1 n = int(round(1e5*sqrt(exp(1)))/sqrt(12) +1) print 'n: %d' % (n) I_mid = midtpunkt_metoden(f, a, b, n) I_trap = midtpunkt_metoden(f, a, b, n) abserr_mid = abs(I-I_mid) abserr_trap = abs(I-I_trap) print "|I - I_mid|: %g" % (abserr_mid) print "|I - I_trap|: %g" % (abserr_trap)