I_R_W14_M39_C++ Błędy obliczeń numerycznych
W świecie informatyki lubimy myśleć o komputerach jako o maszynach absolutnej precyzji. Wykonują miliardy operacji na sekundę, nie męczą się, nie gubią wątków, nie mylą znaków. A jednak - gdy w grę wchodzą obliczenia numeryczne - nawet one potrafią popełniać błędy. Nie dlatego, że „źle liczą”, lecz dlatego, że muszą zmieścić nieskończoną matematyczną rzeczywistość w skończonych zasobach pamięci i czasu.
Ten rozdział odsłania kulisy tego zjawiska. Zobaczysz, skąd biorą się błędy zaokrągleń, jak niewielkie różnice potrafią urosnąć do ogromnych przekłamań i dlaczego czasem wynik obliczeń zależy od kolejności działań. Nauczysz się rozpoznawać sytuacje, w których komputer może Cię zaskoczyć - oraz projektować algorytmy odporne na takie pułapki.
Zrozumienie błędów obliczeń numerycznych, to krok w stronę dojrzałego programowania, analizy danych i modelowania zjawisk, w których precyzja naprawdę ma znaczenie.
W 1991 roku pewien amerykański bank zauważył, że na jednym z kont regularnie pojawiają się dziwne, drobne nadpłaty. Kwoty nie były duże -czasem jeden cent, czasem dwa - więc przez długi czas nikt nie zwracał na nie uwagi. Dopiero po kilku miesiącach okazało się, że wszystkie te „okruchy” pieniędzy trafiają na prywatne konto pracownika działu IT.
Jak to możliwe? Programista zauważył, że system bankowy zaokrągla odsetki w dół, a różnice - ułamki centa - po prostu znikały. Wystarczyło więc przekierować te resztki na własne konto. Matematycznie: nic wielkiego. Informatycznie: klasyczny błąd numeryczny. Finansowo: po kilku miesiącach zebrała się całkiem pokaźna suma.
Ta historia stała się inspiracją dla kilku filmów i żartów o „kradzieży ułamków centa”, ale przede wszystkim pokazuje, że błędy obliczeń numerycznych nie są abstrakcyjną ciekawostką. W realnych systemach mogą prowadzić do poważnych konsekwencji - od drobnych przekłamań po spektakularne awarie.
Ćwiczenie na rozgrzewkę
Przeanalizujesz, jakimi błędami obarczone są obliczenia numeryczne.
Wyjaśnisz, czym jest błąd względny i błąd bezwzględny oraz prześledzisz sposoby ich obliczania.
Scharakteryzujesz różnicę między przybliżeniami z nadmiarem i niedomiarem.
Przedyskutujesz błędy i przybliżenia w Metodzie siecznych