mathématiques approfondies (ECG 1re année) · Chapitre 11 · Exercice
L'ordre de convergence des rectangles
Informatique et algorithmique · Suites, séries et calculs approchés · niveau 2
Énoncé
Approcher par les rectangles pour . Estimer l'exposant tel que l'erreur se comporte comme .
Corrigé
from math import exp, log
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))
f = lambda x: exp(-x * x)
exact = 0.746824132812427
err = {}
for n in (10, 100, 1000):
err[n] = abs(rectangles(f, 0, 1, n) - exact)
print(n, err[n])
print("alpha =", log(err[10] / err[1000]) / log(100))
Les erreurs : , , . Chaque fois que est multiplié par , l'erreur est divisée par .
L'exposant : la régression sur les logarithmes donne
L'erreur se comporte donc comme , avec .
D'où vient ce . Sur chaque sous-intervalle, remplacer par sa valeur à gauche commet une erreur d'ordre ; en sommant les morceaux on obtient un terme en .
La comparaison qui compte. Les trapèzes, pour un coût quasi identique, donnent : à leur erreur est de , soit cinq mille fois mieux. Choisir la méthode pèse bien plus lourd que multiplier les points.