Adloun

Un test de convergence qui n'en est pas un

Exercice · niveau 3 (difficile) · mathématiques approfondies (ECG 1re année), chapitre 4 — Suites de nombres réels · Convergence : définition quantifiée et théorèmes

Énoncé

Écrire une fonction Python qui, pour une suite donnée par une fonction u(n) et une limite L, renvoie le plus petit tel que pour tout entre et . Pourquoi ce test ne prouve pas la convergence ?

Corrigé


def seuil(u, L, eps, n_max=10**6):
    n0 = 0
    while n0 <= n_max:
        # la condition tient-elle sur toute la fenetre ?
        if all(abs(u(n) - L) <= eps for n in range(n0, n0 + 101)):
            return n0
        n0 = n0 + 1
    return None            # rien trouve sous n_max : on ne conclut pas

Sur , et , la fonction renvoie — la valeur calculée à l'exercice précédent.

Pourquoi cela ne prouve rien. Deux raisons, et elles sont indépendantes.

La fenêtre est finie. Vérifier termes ne dit rien des suivants. La suite qui vaut pour et ensuite passerait le test sans converger vers . Aucun examen d'un nombre fini de termes ne peut trancher une propriété portant sur tous les rangs.

Le est fixé. La définition exige la propriété pour tout — une infinité de vérifications. Le programme n'en fait qu'une.

Et une troisième, matérielle : en flottants, pour trop petit, et finissent par être égaux en machine, et la boucle s'arrête pour une raison qui n'a rien de mathématique.

À quoi cela sert malgré tout : à détecter une erreur. Si le seuil ne se trouve jamais alors qu'on a démontré la convergence, c'est le calcul — ou la démonstration — qu'il faut reprendre. Le programme réfute, il ne démontre pas.

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.