posted by Anonymous .
A standard problem in mathematics is to measure the area under a curve (or to integrate the function defining the curve). A simple way to do this is to approximate the area with a series of rectangles (whose areas are easy to compute).
For example, we could split the range into two parts, then fit a rectangle whose height is the value of the function at the start of the range to the left half, and fit a rectangle whose height is the value of the function at the middle of the range to the right half. If we decide this is not a sufficiently accurate estimate of the area under the curve, we could split each part in half and repeat the process.
Here is a function that estimates the area under a curve defined by a function f, between points a and b:
def integrate(f, a, b, parts):
spacing = float(b-a)/parts
current = 0
for i in range(parts):
current += spacing * f(a+ i*spacing)
Your job is to fill in the following function definition:
def successiveApproxIntegrate(f, a, b, epsilon):
# Your Code Here
To do so, use successive refinement to find the area under a curve to within a specific level of accuracy. Complete the function definition so that the procedure successiveApproxIntegrate returns an estimate of the area under the curve f. Your final estimate, using N parts, must be less than epsilon away from the estimate using N/2 parts.