Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 27-10-2017 15:00:55

MaT88
Membre
Inscription : 06-10-2017
Messages : 10

Somme de Kahan

Bonjour,

La somme de Kahan est utilisée lors de l'addition d'un grand nombre de réels pour compenser les erreurs d'arrondi.
De même une autre méthode qui sert à minimiser cette erreur est de trier les valeurs qu'on cherche à additionner et d'effectuer la somme croissante.
Soit la somme harmonique : somme allant de i=1 jusqu'à 1000000 de 1/i.
Pourquoi la somme croissante donne une valeur plus précise que la somme de Kahan?Et pourquoi la somme de Kahan croissante et décroissante donnent-ils la même réponse.

Valeur obtenue de la somme croissante:  14.392726722865772
Valeur obtenue de la somme de Kahan croissante (et décroissante) : 14.392726722865724

Merci.

Hors ligne

#2 27-10-2017 17:11:05

Fred
Administrateur
Inscription : 26-09-2005
Messages : 4 704

Re : Somme de Kahan

Bonjour,

  Je ne sais pas ce qu'est la somme de Kahan, doncsur ce point je ne peux pas t'aider. Mais je peux quand même t'expliquer pourquoi il vaut mieux faire la somme croissante. Pour cela,il faut avoir une idée de la façon dont les nombres sont stockés dans un ordinateur.
Ils sont stockés sous la forme $a_0,a_1a_2\cdots a_p\times 10^n$, où $a_0,\dots,a_p$ sont des chiffres compris entre 0 et 9, et $p$ correspond à la précision du stockage. Pour fixer les idées, je vais supposer que $p=2$. En réalité, bien sûr, $p$ est plus grand (de l'ordre de 14).
Dans ce cas, 1000 est stocké sous la forme $1,00\times 10^3$. Mais 1001 est aussi stocké sous la forme $1,00\times 10^3$, parce qu'on a une précision de seulement deux chiffres. C'est aussi le cas de 999 ou de 1003.
Imagine maintenant que tu veuilles calculer $1000+1+1+1+1+1+1+1+1+1+1$.
Si tu le fais directement, tu vas d'abord faire $1000+1=1001$. Oui, mais pour l'ordinateur, cela va être la même chose que $1000$, il va garder en mémoire $1,00\times 10^3$. Et aucune des dix additions que tu vas faire ne va changer le résultat.
Si maintenant, tu fais $1+1$ tu vas obtenir 2, puis ensuite, en ajoutant les 10 nombres 1, tu vas obtenir 10. Enfin, $10+1000=1,01\times 10^3$ au niveau de l'ordinateur, car $10=0,01\times 10^3$ est assez grand pour la précision avec laquelle on connait 1000.

F.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de cette opération? 3+7=

Pied de page des forums