confiait la tâche de calculer la moyenne arithmétique des n IEEE 754 à double précision flottant points numéros x , x , ..., xn-1 , est-il plus précis pour faireLors du calcul des moyennes arithmétiques, quelle est la méthode de sommation la plus précise?
(ksum ixi)/n
(à savoir la première fait un Kahan-somme de tous les xi, puis en divisant par n) ou
ksum i (xi/n)
(c.-à-d. diviser en premier le xi par n et ensuite Kahan-sommation)? Mes propres tests (avec des nombres aléatoires uniformément distribués dans [0, 1) et des nombres distribués normaux sur toute la plage de nombres à virgule flottante centrée sur 0 avec σ = 1) ont été non concluants, montrant que les deux sont très précis, mais mon choix de données de test aurait pu être particulièrement pauvre. Somme d'abord, puis diviser.
Je soupçonne que le choix dépendra de ce que vous savez de vos données, c'est-à-direla gamme probable des valeurs et la valeur typique de «n». Pour les grandes valeurs 'n' et les grandes valeurs' x', vous pouvez rencontrer des problèmes de débordement avec la première méthode. Inversement, pour de petites valeurs de 'x' et des' n' suffisamment grands, vous pouvez obtenir des dénormals avec la seconde méthode. –
@PaulR En supposant que les deux cas ne se produisent pas, quel serait le choix le plus précis? – fuz
Mon instinct est le premier, car il y a moins d'opérations totales impliquées, mais je n'ai aucune preuve à l'appui. –