Rectangles contre trapèzes
Exercice · niveau 3 (difficile) · mathématiques appliquées (ECG 1re année), chapitre 8 — Calcul différentiel et intégral · Intégration sur un segment
Énoncé
Écrire une fonction Python qui compare rectangles et trapèzes sur pour . Estimer l'exposant tel que l'erreur se comporte comme pour chaque méthode.
Corrigé
from math import exp
def f(x):
return exp(-x * x)
def rectangles(f, a, b, n): # rectangles a gauche
h = (b - a) / n
return h * sum(f(a + i * h) for i in range(n))
def trapezes(f, a, b, n):
h = (b - a) / n
interieur = sum(f(a + i * h) for i in range(1, n))
return h * (f(a) / 2 + interieur + f(b) / 2)
exact = 0.746824132812427 # valeur de reference
for n in (10, 100, 1000):
print(n, abs(rectangles(f, 0, 1, n) - exact),
abs(trapezes(f, 0, 1, n) - exact))
Les erreurs mesurées :
Les exposants. À chaque fois que est multiplié par , l'erreur des rectangles est divisée par et celle des trapèzes par :
On le lit proprement en régression sur les logarithmes : vaut et .
Ce que cela coûte. Pour gagner une décimale, les rectangles demandent dix fois plus de points, les trapèzes seulement trois fois plus environ. Le surcoût des trapèzes est nul — une addition de plus — pour un ordre gagné : c'est le meilleur rapport de tout le chapitre.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.