Telefon

(+420) 775 563 736

Email

info@groma.cz

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 a chyby z nepřesného zobrazení čísla v pohyblivé řádové čárce, které ovšem také mohou způsobit problémy, a 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 chyby ze zaokrouhlení 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>.

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.

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

 

Nepřesnosti při vyrovnání na přímku

Při vyrovnání bodu na přímku může dojít k situaci, že vzdálenost výsledného vyrovnaného bodu od přímky, která by na první pohled měla být nulová, vyjde nenulová, obvykle jedna jednotka posledního desetinného místa (tedy při zaokrouhlování na cm bude 0.01m). Na první pohled se to zdá být chyba, protože bod vyrovnaný na přímku by na přímce měl ležet, tudíž by vzdálenost od přímky měla být nulová.

Není to ale tak. Při výpočtu na dvě desetinná místa se de facto pohybujeme po centimetrové mřížce. Každý bod, bez ohledu na jeho přesnou polohu, bude zaokrouhlením umístěn na tuto mřížku. Při umístění (zaokrouhlení) může v nejnepříznivějším případě nastat chyba max. 5mm v každé souřadnici (viz výše poznámky k zaokrouhlování). Tím vznikne chyba přibližně 7mm v poloze, což po zaokrouhlení dá 1cm. Vzdálenost takto umístěného bodu od přímky tedy tedy může vyjít (při posunu zaokrouhlením přibližně ve směru normály k přímce) po zaokrouhlení na cm až 0.01m, a výpočet je přitom správně. Nejedná se tedy o chybu, ale o nevyhnutelný vliv zaokrouhlení souřadnic.