Adloun

Ce que coûte une décimale

Exercice de TD · niveau 3 (difficile) · mathématiques complémentaires (terminale), chapitre 14 — Thème 4 — Calculs d'aires

Énoncé

Ce que coûte une décimale.

On veut comparer les trois algorithmes du chapitre 7 sur un cas où l'on connaît la réponse :

Corrigé


from math import log
from random import random, seed

f = lambda x: 1 / x

def rectangles_gauche(a, b, n):
    h = (b - a) / n
    return h * sum(f(a + k * h) for k in range(n))

def trapezes(a, b, n):
    h = (b - a) / n
    return h * (sum(f(a + k * h) for k in range(n + 1)) - (f(a) + f(b)) / 2)

def monte_carlo(n):
    """Le rectangle [1;2] x [0;1] a pour aire 1 : la frequence EST l'estimation."""
    dedans = 0
    for _ in range(n):
        x = 1 + random()
        y = random()
        if y <= f(x):
            dedans = dedans + 1
    return dedans / n

for n in [10, 100, 1000, 10000]:
    seed(2026)
    print(n, round(rectangles_gauche(1, 2, n), 6),
             round(trapezes(1, 2, n), 6), round(monte_carlo(n), 4))

```text

10 0.718771 0.693771 0.6 100 0.695653 0.693153 0.67 1000 0.693397 0.693147 0.703 10000 0.693172 0.693147 0.6966 ```

(erreurs en valeur absolue)

Trois cent cinquante-quatre trapèzes contre mille milliards de tirages au sort : voilà pourquoi on n'emploie Monte-Carlo que là où les deux autres méthodes ne s'appliquent pas — domaines compliqués, dimensions élevées, contours mesurés et non calculés, comme l'étang du début de ce thème.

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.