Adloun

La méthode d'Euler, à la main puis en Python

Exercice de TD · niveau 3 (difficile) · mathématiques complémentaires (terminale), chapitre 6 — Primitives et équations différentielles

Énoncé

La méthode d'Euler, à la main puis en Python.

On reprend la perfusion continue étudiée plus haut : avec .

Corrigé

On reconnaît une suite arithmético-géométrique — celles du chapitre 1. Partant de :


def euler(f, t0, y0, h, n):
    t, y = t0, y0
    for _ in range(n):
        y = y + h * f(t, y)
        t = t + h
    return y

from math import exp

perfusion = lambda t, y: -0.2 * y + 4

for h in (1, 0.5, 0.1, 0.01):
    print(h, round(euler(perfusion, 0, 0, h, round(5 / h)), 4))
# 1    -> 13.4464
# 0.5  -> 13.0264
# 0.1  -> 12.7166
# 0.01 -> 12.6498

print(round(20 * (1 - exp(-1)), 4))   # exact : 12.6424

À chaque division du pas par , l'écart est divisé par environ ( ; ; ; ). C'est le comportement caractéristique de la méthode d'Euler : elle est lente, mais elle converge, et surtout elle ne demande jamais de savoir résoudre.

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.