Posted by
**Anonymous** on
.

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)

return current

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.