Metody Obliczeniowe w Nauce i Technice

Podobne dokumenty
EMN. dr Wojtek Palubicki

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Liczby zmiennoprzecinkowe i błędy

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Podstawy Informatyki

Wprowadzenie do metod numerycznych. Krzysztof Patan

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Metody Obliczeniowe w Nauce i Technice

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Technologie Informacyjne Wykład 4

Arytmetyka stało i zmiennoprzecinkowa

Technologie Informacyjne

Obliczenia naukowe Wykład nr 2

Teoretyczne Podstawy Informatyki

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

METODY NUMERYCZNE. Wykład 2. Analiza błędów w metodach numerycznych. Met.Numer. wykład 2 1

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

BŁĘDY PRZETWARZANIA NUMERYCZNEGO

Wprowadzenie do informatyki - ć wiczenia

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Zapis zmiennopozycyjny, arytmetyka, błędy numeryczne

Arytmetyka binarna - wykład 6

Metody Obliczeniowe w Nauce i Technice

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Dokładność obliczeń numerycznych

Systemy zapisu liczb.

Naturalny kod binarny (NKB)

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Bardzo łatwa lista powtórkowa

LICZBY ZMIENNOPRZECINKOWE

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Architektura komputerów

Metoda znak-moduł (ZM)

Zaawansowane metody numeryczne

Metody numeryczne II. Reprezentacja liczb

Metody Obliczeniowe w Nauce i Technice

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Algorytmy i struktury danych. Wykład 4

Luty 2001 Algorytmy (7) 2000/2001

Metody numeryczne. Postać zmiennoprzecinkowa liczby. dr Artur Woike. Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania.

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Metody Obliczeniowe w Nauce i Technice

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

Kodowanie informacji. Kody liczbowe

Egzamin z Metod Numerycznych ZSI, Grupa: A

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Elementy metod numerycznych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Metody numeryczne I Równania nieliniowe

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Wstęp do informatyki- wykład 1 Systemy liczbowe

Stan wysoki (H) i stan niski (L)

Aproksymacja. j<k. L 2 p[a, b] l 2 p,n X = Lemat 1. Wielomiany ortogonalne P 0,P 1,...,P n tworza przestrzeni liniowej Π n. Dowód.

Iteracyjne rozwiązywanie równań

Metody Numeryczne w Budowie Samolotów/Śmigłowców Wykład I

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Podstawy Informatyki

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

METODY NUMERYCZNE. Wykład 1. Wprowadzenie do metod numerycznych

Metody Obliczeniowe w Nauce i Technice

Wstęp do informatyki- wykład 1 Systemy liczbowe

Pierścień wielomianów jednej zmiennej

Kodowanie liczb całkowitych w systemach komputerowych

Pracownia Komputerowa wykład VI

Zagadnienia - równania nieliniowe

Metody rozwiązywania równań nieliniowych

Architektura systemów komputerowych

LICZBY ZMIENNOPRZECINKOWE

Języki Modelowania i Symulacji 2018 Arytmetyka zmiennoprzecinkowa w standardzie IEEE Wykład 3

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Wprowadzenie do metod numerycznych Wykład 1 Przybliżenia

Wprowadzenie do informatyki - ć wiczenia

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Transkrypt:

2. Arytmetyka komputerowa Marian Bubak Department of Computer Science AGH University of Science and Technology Krakow, Poland bubak@agh.edu.pl dice.cyfronet.pl Contributors Maciej Trzebiński Mikołaj Biel Rafał Stachura

Outline 1 Numeryczna reprezentacja liczb całkowitych 2 Numeryczna reprezentacja liczb rzeczywistych 3 Operacje zmiennopozycyjne 4 Zadanie, algorytm 5 Uwarunkowanie zadania (condition of a problem) 6 O uwarunkowaniu zadania - inaczej 7 Uwarunkowanie zadania - przykład 8 Algorytmy numerycznie poprawne 9 Stabilność numeryczna 10 Złożoność obliczeniowa computational complexity 11 Zadania

Numeryczna reprezentacja liczb całkowitych Reprezentacja stałopozycyjna (integer) Informacje ogólne: np. kod U2: na d+1 bitach reprezentowane dokładnie liczby L [ 2 d, 2 d 1] gdy argumenty i wynik reprezentowane stałopozycyjnie, to działania na nich: +,,, /(div), /(mod) są wykonywane dokładnie kompromis pomiędzy zakresem, a precyzją

Numeryczna reprezentacja liczb całkowitych Zastosowania: sprawy walutowe, operacje monetarne procesory graficzne np. Sony Nintendo rozmiary czcionek w calach np. w TeX libfixmath - implementacja biblioteki stałoprzecinkowej w C Zalety i wady: (+) szybkość i prostota (-) mała skalowalność

Numeryczna reprezentacja liczb rzeczywistych Reprezentacja zmiennoprzecinkowa (float) Należy pamiętać o ułomności reprezentacji zbioru liczb rzeczywistych R w rzeczywistym świecie skończonych komputerów. F - zbiór liczb zmiennoprzecinkowych (floating-point): β - podstawa, t - dokładność, L, U - zakres wykładnika x F ma wartość: d i - liczby całkowite, 0 d i β 1, i = 1,..., t L e U cecha ( d1 x = ± β + d 2 β 2 +... + d ) {}}{ t β }{{ t β e = ± } mantysa System F jest unormowany, gdy x 0 d i 0. t i=1 d i β i β e

Numeryczna reprezentacja liczb rzeczywistych Reprezentacja zmiennoprzecinkowa (float) W komputerze jest przechowywana liczba całkowita ±β t m (zgodnie z wybranym systemem kodowania). β 1 t - oszacowanie względnej dokładności arytmetyki Komputer β t L U β 1 t CDC CYBER 72 2 48-975 1070 7.11 10 15 Cray-1 2 48-16384 8191 7.11 10 15 IBM 360, 370 16 6-64 63 9.54 10 7 IBM 360, 370 (DP) 16 14-64 63 2.22 10 16 IBM PC XT / AT Delta (VAX)

Numeryczna reprezentacja liczb rzeczywistych Reprezentacja zmiennoprzecinkowa (float) Ważne F nie jest kontinuum - więcej - jest skończony o liczbie elementów wyrażonych wzorem: 2 (β 1) β t 1 (U L + 1) + 1 Wyjaśnienie: 2 znak liczby ± (β 1) podstawa, na pierwszym bicie nie ma zera β t 1 pozostałe t-1 bitów z przedziału 0,..., β 1 (U L + 1) zakres wykładnika 1 zero

Numeryczna reprezentacja liczb rzeczywistych Reprezentacja zmiennoprzecinkowa (float) Elementy F nie są równomiernie rozłożone na osi: β = 2, t = 3, L = 1, U = 2 (33 elementy): Każdy element F reprezentuje cały przedział liczb R x - l. rzeczywista zakresu F, fl(x) - reprezentacja zmiennoprzecinkowa liczby x fl(x) x x 1 2 β1 t Zadanie: sprawdzić

Numeryczna reprezentacja liczb rzeczywistych Reprezentacja zmiennoprzecinkowa (float) Uwaga 0.1 - często krok w algorytmach Czy 10 kroków o długości 0.1 to to samo co 1 krok = 1.0? W systemie o podstawie β = 2 - nie! 0.1 10 = 0.0(0011) 2 = 0.0(12) 4 = 0.0(6314) 8 = 0.199999... 16 Reprezentacja 0.1 urywa się po t cyfrach. Dodanie 10 tak uzyskanych liczb nie da dokładnie 1.0. Porównania w arytmetyce float Zamiast przyrównywać wartości należy sprawdzać, czy otrzymany błąd pomiędzy wartością obliczoną, a oczekiwaną jest mniejszy od zadanego ɛ.

Numeryczna reprezentacja liczb rzeczywistych Dokładność reprezentacji zmiennoprzecinkowej Reprezentacja zmiennoprzecinkowa (float) Reprezentacja mantysy x = s 2 c m s sign, c cecha, m mantysa m t = m = e i 2 i i=1 e i = t e i 2 i { 0 1 i=1 }{{} t-bitowa mantysa + e t+1 2 t }{{} zaokrąglenie

Numeryczna reprezentacja liczb rzeczywistych Dokładność reprezentacji zmiennoprzecinkowej Reprezentacja zmiennoprzecinkowa (float) a)błąd reprezentacji zmiennoprzecinkowej - zaokrąglenie w dół m = t fl(x) d i = ± β i=1 i β e t t+1 t+2... 0 1... 1 t e i 2 i + 0 2 (t+1) + i=1 } {{ } m t m m t = 2 (t+1) 1 2 i i=t+2 }{{} 1 2t+1 =2 (t+1)

Numeryczna reprezentacja liczb rzeczywistych Dokładność reprezentacji zmiennoprzecinkowej Reprezentacja zmiennoprzecinkowa (float) b)błąd reprezentacji zmiennoprzecinkowej - zaokrąglenie w górę fl(x) + = ± t i=1 d i β i β e ± d t+1 β t+1 t t+1 t+2... 1 0... 0 m = t e i 2 i + 2 (t+1) i=1 m t = m t m = 2 (t+1) t e i 2 i + 2 t i=1 m m t m 2 (t+1) 1/2 = 2 t

Numeryczna reprezentacja liczb rzeczywistych Dokładność reprezentacji zmiennoprzecinkowej Standaryzacja: Reprezentacja zmiennoprzecinkowa została ustandaryzowana w celu ujednolicenia obliczeń IEEE754-1985; IEEE754-2008 treść standardu IEEE754-2008: www.dsc.ufcg.edu.br/ cnum/modulos/modulo2/ IEEE754_2008.pdf wywiad z jednym z twórców standardu IEEE754-1985 (William Kahan): www.goo.gl/aenlrd Istotne pojęcia: ukryta jedynka, normalizacja mantysy, liczby zdenormalizowane

Operacje zmiennopozycyjne Operacje zmiennopozycyjne x, y F x + y? F System z powyższego rysunku: 5 4 + 3 8 gęstość elementów F. / F - ze względu na

Operacje zmiennopozycyjne Operacje zmiennopozycyjne 7 2 + 7 2 / F - overflow W większości komputerów: x y = fl(x + y) dla x + y z zakresu F - dodawanie zmiennopozycyjne, fl(x) - reprezentacja zmiennoprzecinkowa a + b = 2 ca ( m a + m b 2 (ca c b) ) { b 1/2 2 t a fl(a + b) = a

Operacje zmiennopozycyjne Operacje zmiennopozycyjne x y rzadko F, bo: x y ma 2 t lub 2 t 1 cyfr znaczących, overflow - bardziej prawdopodobny underflow - bardziej prawdopodobny, są przemienne nie są łączne, rozdzielne

Operacje zmiennopozycyjne Operacje zmiennopozycyjne Ogólnie: fl(a b) = rd(a b) = (a b) (1 + ε) ε = ε(a, b, ), ε β 1 t Definicja = +,,, / Maszynowe ε - najmniejsza liczba zmiennoprzecinkowa, dla której jeszcze: 1 ε > 1 Wartość maszynowego ɛ określa precyzję obliczeń numerycznych wykonywanych na liczbach zmiennoprzecinkowych. Zwykle wystarcza znajomość ε = 2 k ε, k 1, 2, 3,... fragment progr. ε

Zadanie, algorytm Zadanie, algorytm Definicja Zadanie: dla danych znaleźć wynik d = (d 1, d 2,..., d n ) R d w = (w 1, w 2,..., w m ) R w w = ϕ( d) R d, R w - skończenie wymiarowe, unormowane przestrzenie kartezjańskie ϕ : D 0 R d R w - odwzorowanie ciagłe Definicja Algorytm A w klasie zadań {ϕ, D} jest to sposób wyznaczenia wyniku w = ϕ( d) dla d D D 0, z dokładną realizacją działań, tj. w zwykłej arytmetyce

Zadanie, algorytm Realizacja algorytmu w arytmetyce float - fl(a( d)) Zastąpienie: d, x,.. arytmetyki Przez: rd(d), rd(x),.. arytmetykę float

Zadanie, algorytm Założenia o reprezentacji danych i wyników Założenia d rd( d) ϱ d d w rd( w) ϱ w w ϱ d, ϱ w = }{{} k β 1 t małe, 10 W realizacji w arytmetyce float oczekujemy, że d oraz w będą reprezentowane z małymi błędami.

Uwarunkowanie zadania (condition of a problem) Uwarunkowanie zadania Przyczyna: zamiast d i rd(d i ) = d i (1 + ε), ε β 1 t Definicja Uwarunkowanie zadania - czułość na zaburzenie danych, Wskaźniki uwarunkowania zadania - wielkości charakteryzujące wpływ zaburzeń danych zadania na zaburzenie jego rozwiązania. Definicja Zadanie nazywamy źle uwarunkowanym, jeżeli niewielkie względne zmiany danych zadania powodują duże względne zmiany jego rozwiązania.

Uwarunkowanie zadania (condition of a problem) Uwarunkowanie zadania Przykład x y = n i=1 x i y i 0 x i x i (1 + α i ) y i y i (1 + β i ) ni=1 x i (1 + α i ) y i (1 + β i ) n i=1 x i y i ni=1 x i y i }{{} błąd względny ni=1 x i y i (α i + β i ) ni=1 x i y i ni=1 max α i + β i x i y i n i=1 x i y i }{{} cond( x y) gdzie cond( x y) oznacza wskaźnik uwarunkowania, gdy wszystkie x i, y i tego samego znaku cond( x y) = 1

Uwarunkowanie zadania (condition of a problem) Uwarunkowanie zadania Poprawa: silniejsza arytmetyka, użycie zadania równoważnego

O uwarunkowaniu zadania - inaczej Jakościowo Układ dwóch równań graficznie: niezależnie od jakości ołówka (algorytm) - lewa strona - dokładniej. well conditioned ill conditioned

O uwarunkowaniu zadania - inaczej Ilościowo Zadanie: wyznaczenie f (x), przy założeniu: x - blisko x Współczynnik uwarunkowania: ogólnie: K(x) = lim x x f (x) f (x ) f (x) x x x 1 x 2 x f (x) = x: K(x) = x = 1 2 1 f (x) = 1 1 x : K(x) = x (1 x) 2 1 1 x = x f (x) f (x) = x 1 x x = (1 + 10 6 ) K 10 6 (!)

Uwarunkowanie zadania - przykład Uwarunkowanie zadania - przykład Przykład 1 (x 2) 2 = 10 6 x 1, 2 = 2 10 3 ALE: zmiana stałej o 10 6 zmiana x 1, 2 o 10 3!

Uwarunkowanie zadania - przykład Uwarunkowanie zadania - przykład Przykład 2 - Wilkinson (1963) p(x) = (x 1)(x 2)... (x 19)(x 20) = x 20 210x 19 +... założenia: 210 210 + 2 23 (tylko!) ( 1.19 10 7 ) realizacja: szukanie zer z β = 2, t = 90 : p(x) + 2 23 x 19 = 0 10 10.095... 0.643...i wynik:... 10 pierw. zespolonych! 19 19.502... 1.940. powód: czułość zadania na zaburzenia danych! p(x, α) = x 20 α x 19 +... = 0 x miara czułości x=xi =i α p(x,α) x x α + p(x,α) α = 0

Uwarunkowanie zadania - przykład Uwarunkowanie zadania - przykład Przykład 2 - Wilkinson (1963) p x α = α = p x x α = x=1 20 i=1 x 19 20 j=1,j i (x j) i 19 20, i = 1, 2,..., 20 j=1,j i i x α i 1 8.2 10 18 2 8.2 10 11 5 6.1 10 1 6 5.8 10 1 8 6.0 10 4 10 7.6 10 6 15 2.1 10 9 19 3.1 10 8 20 4.3 10 7

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne Ograniczenia: dane - zaburzone wyniki - zaburzone stąd: błędy reprezentacji

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne Definicja Algorytmy numerycznie poprawne - takie, które dają rozwiązania będące nieco zaburzonym dokładnym rozwiązaniem zadania o nieco zaburzonych danych. Są to algorytmy najwyższej jakości. Dane nieco zaburzone - zaburzone na poziomie reprezentacji.

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne - definicje Definicja Algorytm A jest numerycznie poprawny w klasie zadań {ϕ, D}, jeżeli istnieją stałe K d, K w takie, że: d D, dla każdej dostatecznie silnej arytmetyki ( β 1 t) d D 0 taki, że: d d ϱ d K d d ϕ( d) fl(a( d)) ϱ w K w ϕ( d) ϕ( d) - dokładne rozwiązanie zadania o zaburzonych danych d K w, K d - wskaźniki kumulacji algorytmu A w klasie zadań {ϕ, D} K w, K d : dla dowolnych danych klasy {ϕ, D}, minimalne jakość A.

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne - definicje Definicja Użyteczne algorytmy - gdy wskaźniki kumulacji rzędu liczby działań

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne - przykład Przykład 1 - Iloczyn skalarny Numeryczna poprawność algorytmu a b = n i=1 a i b i 1 A( a, b) : s := 0 ; 3 f o r i :=1 to n do s := s + a 1 b i ;

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne - przykład Przykład 1 - Iloczyn skalarny Realizacja algorytmu: fl(a( a, b)): 1 dane - reprezentacje a i â i = rd(a i ) = a i (1 + α i ) b i ˆb i = rd(b i ) = b i (1 + β i ) 2 działania - przybliżone, fl np. i = 1, 2, 3 : fl(a( a, b)) = {[â 1 ˆb 1 (1 + ε 1 ) + â 2 ˆb 2 (1 + ε 2 )] (1 + δ 2 ) + â 3 ˆb 3 (1 + ε 3 )} (1 + δ 3 ); δ 1 = 0 i ogólnie: fl(a( a, b)) = n i=1 a i (1+α i ) b i (1+β i ) (1+ε i ) n j=i (1+δ j )

Algorytmy numerycznie poprawne Algorytmy numerycznie poprawne - przykład Analiza poprawności numerycznej: Przykład 1 Interpretacja (dowolność) dokładny wynik: K w = 0 dla zaburzonych danych: a ã β 1 t a (K d1 = 1) b b (n + 1) β 1 t b (K d2 = n + 1) Uwaga: pominięcie błędów reprezentacji danych zmniejszenie K d o 1.

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 1 e x = 1+x+ x 2 2! + x 3 3! +... β = 10, t = 5, x = 5.5 e x = n=0 x n n! e 5.5 = 1.0 5.5 +15.125 27.730 +38.129 41.942 +38.446 30.208 +20.768 12.692 +6.9803 3.4902 +1.5997... 0.0026363 ALE e 5.5 = 0.00408677! 25 składników i brak zmian w sumie

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 1 Przyczyna: np. 38.129 błąd reprezentacji wynik! (catastrophic cancellation) Sposób obliczeń wzmacniający błędy reprezentacji! A co dla e 200? Po zmianie algorytmu: (β, t - j.w.) e 5.5 = 1 e 5.5 = 1 1 + 5.5 + 15.125 +... = 0.0040865 }{{} 0.007%! e x oblicza się: x = m + f, m - całkowite, 0 f < 1 e x = e m+f = e m e f [ lub e x = e (1+ f m ) m = e 1+ f m ] m

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 2 E n = 1 0 x n e x 1 dx, n = 1, 2,... całkowanie przez części: 1 x n e x 1 dx = x n e x 1 1 1 n x n 1 e x 1 dx 0 0 0 { En = 1 n E n 1, n = 2, 3,... E 1 = 1 e β = 10, t = 6 E 1 0.367879, ε 4.412 10 7 E 2 0.264242... E 8 0.118720 E 9 0.0684800!! Bo: x 9 e x 1 0, x [0, 1]

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 2 Powód ε(e 1 ) : w E 2 ε 2 w E 3 ε 2 3... w E 9 ε 2 3 4... 9 = ε 9! = ε 362880 0.1601 i nawet: 0.06848 + 0.1601 = 0.0916 - poprawny!

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 2 Jak wybrać dobry (stabilny) algorytm? E n 1 = 1 E n, n =..., 3, 2. n Na każdym etapie zmniejszamy błąd n razy - algorytm stabilny. 1 1 E n = x n e x 1 dx x n dx = x n+1 1 = 1 n + 1 n + 1 0 0 0 lim E n = 0 n E 20 0.0 - błąd 1 20 E 19 1 20 1 21 0.0024... E 15 0.0590176 wartość dokładna na 6 miejscach znaczących.

Stabilność numeryczna Przykłady Stabilność numeryczna - przykłady Przykład 2 - definicja Metoda numerycznie jest stabilna, jeżeli mały błąd na dowolnym etapie przenosi się dalej z malejącą amplitudą. ε n+1 = g ε n stabilna: ε n+1 ε n, g - wsp. wzmocnienia Uwaga: Jakość wyniku poprawia się wraz z każdym kolejnym etapem obliczeń.

Stabilność numeryczna Definicja Stabilność numeryczna - definicja Definicja Algorytm najwyższej jakości - algorytm numerycznie poprawny. w = ϕ( d) ˆd : d ˆd ϱ d d, ˆd dane zaburzone na poz. repr. ŵ = ϕ( ˆd), w : ŵ w ϱ w w, w w w ŵ + ŵ w ŵ dokł. rozw. dla danych zab. w wynik dla ˆd, zab. na poz. reprezentacji (1 + ϱ w ) max ϕ( d) ϕ( ˆd) + ˆd + ϱ w w P( d, ϕ) = ϱ w w + max ϕ(d) ϕ( ˆd) ˆd

Stabilność numeryczna Definicja Optymalny poziom błędu rozwiązania ϕ( d) w arytmetyce fl Definicja Algorytm A nazywamy numerycznie stabilnym w klasie {ϕ, D}, jeżeli istnieje stała K taka, że d D, zachodzi: dla każdej dostatecznie silnej arytmetyki ϕ( d) fl(a( d)) K }{{} małe P( d, ϕ) numerycznie poprawny - stabilny (minimalny wymóg)

Złożoność obliczeniowa computational complexity Złożoność obliczeniowa Oprócz jakości algorytmu - ważny jego koszt - liczba działań arytmetycznych (logicznych) potrzebnych do rozwiązania zadania - algorytmy minimalizujące liczbę działań.

Złożoność obliczeniowa computational complexity Rezultaty 1 Oszacowanie złożoności obliczeniowej z dołu : jeżeli zadanie ma n danych istotnych, to minimalna liczba działań arytmetycznych potrzebnych do obliczenia wyniku: z(ϕ, D) n 2 2 Dla wielu zadań można udowodnić, że minimalna liczba działań w algorytmie numerycznie poprawnym musi być istotnie większa od liczby danych. 3 Metody optymalne co do z(ϕ, D) znane są dla niewielu, prostych zadań.

Złożoność obliczeniowa computational complexity Złożoność obliczeniowa - przykład Przykład prosty ilustruje konieczność myślenia do końca przy wyborze algorytmu Zadanie: S = n ( 1) i i; i=1

Złożoność obliczeniowa computational complexity Złożoność obliczeniowa - przykład Przykład A1: 1 s = 0 do 1 i =1, n 3 s = s +( 1) i i c o n t i n u e A2: 1 s = 0 do 1 i =1,n, 2 3 s = s 1 c o n t i n u e 5 do 1 i =1,n, 2 s = s+1 7 c o n t i n u e

Złożoność obliczeniowa computational complexity Złożoność obliczeniowa - przykład Przykład A3: s = n/2 2 i f (mod( n, 2 ). eq. 1 ) s= s ilość operacji nie zależy od n nie ma akumulacji błędów nie grozi overflow

Zadania Zadania Elementy analizy: Tw. Rolle a Tw. o wartości średniej Tw. o wartości średniej dla całek Tw. Taylor a

Zadania Zadania Zbadać uwarunkowanie zadania (wskaźniki uwarunkowania): 1 wyznaczania zer wielomianu: P(x) = 20 a i x i = 20 i=0 i=0 (x i) 2 wyznaczenia zer rzeczywistych: x 2 2px+q = 0, p, q D = {(p, q) : p 0, q 0, p 2 q > 0}

Zadania Zadania Sprawdzić poprawność numeryczną: 1 algorytmu Herona x = a x 1 = { a, a 1 1, a < 1 x i+1 = 1 2 (x i + a x i ), i = 1, 2,... 2 algorytmu Hornera P(x) = (...(a n x + a n 1 x)x +... + a 1 )x + a 0

Zadania Warto przeczytać Czy Java nadaje się do obliczeń numerycznych? http://www.mathe.tu-freiberg.de/ ernst/lehre/ Grundkurs/Literatur/JAVAhurt.pdf Rozwój i benchmarki dla Java: JavaNumerics garść informacji (https://math.nist.gov/javanumerics/) https://math.nist.gov/scimark2/index.html http://www.javagrande.org/