METODY NUMERYCZNE Wykład 1. Wprowadzenie do metod numerycznych dr hab.inŝ. Katarzyna Zakrzewska, prof.agh, Katedra Elektroniki, AGH e-mail: zak@agh.edu.pl http://home.agh.edu.pl/~zak Met.Numer. wykład 1 1 Wprowadzenie do metod numerycznych Metody numeryczne są działem matematyki stosowanej zajmującym się opracowywaniem metod przybliŝonego rozwiązywania problemów matematycznych, których albo nie moŝna rozwiązać metodami dokładnymi albo metody dokładne posiadają tak duŝą złoŝoność obliczeniową, Ŝe są praktycznie nieuŝyteczne Metody numeryczne zajmują się konstruowaniem algorytmów, których obiektami, tj. danymi, wynikami pośrednimi i wynikami ostatecznymi są liczby Met.Numer. wykład 1 1
Wprowadzenie do metod numerycznych Cechy charakterystyczne metod numeryczne: obliczenia wykonywane są na liczbach przybliŝonych rozwiązania zagadnień teŝ są wyraŝone liczbami przybliŝonymi wielkość błędu w procesie obliczeń numerycznych jest zawsze kontrolowana Met.Numer. wykład 1 3 Procedury matematyczne Równania nieliniowe RóŜniczkowanie Układ równań liniowych Dopasowanie krzywych Interpolacja Regresja Całkowanie Zwyczajne równania róŝniczkowe Inne zaawansowane procedury: Cząstkowe równania róŝniczkowe Optymalizacja Szybka transformata Fouriera Met.Numer. wykład 1 4
Literatura: Z. Fortuna, B. Macukow, J. Wąsowski, Metody numeryczne, Podręczniki Akademickie EIT, WNT Warszawa,198, 005 L.O. Chua, P-M. Lin, Komputerowa analiza układów elektronicznych-algorytmy i metody obliczeniowe, WNT, Warszawa, 1981 G.Dahlquist, A.Björck, Metody matematyczne, PWn Warszawa, 1983 Autar Kaw, Luke Snyder http://numericalmethods.eng.usf.edu Met.Numer. wykład 1 5 Literatura dodatkowa: M.Wciślik, Wprowadzenie do systemu Matlab, Wydawnictwo Politechniki Świętokrzyskiej, Kielce, 000 S. Osowski, A. Cichocki, K.Siwek, Matlab w zastosowaniu do obliczeń obwodowych i przetwarzania sygnałów, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 006 W.H. Press, et al., Numerical recipes, Cambridge University Press, 1986 Met.Numer. wykład 1 6 3
Plan Arytmetyka zmiennoprzecinkowa Analiza błędów w obliczeniach numerycznych Zadania i algorytmy numeryczne Stabilność i uwarunkowanie algorytmu Met.Numer. wykład 1 7 Przypomnienie Co trzeba wiedzieć układając własne algorytmy obliczeniowe? wielkość pamięci operacyjnej szybkość wykonywania operacji arytmetycznych i logicznych zakres liczb dopuszczalnych podczas obliczeń dokładność wykonywania podstawowych działań arytmetycznych na liczbach rzeczywistych Met.Numer. wykład 1 8 4
Sposób przedstawiania liczb w pamięci komputera Liczby są zapamiętywane jako stałoprzecinkowe (liczby stałopozycyjne, ang. fied-point numbers) zmiennoprzecinkowe (liczby zmiennopozycyjne, ang. floatingpoint numbers, fl) Komputer pracuje wewnętrznie w układzie dwójkowym, a komunikuje się ze światem zewnętrznym w układzie dziesiętnym, stąd procedury konwersji. Jest to źródłem błędów. Met.Numer. wykład 1 9 Arytmetyka komputerowa Reprezentacja liczby dziesiętnej 1 57.76 10 + 5 10 + 7 10 0 + 7 10 1 + 6 10 System dwójkowy (binarny) (1011.0011) 3 1 0 (1 + 0 + 1 + 1 ) 1 3 + (0 + 0 + 1 + 1 11.1875 W układzie dwójkowym stosujemy dwie cyfry: 0 i 1, nazywane bitami 4 ) 10 Met.Numer. wykład 1 10 5
Struktura liczby zmiennoprzecinkowej M-mantysa liczby liczby M W-wykładnik części potęgowej, N, 10 w N W zapisie zmiennoprzecinkowym liczba rzeczywista jest przedstawiana za pomocą dwóch grup bitów: I tworzy mantysę M, część ułamkowa ½<M<1 II - tworzy W, liczba całkowita, zakres W decyduje o zakresie liczb dopuszczalnych w komputerze Met.Numer. wykład 1 11 Arytmetyka zmiennoprzecinkowasystem dziesiętny Postać liczby σ m 10 e wykładnik będący liczbą całkowitą znak liczby (-1 lub +1) mantysa (1) 10 m<(10) 10 Przykład.5678 10 σ 1 m.5678 e Met.Numer. wykład 1 1 6
Arytmetyka zmiennoprzecinkowasystem dwójkowy Postać liczby σ m e wykładnik będący liczbą całkowitą znak liczby (0 dla dodatniej lub 1 dla ujemnej liczby) Przykład (101) ( 1.1011011) 1 nie jest zapisywane mantysa (1) m<() σ 0 m 1011011 e 101 Met.Numer. wykład 1 13 Przykład: Struktura liczby zmiennoprzecinkowej M w N JeŜeli w zapisie dwójkowym M określa 5 bitów a W trzy bity, przy czym pierwszy bit określa znak ( - to jeden), to: (1)1101 M (0)10 W oznacza liczbę 0,1101 + 10 1 0 1 czyli: + + + 4 8 16 1 + (1 + 01) w zapisie dziesiętnym -3,5 Met.Numer. wykład 1 14 7
Konsekwencje zapisu M w N W zapisie zmiennopozycyjnym moŝna utworzyć tylko niektóre liczby w zakresie zaleŝnym od ilości bitów mantysy M i wykładnika w (dla N) Są pewne liczby, których nie moŝna w tym zapisie przedstawić dokładnie. Przyjęcie najbliŝszej wartości jako przybliŝenia tej liczby jest źródłem błędów wejściowych. Zaokrąglanie oznacza, Ŝe kaŝda wielkość mieszcząca się w przedziale o długości będzie reprezentowana jako najbliŝsza dozwolona liczba. Przedział między liczbami, które moŝemy przedstawić dokładnie rośnie gdy liczby rosną. Met.Numer. wykład 1 15 Przykład: Liczba 0. ( w zapisie dziesiętnym) ma w zapisie dwójkowym nieskończone rozwinięcie równe: 0,0011(0011) NajbliŜsza jej liczba dla ilości cyfr mantysy t4 i wykładnika 3 to ' 0,001100 czyli 0,1875 Błąd bezwzględny przybliŝenia ' 0, 015 Dla liczby a6,5 (1.1001 (10) ) najbliŝszą jest a 6,5 (1.1010 (10) ) Błąd bezwzględny wynosi 0,5. Błąd bezwzględny silnie zaleŝy od wielkości rozpatrywanej liczby Met.Numer. wykład 1 16 8
Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)? Przykład 1. W jaki sposób moŝna zapisać liczbę 56.78 na 5-ciu miejscach? 5 6. 7 8 Jak moŝna zapisać najmniejszą liczbę w tym formacie? 0 0 0. 0 0 Jak moŝna zapisać największą liczbę w tym formacie? 9 9 9. 9 9 Met.Numer. wykład 1 17 Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)? Przykład. W jaki sposób moŝna zapisać liczbę 56.786 na 5-ciu miejscach? zaokrąglenie (rounded off) 5 6. 7 9 urwanie (chopped) 5 6. 7 8 Wniosek: Błąd jest mniejszy niŝ 0.01 Met.Numer. wykład 1 18 9
Jaki błąd popełniamy? Błąd bezwzględny o wielkość dokładna lub rzeczywista o Błąd względny Obliczenia: o o ε t o o 56.79 56.786 100 % 100% 0.001558% 56.786 Met.Numer. wykład 1 19 Jaki błąd popełniamy? Względne błędy wielkości małych są duŝe. Porównajmy: ε t ε t o o o o 56.79 56.786 100 % 100% 0.001558% 56.786 3.55 3.546 100 % 100% 0.1180% 3.546 Błędy bezwzględne są jednakowe: o 56.786 56.79 3.546 3.55 0.004 Met.Numer. wykład 1 0 10
Jak utrzymać błędy względne na podobnym poziomie? MoŜna przedstawić liczbę w postaci: znak mantysa 10 wykł lub znak mantysa wykł czyli 56.78 zapisujemy jako +.5678 10 0.003678 zapisujemy jako+ 3.678 10 56.78 zapisujemy jako.5678 10 3 Met.Numer. wykład 1 1 Co zyskujemy stosując zapis zmiennoprzecinkowy? Zwiększa się zakres liczb, które moŝemy zapisać JeŜeli uŝyjemy tylko 5 miejsc do zapisu liczby (dodatniej o dodatnim wykładniku) to najmniejsza liczba zapisana to 1 a największa 9.99910 9. 9 9 9 9 9 mantysa wykładnik Zakres moŝliwych do zapisania liczb zwiększył się od 999.99 do 9.99910 9. Met.Numer. wykład 1 11
Co tracimy stosując zapis zmiennoprzecinkowy? Dokładność (precyzję). Dlaczego? Liczba 56.78 będzie przedstawiona jako.567810 i na pięciu miejscach: 5 6 8 mantysa wykładnik Wystąpi błąd zaokrąglenia. Met.Numer. wykład 1 3 Przykład do samodzielnego rozwiązania 1. Proszę przedstawić liczbę 57639.78 na pięciu miejscach w podobny sposób jak w poprzednim przykładzie: mantysa wykładnik. Proszę oszacować błąd bezwzględny i względny zaokrąglenia 3. Porównać z przykładem poprzednim (56.78) i wyciągnąć wnioski Met.Numer. wykład 1 4 1
Rozwiązanie przykładu do samodzielnego rozwiązania 1. Liczba 57639.78 zapisana na pięciu miejscach: 5 7 6 3 5 mantysa wykładnik. Błąd bezwzględny przybliŝenia wynosi 9.78 a względny 0.005167% 3. Dla liczby 56.78 te błędy wynoszą odpowiednio: 0.0 (mniejszy) i 0.0077888% (porównywalny) Met.Numer. wykład 1 5 Przykład do samodzielnego rozwiązania Mamy słowo 9-bitowe pierwszy bit odpowiada znakowi liczby, drugi bit znakowi wykładnika, następne cztery bity kodują mantysę, ostatnie trzy bity zapisują wykładnik 0 0 1 0 1 1 1 1 0 znak liczby znak wykładnika mantysa wykładnik Znajdź liczbę (w postaci dziesiętnej), która jest przedstawiona w podany sposób. Met.Numer. wykład 1 6 13
Odpowiedź ( 54.75) 10 ( 110110.11) ( 1.1011011) ( 1.1011) ( 101) 5 nie jest zapisywane 0 0 1 0 1 1 1 0 1 Met.Numer. wykład 1 7 Co to jest ε maszyny cyfrowej? Dla kaŝdej maszyny cyfrowej definiuje się parametr epsilon ε określający dokładność obliczeń: ε N Met.Numer. wykład 1 8 t gdzie: N (w zapisie dwójkowym), N10 (w zapisie dziesiętnym), t jest liczbą bitów w mantysie liczby ε jest tym mniejsze im więcej bitów przeznaczono na reprezentowanie mantysy M Epsilon ε moŝna traktować jako parametr charakteryzujący dokładność obliczeniową maszyny (im mniejsze ε tym większa dokładność). Podwójna precyzja (Fortran) ε DP ε 14
Co to jest ε maszyny cyfrowej? Epsilon ε jest to najmniejsza liczba, która po dodaniu do 1.000 produkuje liczbę, którą moŝna przedstawić jako róŝną od 1.000. Przykład: słowo dziesięciobitowe 0 0 0 0 0 0 0 0 0 0 ( 1) 10 M w N znak liczby wykładnik mantysa następna znak wykładnika 0 0 0 0 0 0 0 0 0 1 1.0001 1. 065 liczba ( ) ( ) 10 mach 1.065 1 4 Met.Numer. wykład 1 9 Pojedyncza precyzja w formacie IEEE-754 (Institute of Electrical and Electronics Engineers) 3 bity dla pojedynczej precyzji 00000000000000000000000000000000 znak (s) wykładnik (e ) mantysa (m) e' 17 ( 1 m) s Liczba ( 1). Met.Numer. wykład 1 30 15
Przykład 11010001010100000000000000000000 Sign (s) Biased Eponent (e ) Mantissa (m) Value s e' 17 ( 1) ( 1. m) (10100010) 17 ( 1) 1 ( 1.10100000) 16 17 ( 1) ( 1.65) 35 10 ( 1 ) ( 1.65) 5.5834 10 Met.Numer. wykład 1 31 Wykładnik dla 3-bitowego standardu IEEE-754 8 bitów wykładnika oznacza 0 e 55 Ustalone przesunięcie wykładnika wynosi 17 a zatem 17 e 18 W istocie 1 e 54 Liczby e 0 i e 55 są zarezerwowane dla przypadków specjalnych Zakres wykładnika 16 e 17 Met.Numer. wykład 1 3 16
Reprezentacja liczb specjalnych s e e 0 e 55 m same zera same jedynki Reprezentuje 0 same zera same zera 0 1 0 1 0 lub 1 same zera same jedynki same jedynki same jedynki same zera same zera same zera róŝne od zera -0 NaN Met.Numer. wykład 1 33 Format IEEE-754 Największa liczba 17 38 ( 1.1...1) 3.40 Najmniejsza liczba 10 16 38 ( 1.00...0).18 10 Epsilon maszyny cyfrowej ε mach 3 1.19 10 7 Met.Numer. wykład 1 34 17
Analiza błędów JeŜeli nie znamy wielkości dokładnej o moŝemy obliczać błąd bezwzględny przybliŝenia (ang. approimate error) jako róŝnicę wartości uzyskanych w kolejnych przybliŝeniach : n n 1 Błąd względny ε a : ε a n n 1 n Met.Numer. wykład 1 35 a) Dla 0.5 f ( ) 7e w f dla h 0. 3 f () dlah 0. a) () b) 15 c) błąd przybliŝenia f '() h 0.3 f ' ( ) f ( + 0,3) f () 7e 0,3 Przykład znajdź Rozwiązanie f ( + h) h 0,5(,3) 7e 0,3 f ( ) 0,5() 10,65 Met.Numer. wykład 1 36 18
Przykład (cd) b) h 0.15 f '() c) ε a f ( + 0,15) f () 7e 0,15 n n 1 ε a n 0,5(,15) 7e 0,15 9,880 10,65 0,0389 9,8800 0,5() 9,880 Błąd procentowy 3,89% Met.Numer. wykład 1 37 Błąd względny jako kryterium zakończenia procedury iteracyjnej JeŜeli błąd względny jest mniejszy lub równy od pewnej określonej wcześniej liczby to dalsze iteracje nie są konieczne ε a ε s JeŜeli wymagamy przynajmniej m cyfr znaczących w wyniku to ε a 0.5 10 m Met.Numer. wykład 1 38 19
Podsumowanie przykładu ε h f () a 0.5 10 εa m 0.3 10.65 N/A 0 0.15 9.8800 0.03894 3 m 0.10 9.7559 0.0171 3 0,05 0.01 9.5378 0.086 3 0.001 9.5164 0.005 4 0,005 Wartość dokładna 9.514 Met.Numer. wykład 1 39 Przykład: Błąd względny ε jest określony jako: ' (1 + ε') czyli ε -0,065 dla 0, i ε 0,04 dla a6,5 MoŜna pokazać, Ŝe ε' ε dla dowolnej liczby mieszczącej się w zakresie liczb objętych zapisem Tak jest równieŝ w rozwaŝanym przykładzie: ε 4 0,065 Met.Numer. wykład 1 40 0
Źródła błędów w obliczeniach numerycznych 1. Błędy wejściowe (błędy danych wejściowych). Błędy obcięcia (ang. truncation error) 3. Błędy zaokrągleń (ang. round off error) Błędy wejściowe występują wówczas gdy dane wejściowe są wprowadzone do pamięci komputera odbiegają od dokładnych wartości tych danych. Błędy obcięcia są to błędy wynikające z procedur numerycznych przy zmniejszaniu liczby działań. Błędy zaokrągleń są to błędy, których na ogół nie da się uniknąć. Powstają w trakcie obliczeń i moŝna je zmniejszać ustalając umiejętnie sposób i kolejność wykonywania zadań. Met.Numer. wykład 1 41 Błędy wejściowe Źródła błędów wejściowych: dane wejściowe są wynikiem pomiarów wielkości fizycznych skończona długość słów binarnych i konieczność wstępnego zaokrąglania wstępne zaokrąglanie liczb niewymiernych PrzybliŜanie liczb, których nie moŝna wyrazić dokładnie dokonuje się poprzez: urywanie (ang. chopping) zaokrąglanie (ang. rounding) Met.Numer. wykład 1 4 1
Przykład: π 3,1415 π 3,1415965359 π 3,1416 urywanie zaokrąglanie Zaokrąglanie prowadzi do mniejszego błędu niŝ obcinanie. Met.Numer. wykład 1 43 Błąd obcięcia Spowodowany jest uŝyciem przybliŝonej formuły zamiast pełnej operacji matematycznej: przy obliczaniu sum nieskończonych szeregów przy obliczaniu wielkości będących granicami (całka, pochodna) W lim 0 F 1 1 Fd praca Met.Numer. wykład 1 44
Szereg Taylora JeŜeli funkcja jest ciągła i wszystkie pochodne f, f, f n istnieją w przedziale [, +h] to wartość funkcji w punkcie +h moŝna obliczyć jako: f ( + h) f ( ) + f ( ) f h + f! ( ) f ( ) h h! + 3! h h 3! 3 +L Szereg Maclaurina jest to rozwinięcie wokół 0 ( 0 + h) f ( 0) + f ( 0) h + f ( 0) + f ( 0) + L+ 3 Met.Numer. wykład 1 45 Przykłady Typowe rozwinięcia w szereg wokół zera cos( ) 1! + 4 4! 6 6! +L 3 sin( ) 3! e 1+ + +! 5 7 +L 5! 7! + 3 3! +L Met.Numer. wykład 1 46 3
Błąd obcięcia w szeregu Taylora f h! h n! ( n ( + h) f ( ) + f ( ) h + f ''( ) + L+ f ) ( ) + R ( ) n n R n n+ 1 h ( n + 1)! ( n+ 1 ( ) f ) ( c) < c < + h reszta Met.Numer. wykład 1 47 Przykład Rozwinięcie w szereg e wokół 0 e 3 1+ + +! 3! 4 5 + + 4! 5! +L Im większa ilość wyrazów jest uwzględniana w rozwinięciu, tym błąd obcięcia jest mniejszy i moŝemy znaleźć tym dokładniejszą wartość wyraŝenia Pytanie: Ile naleŝy uwzględnić wyrazów aby otrzymać przybliŝoną wartość liczby e z błędem mniejszym niŝ 10-6? 1 e 3 1 1 1 1 1+ 1+ + + + +L! 3! 4! 5! 1 1 1 1 + + + + 6 4 10 4 Met.Numer. wykład 1 48 5 4
Rozwiązanie 0, h 1, f ( ) e R n n+ 1 h ( n + 1)! ( n+ 1 ( ) f ) ( c) ale < c < + h 0 < c < 0 + 1 0 < c <1 R n ( 0) 1 n+ 1 f 1! ( n + ) n+ ( 1) 1 ( + 1) e n! ( n+ 1 ) ( c) 1 e < Rn ( 0) < ( n + 1)! ( n + 1)! c Met.Numer. wykład 1 49 Rozwiązanie ( e n + < 10 1)! 6 załoŝony poziom błędu ( n + 1)! > 10 ( n + 1)! > 10 n 9 6 6 e 3 Co najmniej 9 wyrazów musimy zastosować aby otrzymać wartość błędu na poziomie 10-6 Met.Numer. wykład 1 50 5
Wnioski z dotychczasowych rozwaŝań W wielu przypadkach moŝna uniknąć błędów wejściowych i błędów obcięcia. W trakcie obliczeń pojawiają się nowe błędy (błędy zaokrągleń), których nie da się uniknąć. Błędy zaokrągleń moŝna zmniejszyć ustalając umiejętnie sposób i kolejność wykonywania działań. Met.Numer. wykład 1 51 Przykład tragicznego błędu zaokrąglenia 5 lutego 1991 w Dhahran, Arabia Saudyjska, zginęło 8 amerykańskich Ŝołnierzy w wyniku ataku irackiej rakiety Scud. System obrony Patriot nie wykrył zagroŝenia. Dlaczego? System oblicza powierzchnię, którą powinien skanować na podstawie prędkości obiektu i czasu ostatniej detekcji. Zegar wewnętrzny był ustawiony na pomiar co 1/10 sekundy. Długość słowa 4 bity. Z powodu zaokrągleń błąd bezwzględny wyniósł 9.5 10-8 s a po 100 godzinach: 9.5 10 8 10 60 60 100 0.34 sec Przesunięcie obliczone na tej podstawie 687 m. Obiekt jest uznany poza zakresem gdy przesunięcie wynosi 137 m Met.Numer. wykład 1 5 6
Lemat Wilkinsona Błędy zaokrągleń powstające podczas wykonywania działań zmiennopozycyjnych są równowaŝne zastępczemu zaburzaniu liczb, na których wykonujemy działania. Dla pojedynczych działań arytmetycznych: fl( 1 ± ) 1 (1 + ε 1) ± (1 + ε) fl( 1 ) 1 (1 + ε3) 1 (1 + ε3) fl( 1 / ) 1 (1 + ε4) / 1 /( (1 + ε5)) symbol działania wykonanego na danych zmiennopozycyjnych ε Met.Numer. wykład 1 53 ε i Działania arytmetyczne 1. Dodawanie i odejmowanie Aby dodać lub odjąć dwie znormalizowane liczby w zapisie zmiennoprzecinkowym, wykładniki w powinny być zrównane poprzez odpowiednie przesunięcie mantysy. Przykład: Dodać 0,4546 10 5 do 0,5433 10 7 przesuwamy 0,0045 10 7 +0,5433 10 7 0,5478 10 7 Wniosek: Tracimy pewne cyfry znaczące Met.Numer. wykład 1 54 7
Działania arytmetyczne Zamiast interpretować powstały błąd jako wyniki zaokrąglania (urwania), które nastąpiło podczas przeskalowania (zmiany wykładników) składników, moŝna przyjąć w myśl lematu Wilkinsona, Ŝe samo działanie zostało wykonane dokładnie (bez błędu), ale na zmienionych trochę składnikach. W tym przykładzie: Wynik dokładny: 0,54784610-7 Wynik przybliŝony: 0,547810-7 Błąd względny sumy: 0,00008 jest mniejszy niŝ ε10-4 Ten sam wynik otrzymamy gdy dodamy np. 0,4546 10 5 do 0,54354 10 7 (składnik zaburzony) Met.Numer. wykład 1 55. MnoŜenie Działania arytmetyczne Przykład: PomnoŜyć 0,5543 10 1 przez 0,4111 10-15 MnoŜymy mantysy i wykładniki w dodajemy. 0,5543 10 1 0,4111 10-15 0,7873 10-3 0,78 10-3 3. Dzielenie Przykład: Podzielić 0,1000 10 5 przez 0,9999 10 3 0,1000 10 5 /0,9999 10 3 0,1000 10 Za kaŝdym razem tracimy pewne cyfry znaczące co jest źródłem błędu Met.Numer. wykład 1 56 8
Kolejność działań (a+b)-c (a-c)+b brak przemienności, łączności a(b-c) (ab-ac) brak rozdzielności mnoŝenia względem dodawania Przykład: a 0,5665 10 1, b0,5556 10-1, c0,5644 10 1 (a+b)0,5665 10 1 +0,5556 10-1 0,5665 10 1 +0,0055 10 1 0,570 10 1 (a+b)-c0,570 10 1-0,5644 10 1 0,7600 10-1 (a-c)0,5665 10 1-0,5644 10 1 0,001 10 1 0,100 10-1 (a-c)+b0,100 10-1 +0,5556 10-1 0,7656 10-1 Met.Numer. wykład 1 57 Propagacja błędów 140 y 10 100 80 60 40 0 0 u(y) funkcja y f() styczna dy/d u (y) u() u() dy d 0 4 Met.Numer. wykład 1 58 9
Metoda róŝniczki zupełnej Dla wielkości złoŝonej yf( 1,,... n ) gdy niepewności maksymalne 1,,... n są małe w porównaniu z wartościami zmiennych 1,,... n niepewność maksymalną wielkości y wyliczamy z praw rachunku róŝniczkowego: y y y 1 + +... 1 + y n n Met.Numer. wykład 1 59 Przykład Oszacować błąd pomiaru gęstości ρ kuli o masie m i promieniu R m ρ( m, R) (4 3)πR 3 błąd bezwzględny ρ ρ m m + ρ R R ale błąd względny ρ m 1 3 ( 4 3) πr ρ R ε ρ ε m + 3ε R 3 4 ( 4 3) πr Met.Numer. wykład 1 60 30
Błędy działań arytmetycznych Błąd sumy A a ± a B b ± b błędy bezwzględne składników sumy A + B a + b ± a ± b a + b ± ( a + b) błąd bezwzględny sumy Zatem błąd bezwzględny sumy (róŝnicy) jest równy sumie błędów składników. ( a ± b) a + b Met.Numer. wykład 1 61 Błędy działań arytmetycznych Błąd względny sumy ε a+ b a + b a + b Błąd względny róŝnicy ε a b a + b a b Błąd względny róŝnicy moŝe być duŝy nawet gdy błędy względne odjemnej i odjemnika są małe. NaleŜy unikać odejmowania prawie równych liczb przybliŝonych! Zjawisko zwane redukcją cyfr znaczących Szczególnie istotne przy obliczeniach ilorazów róŝnicowych przybliŝających pochodne funkcji, pierwiastków równania kwadratowego przy dominującym współczynniku przy pierwszej potędze, itp. Met.Numer. wykład 1 6 31
Koncepcja zera Tracimy dokładny sens liczby 0 jeśli dokonujemy obliczeń numerycznych pierwiastkami są 1± 3 w przybliŝeniu + 0 0,730 10 o -0.73 10 1 Sprawdzić, Ŝe po podstawieniu rozwiązań przybliŝonych nie otrzymujemy dokładnie liczby zero Powinno się zatem unikać odejmowania bliskich sobie liczb i warunek w pętli nie powinien być ustawiany do zera, if a-b<ε Met.Numer. wykład 1 63 Wnioski praktyczne Przy obliczeniach numerycznych korzystne jest: ponowne rozwiązanie tego samego zagadnienia inną metodą lub taką samą metodę, ale z inną kolejnością operacji ponowne rozwiązanie zagadnienia przy nieznacznej zmianie danych wejściowych Met.Numer. wykład 1 64 3
Zadania i algorytmy numeryczne Zadanie numeryczne wymaga jasnego i niedwuznacznego opisu powiązania funkcjonalnego między danymi wejściowymi czyli zmiennymi niezaleŝnymi zadania i danymi wyjściowymi, tj. szukanymi wynikami. Zadanie numeryczne jest problemem polegającym na wyznaczeniu wektora wyników w na podstawie wektora danych a zadanie dobrze odwzorowanie W postawione a r r w W (a) D w jednoznaczne przyporządkowanie Met.Numer. wykład 1 65 Zadania i algorytmy numeryczne Algorytm numeryczny jest pełnym opisem poprawnie określonych operacji przekształcających wektor dopuszczalnych danych wejściowych (zbiór DN) na wektor danych wyjściowych. Algorytm jest poprawnie sformułowany gdy liczba niezbędnych działań będzie skończona DN D a DN odwzorowanie WN w w WN( a, ε) wektor wyniku zaleŝy od dokładności obliczeniowej ε maszyny cyfrowej Met.Numer. wykład 1 66 33
Przykłady algorytmów 1.. Dana jest liczba zespolona a+iy. Obliczyć 1/a Algorytm I: t y/ a + (tangens fazy liczby a) y (kwadrat modułu liczby a) 3. 1 1 1 t 1 1 t Re Im a a 1+ t a a 1+ t Zadanie jest dobrze postawione, jeŝeli: + y 0 czyli: D R { (0,0)} Algorytm jest poprawnie sformułowany (11 niezbędnych działań) Met.Numer. wykład 1 67 Przykłady algorytmów Nie dla kaŝdej pary danych (,y) 0 moŝna znaleźć rozwiązanie zadania stosując algorytm I. 1. Wystąpi nadmiar liczb zmiennopozycyjnych (dla 0 ale takŝe z powodu zaokrąglenia do zera). Nadmiar moŝe nastąpić moŝe juŝ w pierwszym kroku gdy 10-5 i y10 5 z powodu dzielenia y/ 3. Dla 0, istniejącego dla y 0 rozwiązania nie moŝna wyznaczyć stosując ten algorytm. Wzrost dokładności obliczeń nie zmieni tego faktu. Algorytm I nie jest numerycznie stabilny Met.Numer. wykład 1 68 34
Przykłady algorytmów Dana jest liczba zespolona a+iy. Obliczyć 1/a Algorytm II: 1.. 1 r Re a y + y 1 y u Im a + y Algorytm II jest poprawnie sformułowany (9 niezbędnych działań) Algorytm II jest numerycznie stabilny co wynika z ciągłości wzorów dla + y 0 Met.Numer. wykład 1 69 Schemat Hornera Przykład wzoru rekurencyjnego Aby obliczyć wartość wielomianu: n n 1 + a1 +... + an 1 p ( ) + a w danym punkcie z, korzystamy ze schematu: p z + p + 1 a 1 zp1 a n zpn 1 ( z) p n p + a p co odpowiada obliczaniu wartości wyraŝenia: { z[ z...( z + a1 ) + a] +... + a n 1} an z + n n Met.Numer. wykład 1 70 35
Schemat Hornera Schemat Hornera umoŝliwia znaczne zmniejszenie liczby działań arytmetycznych. W schemacie Hornera wykonujemy n-1 mnoŝeń i n dodawań. Obliczając bezpośrednio: zz... z + + a1 z... z +... + an 1z a o n razy n-1 razy wykonujemy (n-1)(n+)/ mnoŝeń i n dodawań. Oszacowanie wielkości błędów zaokrągleń jest identyczne dla obu metod Met.Numer. wykład 1 71 Schemat Hornera Przykład: oblicz 0 3 p ( z) a z + a z + a z + a 1 3 w schemacie Hornera p ( z) (( a z + a 0 z + a1) z + a) 3 dla obliczeń ręcznych: a 0 a 1 b 1 a a 3 zb 0 zb 1 zb b 0 b b 3 p(z)b 3 Zadanie: Oblicz p(8) dla p() 3 ++7 0 1 7 16 16 18 19 103 1039 p(8)1039 Met.Numer. wykład 1 7 36
Schemat blokowy b:a 0 i:0 i:i+1 b:a i +zb nie in? tak wyjście Met.Numer. wykład 1 73 Uwarunkowanie zadania i stabilność algorytmów Algorytm obliczeniowy jest numerycznie stabilny, jeŝeli dla dowolnie wybranych danych a 0 D istnieje taka dokładność obliczeń ε 0, Ŝe dla ε<ε 0 mamy a 0 DN( ε ) oraz limwn ( a0, ε) W ( a0) ε 0 Algorytm obliczeniowy jest numerycznie stabilny wtedy, gdy zwiększając dokładność obliczeń moŝna wyznaczyć ( z dowolną dokładnością) dowolne istniejące rozwiązanie zadania. Met.Numer. wykład 1 74 37
Z powodu błędu zaokrągleń Uwarunkowanie zadania i stabilność algorytmów Zgodnie z lematem Wilkinsona moŝna dobrać zaburzone dane Ŝe WN( a, ε) W ( a) a + δa D WN( a, ε) W ( a + δa) Wielkość zastępczego zaburzenia -wektora danych a -liczby wykonywanych działań -dokładności obliczeń δa zaleŝy od: Met.Numer. wykład 1 75 Uwarunkowanie zadania i stabilność algorytmów Na podstawie lematu Wilkinsona: gdy ε 0 Uwarunkowaniem zadania nazywamy cechę, która mówi jak bardzo wynik dla zaburzonego wektora danych róŝni się od wyniku dla dokładnego wektora danych czyli: W(a + δa) δa 0 Met.Numer. wykład 1 76 a W(a) Wskaźnik uwarunkowania zadania B(a) jest to liczba, dla której jest spełniony warunek: δw w B(a) δa a δw WN( a, ε) W ( a) 38
Wskaźnik uwarunkowania zadania Przyjmijmy względny błąd wielkości ~ ~ Względny błąd wielkości f() f ( ) f ( ~ ) f '( ~ )( ~ ) ( ~ f ) f ( ~ ) Wskaźnik uwarunkowania: ~ f '( ~ ) f ( ~ ) Met.Numer. wykład 1 77 Wskaźnik uwarunkowania zadania Przykład f ( ) Wskaźnik uwarunkowania: ~ f '( ~ ) ( ~ f ) 1 zadanie dobrze uwarunkowane Met.Numer. wykład 1 78 39
Wskaźnik uwarunkowania zadania Przykład 10 f ( ) 1 Wskaźnik uwarunkowania: ~ f '( ~ ) f ( ~ ) 1 zadanie źle uwarunkowane w pobliŝu 1 i -1 Met.Numer. wykład 1 79 40