#!/usr/bin/python from matplotlib import * from pylab import * o=input("o=? (0:left,0.5:mid,1:right)") a=input("a=?") b=input("b=?") n=input("n=?") f=raw_input("f(x)=?") def findArea(o,a,b,n,f): h=1.0*(b-a)/n x=[a+(i+o)*h for i in range(n)] y=[f(a+(i+o)*h) for i in range(n)] areas=[f(a+(i+o)*h)*h for i in range(n)] area=sum(areas) return area def drawArea(o,a,b,n,f): h=1.0*(b-a)/n x=[a+(i+o)*h for i in range(n)] y=[f(a+(i+o)*h) for i in range(n)] plot(x,y,color='red') for i in range(n): matplotlib.pyplot.gca().add_patch(matplotlib.patches.Rectangle((a+i*h,0),h,f(a+(i+o)*h))) show() print "area=",findArea(o,a,b,n,lambda x:eval(f)) drawArea(o,a,b,n,lambda x:eval(f))