Obecné poznámky a časté dotazy

Chyba z dvojího zaokrouhlení

Při reprezentaci výsledků numerických výpočtů (pomíjíme zde chyby vlastního numerického výpočtu, hovoříme pouze o reprezentaci výsledné vypočtené hodnoty) z pricipu vždy dochází k chybě ze zaokrouhlení tím, že výslednou hodnotu zobrazujeme s omezenou přesností (omezeným počtem desetinných míst).

Pro zaokrouhlení numerických hodnot existují pravidla, která zaručují, že absolutní hodnota této chyby nepřesáhne velikost 1/2 jednotky posledního zobrazovaného řádu. Při zaokrouhlení na setiny tedy absolutní hodnota chyby ze zaokrouhlení nepřesáhne hodnotu 0.005 (může však v krajním případě této hodnoty dosáhnout). Jinými slovy, chyba ze zaokrouhlení se v tomto případě pohybuje v intervalu <-0.005, 0.005>. Při zaokrouhlování nahoru, které se standardně využívá, se chyba ze zaokrouhlení pohybuje v intervalu (-0.005, 0.005>.

Toto je zjevné a srozumitelné každému, kdo se numerickými výpočty zabývá. Při zaokrouhlování existuje ale další riziko, které na první pohled tak zjevné není, a tím je chyba z dvojího zaokrouhlení. Této chyby se v některých případech dopustíme tím, že zaokrouhlíme číselnou hodnotu dvakrát, nejprve na větší počet desetinných míst, a potom na menší.

Zaokrouhlíme-li např. hodnotu 1.496 nejprve na dvě desetinná místa, a potom na jednotky, dostaneme postupně hodnoty 1.50 a 2, přitom při přímém zaokrouhlení na jednotky bychom dostali hodnotu 1. Tím jsme se dopustili chyby ze zaokrouhlení velikosti 0.504, tedy mimo interval, do něhož by se chyba ze zaokrouhlení měla vejít. Je zřejmé, že zaokrouhlit hodnotu 1.496 na 2 je chyba, protože přesná hodnota je blíže hodnotě 1.

Při opakovaném zaokrouhlování je tedy vždy třeba zaokrouhlovat původní hodnotu, nikoli postupně zaokrouhlovat hodnotu již zaokrouhlenou.

Praktický závěr je, že pokud se někde ve výpočetních protokolech objeví hodnota 1.50 a jinde 1, neznamená to, že je jedna z hodnot chybně, pouze se jedná o dvě různá zaokrouhlení.

Další zdroje:
Wikipedia: Round-off error
Volkov, E. A. (1990), Numerical Methods, Taylor & Francis, p. 24, ISBN 9781560320111