Wstęp do metod numerycznych Wykład 1 Błędy obliczeń numerycznych dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz
Literatura Teresa Guziak, Anna Kamińska, Beata Pańczyk, Jan Sikora: Metody numeryczne w elektrotecnice, Lublin 1998 Fortuna Z., Macukow B., Wąsowski J. - Metody numeryczne, WNT 2009 William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling Numerical Recipes in C: The Art of Scientific Computing. Dostępne on-line
Definicja METODY NUMERYCZNE dział matematyki stosowanej zajmujący się opracowywaniem i badaniem metod przybliżonego rozwiązywania problemów obliczeniowych w modelach matematycznych innych dziedzin nauki, np. fizyki, ekonomii, medycyny i oczywiście informatyki. Klasyczne metody numeryczne analiza bledów zaokrągleń interpolacja aproksymacja całkowanie i różniczkowanie numeryczne rozwiązywanie równań nieliniowych rozwiązywanie układów równań liniowych obliczanie wartości i wektorów własnych Rozwiązywanie zagadnień dla równań różniczkowych zwyczajnych i cząstkowych przyspieszanie/udokładnianie metod
Przykłady zastosowań • medycyna – tomografia komputerowa, opracowywanie nowych leków • biologia - badanie ekosystemów, modelowanie układu immunologicznego • inżynieria - przemysł samochodowy i lotniczy, loty kosmiczne • informatyka - konstruowanie nowych procesorów, grafika komputerowa, optymalizacja funkcjonowania sieci komputerowych, modelowanie i symulacja • ekonomia - optymalizacja parametrów makroekonomicznych, wybór opcji na giełdzie, • kryminologia - rozpoznawanie odcisków palców, • inne - prognoza pogody, cyfrowa technologia audio-video, • wojsko - tajne/poufne.
Błędy obliczeń numerycznych Przez zadanie numeryczne rozumiemy jasny i jednoznaczny opis powiązania funkcjonalnego między danymi wejściowymi (zmienne niezależne) i danymi wyjściowymi (szukanymi wynikami). Algorytm dla danego zadania numerycznego jest z definicji pełnym opisem poprawnie określonych operacji przekształcających dopuszczalne dane wejściowe na dane wyjściowe. „Operacje” oznaczają tu działania arytmetyczne i logiczne. Dla danego zadania numerycznego można rozważać wiele różnych algorytmów. Algorytmy te mogą dawać wyniki o bardzo różnej dokładności. Poniższy przykład pokaże, jak błędy zaokrągleń mogą całkowicie zniekształcić wynik obliczeń, jeśli wykonuje się je według złego algorytmu.
Przykład Obliczyć dla n = 0,1,..,15 całki: Zauważmy, że: Otrzymujemy wobec tego wzór rekurencyjny: na podstawie którego zbudujemy dwa algorytmy.
Algorytm 1 Korzystając z wzoru obliczamy: , obliczamy kolejno: Przyjmując ... ................. (wynik błędny)
Algorytm 1 Powodem otrzymania takiego wyniku jest to, że błąd zaokrąglenia wartości y0 jest mnożony przez -5 przy obliczaniu y1. Tak więc wartość y1 jest obarczona błędem -5. Ten błąd tworzy błąd 25 w y2 itd. Nakładają się na to błędy zaokrąglenia popełniane w kolejnych krokach obliczeń, mające jednak stosunkowo małe znaczenie. Podstawiając y0=ln6-ln5 popełniamy mniejszy błąd zaokrąglenia, który także powoduje duże zniekształcenie wyniku obliczeń yi dla i>16 Oczywiście otrzymywane wyniki zależą także od precyzji, z jaką przeprowadzano obliczenia.
Algorytm 2
Algorytm 2
Źródła błędów Do źródeł błędów można zaliczyć: 1) Błędy danych wejściowych (gdy wykorzystujemy dane zaokrąglone, pochodzące np. z wcześniejszych obliczeń). 2) Błędy zaokrągleń w czasie obliczeń (związane z odpowiednią reprezentacją liczby). 3) Błędy obcięcia (gdy proces obliczania granicy jest przerywany przed osiągnięciem wartości granicznej - np. ograniczenie szeregu nieskończonego do skończonej liczby składników, aproksymacja pochodnej za pomocą ilorazu różnicowego). 4) Uproszczenie modelu matematycznego (przyjęcie założeń upraszczających). 5) Błędy programisty.
Błędy względne i bezwzględne
Podstawowe pojęcia szacowania błędów
Przykład 1.2.
Przykład 1.3.
Przykład 1.3.
Przykład 1.3.
Algorytm numerycznie stabilny i poprawny
Algorytm numerycznie stabilny i poprawny
Algorytm numerycznie stabilny i poprawny
Reprezentacja stałopozycyjna i zmiennopozycyjna
Reprezentacja stałopozycyjna i zmiennopozycyjna
Reprezentacja stałopozycyjna i zmiennopozycyjna
Reprezentacja stałopozycyjna i zmiennopozycyjna
Przykład 1.4.
Przykład 1.4.
Przykład 1.4.
Epsilon maszynowy Epsilon maszynowy εm jest to graniczna wartość błędu względnego przybliżenia zmiennoprzecinkowego. Praktycznie: dane reprezentowane w komputerze nie mogą być pamiętane z dokładnością większą niż εm. Intuicyjnie: 1+ εm jest najmniejszą liczbą większą od 1, którą komputer potrafi odrożnić od 1. Ponadto rd (x) = x (1+δ) δ≤ ε