Adloun

La variance en un seul passage

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 4 — Modules, fichiers et données

Énoncé

La formule de Kœnig-Huygens () permet de calculer la variance en un seul parcours. Écrire cette fonction, la valider et expliquer son point faible vis-à-vis des calculs flottants.

Corrigé

def variance_un_passage(t: list) -> float:
    """Précondition : t non vide."""
    s, s2 = 0.0, 0.0
    for x in t:
        s += x
        s2 += x * x
    n = len(t)
    return s2 / n - (s / n) ** 2

Faiblesse numérique : Si les données ont des valeurs très grandes mais une dispersion très faible (ex. ), alors et sont deux valeurs immenses et très proches. Leur soustraction dans la formule de Kœnig-Huygens entraîne une perte massive de précision (phénomène d'annulation catastrophique). L'écart peut même devenir négatif en machine. La formule classique en deux passages () est beaucoup plus stable.

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.