def rectangles_gauche2(f,a,b,n): h=(b-a)/n return sum([f(a+i*h) for i in range(n)])*h def rectangles_droit2(f,a,b,n): h=(b-a)/n return sum([f(a+i*h) for i in range(1,n+1)])*h def methode_milieux2(f,a,b,n): h=(b-a)/n return sum([f(a+(i+0.5)*h) for i in range(n)])*h def trapezes2(f,a,b,n): h=(b-a)/n return sum([(f(a+i*h)+f(a+i*h+h))/2 for i in range(n)])*h def monte_carlo2(f, a, b, n): return sum([f(uniform(a, b)) for i in range(n)])*(b-a)/n