[Edu-sig] RE: Integration correction
Henrik Eriksson
henrik at nada.kth.se
Tue Mar 29 20:18:13 CEST 2005
Kirby got the trapezoidal integration rule wrong.
This is the corrected version.
def integrate(f,a,b,n=1000):
sum = 0
h = (b-a)/float(n)
for i in range(1,n):
sum += f(a+i*h)
return h*(0.5*f(a)+sum+0.5*f(b))
The interval must be divided into n equal parts, so
an arbitrary h will not do. With this version, the
error in Kirby's integration of x^2 from 0 to 3 will
decrease by a factor of 100000.
But you never use the trapezoidal rule in real life!
Simpson gives much smaller error for the same amount
of computation. In fact, it is exact for Kirby's example!
Henrik
More information about the Edu-sig
mailing list