Méthode des rectangles🔗
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/usr/bin/env python3
# Time-stamp: <2018-07-16 18:07:22 ycopin>
"""
Calcul de l'intégrale de x**2 entre 0 et 1 par la méthode des rectangles
(subdivision en 100 pas)
"""
def sq(x):
"Définition de la fonction sq: x → x**2."
return x**2
a, b = 0, 1 # Bornes d'intégration
n = 100 # Nombre de pas
h = (b - a) / n # Largeur des rectangles
total = 0 # Cette variable accumulera les aires des rectangles
for i in range(n): # Boucle de 0 à n - 1
x = a + (i + 0.5) * h # Abscisse du rectangle
total += sq(x) * h # On ajoute l'aire du rectangle au total
print("Intégrale de x**2 entre a =", a, "et b =", b, "avec n =", n, "rectangles")
# On affiche les résultats numérique et analytique, ainsi que l'erreur relative
print("Résultat numérique: ", total)
theorie = (b ** 3 - a ** 3) / 3
print("Résultat analytique:", theorie)
print("Erreur relative:", (total / theorie - 1))
|
$ python3 integ.py
Intégrale de x**2 entre a = 0 et b = 1 avec n = 100 rectangles
Résultat numérique: 0.33332500000000004
Résultat analytique: 0.3333333333333333
Erreur relative: -2.4999999999830713e-05
Source: integ.py