# mise en évidence de a méthode de Newton import numpy as NP import matplotlib.pyplot as P #définition de la fonction dont on cherche à déterminer une valeur approchée # de l'intégrale entre a et b def f(x): return (x**2) # f est la fonction, I = [a; b], N le nb de trapèze considéré def MethodeTrapeze(f, a, b, N): # on définit le pas (la largeur des trapèzes) pas = (b - a) / N # on définit l'abxcisse du point en bas à gauche du trapèze x = a #ListeAbs = [a] # on définit l'aire en cour Aire = 0 for i in range(N): AireTrapeze = pas * (f(x)+f(x+pas))/2 Aire = Aire + AireTrapeze x = x + pas #ListeAbs.append(x) return Aire print(MethodeTrapeze(f, 1,2,10)) # on trace la courbe et les trapèzes def TracerMethodeTrapeze(f, a, b, N): # on définit le pas (la largeur des trapèzes) pas = (b - a) / N # on définit l'abxcisse du point en bas à gauche du trapèze x = a ListeAbs = [a] ListeOrd = [f(a)] # on définit l'aire en cour Aire = 0 for i in range(N): AireTrapeze = pas * (f(x)+f(x+pas))/2 Aire = Aire + AireTrapeze x = x + pas ListeAbs.append(x) ListeOrd.append(f(x)) # 1. On trace le repère P.title("Estimation de l'aire sous la courbe de la fonction f sur I = [" + str(a) + ";" + str(b) + "] avec " + str(N) + " trapèzes.") ax = P.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0)) # 2. On trace la courbe x = NP.linspace(a,b,100) P.plot(x, f(x), c = 'red') # on crée la liste de points # 3. la liste des points sur la courbe P.scatter(ListeAbs,ListeOrd, s = 8, c = 'green') # 4. la liste des points sur l'axe des abscisses ListeOrdNulles = [0] * len(ListeAbs) P.scatter(ListeAbs,ListeOrdNulles, s = 8, c = 'green') # 5. on trace les pointillés qui marquent les abscisses des points itérés for i in range(N + 1): segment_x = NP.array([ListeAbs[i],ListeAbs[i]]) segment_y = NP.array([ListeOrdNulles[i],ListeOrd[i]]) P.plot(segment_x, segment_y, c = 'green', linestyle = '--') # 6. on trace le haut des trapèzes for i in range(N): tangente_x = NP.array([ListeAbs[i],ListeAbs[i+1]]) tangente_y = NP.array([ListeOrd[i],ListeOrd[i+1]]) P.plot(tangente_x, tangente_y, c = 'blue', linestyle = ':') # on affiche le graphe P.show() return Aire print(TracerMethodeTrapeze(f, 1, 2, 10))