def integral_approximation(function, divisions, interval): delta = (interval[1] - interval[0]) / divisions maximum = 0.0 minimum = 0.0 x0 = interval[0] for i in range(0, divisions): x1 = x0 + delta y0 = function(x0) * delta y1 = function(x1) * delta maximum += max(y0, y1) minimum += min(y0, y1) x0 = x1 average = (maximum + minimum) / 2 print("maximum: %s minimum: %s average: %s" % (maximum, minimum, average)) def f(x): return (x - 4) * (x + 8) * (x - 50) * (x - 37) * 0.0001 def test(): integral_approximation(f, 1200, [3, 4])