L'esempio python di wikipedia funziona piuttosto bene:
#!/usr/bin/env python
from __future__ import division
def trapezoidal_rule(f, a, b, n):
"""Approximates the definite integral of f from a to b by
the composite trapezoidal rule, using n subintervals"""
h = (b - a) / n
s = f(a) + f(b)
for i in xrange(1, n):
s += 2 * f(a + i * h)
return s * h / 2
print trapezoidal_rule(lambda x:x**9, 0.0, 10.0, 100000)
# displays 1000000000.75
Questo esempio utilizza due funzionalità molto utili in python: funzioni anonime / passate e iterazione su intervalli. Soluzioni simili esistono in altre lingue. Un ciclo foreach sarebbe tipico nella maggior parte dei casi. Dovresti produrre qualcosa di equivalente a una funzione di prima classe per generare facilmente il parametro "f".