Python 2.7.2 で台形規則を実装しようとしています。私は次の関数を書きました:
def trapezoidal(f, a, b, n):
h = float(b - a) / n
s = 0.0
s += h * f(a)
for i in range(1, n):
s += 2.0 * h * f(a + i*h)
s += h * f(b)
return s
ただし、 f(lambda x:x**2, 5, 10, 100) は 583.333 を返すため (291.667 を返すはずです)、明らかに私のスクリプトに問題があります。私はそれを見つけることはできません。