Metody numeryczne Janusz Szwabiński szwabin@ift.uni.wroc.pl nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.1/63
Plan wykładu 1. Dokładność w obliczeniach numerycznych 2. Złożoność obliczeniowa algorytmów 3. Interpolacja funkcji 4. Całkowanie numeryczne funkcji 5. Różniczkowanie numeryczne funkcji 6. Układy równań liniowych 7. Równania nieliniowe 8. Zagadnienia własne 9. Zagadnienia początkowe i brzegowe dla równań różniczkowych zwyczajnych nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.2/63
Literatura 1. Å. Björck, G. Dahlquist, Metody numeryczne 2. S. E. Koonin, Computational Physics 3. J. Stoer, Wstęp do metod numerycznych 4. D. Potter, Metody obliczeniowe fizyki 5. W. H. Press, S. A. Teutolsky, W. T. Vetterling, B. P. Flannery, Numerical Recipes in (http://www.nr.com) 6. K. A. Ross, Ch. R. B. Wright, Matematyka dyskretna 7. P. Wróblewski, Algorytmy, struktury danych i techniki programowania nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.3/63
the purpose of computing is insight, not numbers (Hamming) nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.4/63
Dokładność w obliczeniach numerycznych 1. Analiza błędów Źródła błędów Błędy bezwzględne i względne Cyfry poprawne i znaczące Ucinanie i zaokrąglanie Przenoszenie się błędów 2. Przedstawienia liczb Liczby całkowite Reprezentacja zmiennopozycyjna Arytmetyka zmiennopozycyjna i błędy zaokrągleń 3. Analiza zaburzeń pozornych nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.5/63
Źródła błędów (i) błędy danych wejściowych (ii) zaokrąglenia w czasie obliczeń (iii) błędy zakresu (iv) błędy obcięcia (v) uproszczenia modelu matematycznego (vi) błędy człowieka i maszynowe nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.6/63
Błędy bezwzględne i względne - wartość przybliżona - wartość dokładna Definicja Błędem bezwzględnym wartości. nazywamy Definicja Błędem względnym wartości, jeśli. nazywamy Jeśli pozostaje nieznane, wówczas szacuje się nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.7/63
Cyfry ułamkowe i istotne Definicja Cyfry ułamkowe to wszystkie cyfry po kropce dziesiętnej w ułamku. Cyfry istotne to cyfry jakie pozostaną po pominięciu zer na początku ułamka. Przykład Liczba 0,00245 ma pięć cyfr ułamkowych i trzy istotne. Liczba 12,12 ma dwie cyfry ułamkowe i cztery istotne nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.8/63
Cyfry poprawne i znaczace Definicja Jeżeli, to ma ułamkowych. Cyfry istotne występujace w kropce to cyfry znaczące. poprawnych cyfr do pozycji tej po Przykład Liczba poprawnych (ponieważ ma pięć cyfr ) i trzy znaczące. cyfry poprawne cyfry znaczące błąd bezwzględny błąd względny nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.9/63
Ucinanie i zaokraglanie (1) Cel: skrócenie liczby do danej długości Metody: cyfr ułamkowych 1. ucinanie, czyli odrzucenie cyfr na prawo od tej błąd bezwzględny błąd ma systematycznie znak przeciwny niż sama liczba nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.10/63
Ucinanie i zaokraglanie (2) 2. zaokrąglanie, czyli wybór liczby najbardziej zbliżonej do danej jeśli, to jeśli jeśli Przykład liczba zaokrąglanie ucinanie 0,2379 0,238 0,237-0,2379-0,238-0,237 0,2375 0,238 0,237 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.11/63
Przenoszenie się błędów - dodawanie i odejmowanie (1) Niech Zachodzą następujące związki czyli nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.12/63
Przenoszenie się błędów - dodawanie i odejmowanie (2) Zatem Twierdzenie 1 Oszacowanie błędu bezwzględnego wyniku dodawania lub odejmowania jest suma oszacowań błędów bezwzględnych składników. Dowód Metodą indukcji matematycznej nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.13/63
Przenoszenie się błędów - mnożenie i dzielenie (1) wynika Z definicji błędu względnego Stąd Wobec tego. i jeżeli tylko nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.14/63
Przenoszenie się błędów - mnożenie i dzielenie (2) Podobnie. i jeżeli tylko Niech Wówczas i nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.15/63
Przenoszenie się błędów - mnożenie i dzielenie (3) Twierdzenie 2 W mnożeniu i dzieleniu oszacowania błędu względnego argumentów (o ile tylko błędy te sa ) dodaja się. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.16/63
Przenoszenie się błędów - znoszenie się składników jeżeli i niewiele się różnią między sobą, ich różnica może mieć małą dokładność względną Przykład Niech. Mamy i oszacowanie błędu jest tak samo duże, jak otrzymana różnica nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.17/63
Przenoszenie się błędów - wzór ogólny (1) Niech - funkcja jednej zmiennej - dokładna wartość argumentu - przybliżona wartość argumentu - błąd, którego oszacowania szukamy nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.18/63
Przenoszenie się błędów - wzór ogólny (2) y y ~ y (x) x x ~ x x można przybliżyć za pomocą różniczki funkcji. to przy tym miara wrażliwości argumentu na zakłócenie nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.19/63
Przenoszenie się błędów - wzór ogólny (3), Twierdzenie 3 Jeśli jest funkcj a to wartość przybliżona argumentu, to i, oraz wówczas ogólny wzór na przenoszenie się błędów ma postać: krokach, do przesuwamy się w Dowód Załóżmy, że z zmieniając w każdym z nich tylko jedną współrzędną. Zatem dla mamy nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.20/63
Przenoszenie się błędów - wzór ogólny (4) Dowód (ciąg dalszy) oraz Gdy przechodzi się z na do, zmienia się. Z twierdzenia o wartości średniej wynika ta współrzędna z gdzie. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.21/63
Przenoszenie się błędów - wzór ogólny (5) Dowód (ciąg dalszy) Ponieważ otrzymujemy nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.22/63
Znoszenie się błędów Przykład Niech się, ponieważ oraz, gdzie. Błędy wielkości i, znoszą Zatem i oraz należało by wyznaczyć z czterema cyframi ułamkowymi, choć nawet cyfry jedności nie są pewne. Jeśli jednak przekształcimy w następujacy sposób: otrzymamy z żądaną dokładnościa przy niskiej dokładności pierwiastka kwadratowego. Wynik: nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.23/63
Zaburzenia eksperymentalne Skomplikowane zadania obliczeniowe: związki między danymi WE/WY zbyt skomplikowane, aby stosować wzór na przenoszenie się błędów obliczenia testowe, w których bada się wrażliwość danych WY na zaburzenie danych WE nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.24/63
Przedstawienia liczb Maszyny cyfrowe: skończona pamięć skończona liczba operacji WE/WY w jednostce czasu zbiór liczb reprezentowanych w maszynie skończony nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.25/63
Liczby całkowite (1) Maszynowa, -bitowa liczba całkowita reprezentowana jest w następujący sposób: przy czym Zakres: Oszacowanie błędu:.. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.26/63
Liczby całkowite (2) Przykład Liczba Reprezentacja 8-bitowa +1 0 0 0 0 0 0 0 1 +2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0-1 1 1 1 1 1 1 1 1 +117 0 1 1 1 0 1 0 1-118 1 0 0 0 1 0 1 0 Wartościowość nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.27/63
Liczby całkowite (3) Liczby ujemne: w liczbie dodatniej o tym samym module zmień każdy bit na przeciwny dodaj 1 dzięki temu nie trzeba rozróżniać na liczby dodatnie i ujemne przy dodawaniu Przykład +2 0 0 0 0 0 0 1 0-1 1 1 1 1 1 1 1 1 +1 0 0 0 0 0 0 0 1 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.28/63
Reprezentacja zmiennopozycyjna (1) Liczba maszynowa postać: w reprezentacji zmiennopozycyjnej ma - bit znaku, - mantysa, - wykładnik (cecha), - podstawa (ustalona), operacje na ustalonej liczbie cyfr istotnych. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.29/63
Reprezentacja zmiennopozycyjna (2) 32 bitowy, zmiennopozycyjny standard IEEE (Institute of Electrical and Electronics Engineers): - bit znaku, - część ułamkowa (23 bity), - wykładnik przesunięty o 127 (8 bitów), Zakres:. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.30/63
Reprezentacja zmiennopozycyjna (3) Przesunięcie wykładnika: ogólnie o wykładnika,, gdzie to liczba bitów w polu wykładnik reprezentowany przez liczby dodatnie, najmniejsza liczba maszynowa może być odwrócona bez wykroczenia poza zakres. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.31/63
Reprezentacja zmiennopozycyjna (4) Wartości specjalne: 0 00000000 00000000000000000000000 0 1 00000000 00000000000000000000000-0 0 11111111 00000000000000000000000 1 11111111 00000000000000000000000 0 11111111 00000100000000000000000 NaN 1 11111111 00100010001001010101010 NaN nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.32/63
Reprezentacja zmiennopozycyjna (5) Przykład Chcemy przekształcić liczbę 5,375 do formatu IEEE: przekształcamy do postaci dwójkowej: renormalizujemy otrzymaną liczbę: pomijamy wiodącą jedynkę w mantysie 01011 wyznaczamy wykładnik: znak dodatni 0 znak wykładnik mantysa 0 10000001 01011000000000000000000 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.33/63
Reprezentacja zmiennopozycyjna (6) Przykład -113,3125: przekształcamy wartość bezwzględną do postaci dwójkowej: część całkowita: część ułamkowa: renormalizujemy otrzymaną liczbę: pomijamy wiodącą jedynkę w mantysie 1100010101 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.34/63
Reprezentacja zmiennopozycyjna (7) Przykład (ciąg dalszy) wyznaczamy wykładnik: znak ujemny 1 znak wykładnik mantysa 1 10000101 11000101010000000000000 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.35/63
Reprezentacja zmiennopozycyjna (8) Przykład 1,7: przekształcamy część ułamkową do postaci dwójkowej:. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.36/63
Reprezentacja zmiennopozycyjna (9) Przykład (ciąg dalszy) pomijamy wiodącą jedynkę w mantysie 10110011001100110011001 wyznaczamy wykładnik: znak dodatni 0 znak wykładnik mantysa 0 01111111 10110011001100110011001 nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.37/63
Arytmetyka zmiennopozycyjna (1) Dla dowolnych liczb maszynowych i mamy gdzie to odwzorowanie zaokrąglania (lub ucinania), przekształcające liczbę rzeczywistą na maszynową. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.38/63
Arytmetyka zmiennopozycyjna (2), Przykład Niech. Wówczas mamy: oraz Z drugiej strony nie jest łączne. czyli nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.39/63
Arytmetyka zmiennopozycyjna (3) algorytmy równoważne matematycznie nie zawsze są równoważne numerycznie. Definicja Algorytmy nazywamy równoważnymi matematycznie, jeśli dają te same wyniki dla jednakowych danych wejściowych, o ile tylko obliczenia wykonuje się bez zaokrągleń. Definicja Algorytmy nazywamy równoważnymi numerycznie, gdy wyniki dla jednakowych danych wejściowych różnią się tylko o tyle, o ile mogą zmienić się dokładne dane wyjściowe zadania, gdy dane wejściowe zaburzy się o niewiele, gdzie jest względnym błędem zaokrąglenia lub ucięcia. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.40/63
Analiza zaburzeń pozornych (1) Z definicji wynika gdzie to jednostka maszynowa. wynik każdego z działań można przedstawić jako wynik dokładnego działania wykonanego na zaburzonych argumentach, przy czym zaburzenie względne nie przewyższa nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.41/63
Analiza zaburzeń pozornych (2) Definicja Dane wyjściowe otrzymane za pomocą algorytmu interpretujemy jako dokładne dane wyjściowe tych samych obliczeń, ale ze zmienionymi danymi wejściowymi. Wówczas wskaźnik uwarunkowania algorytmu, wskazuje wystarczający zakres takiej względnej zmiany danych wejściowych z jako jednostką. Definicja Wskaźnik uwarunkowania zadania z pewnymi danymi wejściowymi jest największą zmianą względną, mierzoną w jednostkach, dokładnych danych wyjściowych, spowodowaną zakłóceniem względnym danych wejściowych o wielkości. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.42/63
Analiza zaburzeń pozornych (3) Jeśli jest oszacowaniem błędu względnego danych wejściowych, to jest oszacowaniem błędu względnego danych wyjściowych. zależą od danych wejściowych, natomiast są wzajemnie niezależne. i nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.43/63
Analiza zaburzeń pozornych (4) Przykład - zadanie obliczenia wartości funkcji w punkcie. Z definicji wynika, że wskaźnik ten jest większą z wartości wyrażenia dla i (o ile tylko funkcja jest dostatecznie reguralna w otoczeniu ). Stąd w praktyce przyjmuje się często nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.44/63
Analiza zaburzeń pozornych (5) Przykład Chcemy obliczyć Mamy zadanie źle uwarunkowane dla zadanie bardzo dobrze uwarunkowane dla nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.45/63
Złożoność obliczeniowa algorytmów 1. Notacja 2. Złożoność obliczeniowa algorytmów Uproszczone zasady analizy algorytmów Kilka słów o rekurencji nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.46/63
Notacja (1) Definicja Niech i będą ciągami liczb rzeczywistych. Piszemy wtedy, gdy istnieje stała dodatnia taka, że dla dostatecznie dużych wartości. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.47/63
Notacja (2) Twierdzenie 4 W poniższej hierarchii ciagów każdy z nich jest od wszystkich ciagów na prawo od niego: Dowód (i) można przedstawić w postaci Ponieważ po prawej stronie jest nich jest co najwyżej równy 2, więc również. czynników i każdy z, a zatem nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.48/63
Notacja (3) Dowód (ciąg dalszy) (ii) Ponieważ, więc dla. (iii) Dla mamy Pierwszy czynnik pozostałych jest większy od, a każdy z czynników jest większy od 2. Zatem nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.49/63
Notacja (4) Dowód (ciąg dalszy) (iv) Nierówność jest oczywista, ponieważ jest iloczynem liczb naturalnych, z których wszystkie poza jedną są mniejsze od. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.50/63
Notacja (5) Twierdzenie 5 (a) Jeśli i jest stał a, to (b) Jeśli i, to (c) Jeśli i, to (d) Jeśli i, to nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.51/63
Notacja (6) Dowód (a) Z definicji notacji mamy dla dostatecznie dużych. Zatem: czyli. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.52/63
Notacja (7) Dowód (ciąg dalszy) (b) Jeśli i, to istniej a liczby dodatnie i takie, że oraz dla dostatecznie dużych. Ponieważ dla, więc wynika stąd, że dla dostatecznie dużych. Zatem. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.53/63
Notacja (8) Dowód (ciąg dalszy) (c) Jeśli i, to istniej a liczby dodatnie i takie, że oraz dla dostatecznie dużych. Stąd wynika, że dla dostatecznie dużych. Zatem. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.54/63
Notacja (9) Dowód (ciąg dalszy) (d) Jeśli i, to istniej a liczby dodatnie i takie, że oraz dla dostatecznie dużych. Zatem dla dostatecznie dużych, a więc. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.55/63
Notacja (10) Twierdzenie 6 Dla dowolnych ci agów i mamy (a). (b). nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.56/63
Notacja (11) Dowód (a) Niech oraz. Wtedy istniej a liczby dodatnie i takie, że oraz dla dostatecznie dużych. Zachodzi zatem nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.57/63
Notacja (12) Dowód (a) (ciąg dalszy) dla dostatecznie dużych. Czyli. (b) Dowód wynika natychmiast z poprzedniego twierdzenia (podpunkt c) nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.58/63
Złożoność obliczeniowa algorytmów Przykład Zestawienie czasów wykonania algorytmów różnych klas. Założenie: elementarny czas wykonania wynosi jedną mikrosekundę ( ( s). 10 20 30 40 50 60 0,00001s 0,00002s 0,00003s 0,00004s 0,00005s 0,00006s 0,0001s 0,0004s 0,0009s 0,0016s 0,0025s 0,0036 0,001s 0,008s 0,027s 0,064s 0,125s 0,216s 0,001s 1,048s 17,9min 12,7dni 35,7lat 366w 0,059s 58min 6,5lat 3855w 227* 3,6s 771w 8,4* oznacza tutaj wiek) w 2,6* w 9,6* w 1,3* w 2,6* w w nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.59/63
Uproszczone zasady analizy algorytmów (1) 1. w analizie programu należy zwracać uwagę tylko na najbardziej czasochłonne operacje, 2. należy wybrać wiersz programu znajdujący się w najgłębiej położonej instrukcji iteracyjnej, następnie zliczyć liczbę jego wywołań i na tej podstawie wnioskować o klasie algorytmu. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.60/63
Uproszczone zasady analizy algorytmów (2) Przykład Przeanalizujmy poniższy fragment programu: while(i<n) { while(j<=n) { suma=suma+2; j=j+1; } i=i+2; } Wiersz suma=suma+2 będzie tu wykonywany Powyższy fragment jest zatem klasy jest tu wielkość ). razy. (rozmiarem danych nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.61/63
Kilka słów o rekurencji (1) int silnia(int n) { if(n>0) return n*silnia(n-1); else return 1; } Niech czas sprawdzenia warunku wynosi najbardziej czasochłonna operacja. Wówczas. Załóżmy, że jest to dla nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.62/63
Kilka słów o rekurencji (2). algorytm jest klasy nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.63/63