Ich habe eine große Summe (bis zu einer Million Summanden), die am Ende auf die Anzahl der Summanden normiert wird. Ist es da besser die Division nach der Summation durchzuführen oder jeden Summand zuerst zu dividieren? Es geht um die Genauigkeit nicht um die Geschwindigkeit. Ach ja, jeder Summand liegt in [-1,1]. Eine Begründung wäre ebenfalls hilfreich. Danke.
Gast
#3282702
Maxim S. schrieb: > Ich habe eine große Summe (bis zu einer Million Summanden) Also eine überschaubare Menge.... Tut mir leid, die Frage ist gar nicht so einfach wie sie klingt. Es hängt von den Zahlen (Wertebereich, Verteilung) und ihrer Darstellung (double, float, fix point ...) ab.
Maxim S. schrieb: > Ist es da besser die Division nach der Summation durchzuführen oder > jeden Summand zuerst zu dividieren? Wenn du ein passendes Zahlenformat hast (z.B. BigDecimal in Java) dann erst Addieren und dann dividieren. Begründung: Addition ist "verlustlos", Division hat ggf. Rundungsfehler (z.B. endlose Periode in Binärrepresentation).
Gast
#3282823
Bei Gleitkommazahlen dürfte der ausschlaggebendere Faktor für die Genauigkeit des Ergebnisses sein, ob man "linear" oder "baumförmig" addiert. Bei Festkomma ist das natürlich egal (sofern man keine Teilsummen umskaliert), dafür schmeißt man natürlich einiges weg, wenn man erst dividiert
Gast
#3282832
Nicht einmal die Summation ist einfach wenn es auf Praezision ankommt. Ein Startpunkt waere http://en.wikipedia.org/wiki/Kahan_summation_algorithm . Wie genau sind deine Zahle, positiv, negativ, durch was wird dividiert,...? Gruss
Josef schrieb: > Nicht einmal die Summation ist einfach wenn es auf Praezision > ankommt. Wenn man sich an Läubis Tipp hält schon. Nur war in der Aufgabe dieser Lösungsansatz vermutlich nicht gemeint. ;-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.