Pojęcia wstępne Izolda Gorgol wyciąg z prezentacji

advertisement
Pojęcia wstępne
Izolda Gorgol
wyciąg z prezentacji
O czym będziemy mówić?
Metody numeryczne to dziedzina wiedzy zajmująca się problemami obliczeniowymi i konstrukcją algorytmów
rozwiązywania zadań matematycznych. Najczęściej, zadania obliczeniowe postawione są w dziedzinie rzeczywistej
(lub zespolonej) i dlatego mówimy o zadaniach obliczeniowych matematyki ciągłej.
O czym będziemy mówić?
W zależności od tego, na jaki aspekt metod obliczeniowych jest położony największy nacisk, wyróżniamy:
— metody numeryczne — główny nacisk idzie na aspekty algorytmiczne;
— analiza numeryczna — przede wszystkim badanie właściwości algorytmów, ich optymalności oraz wpływu arytmetyki zmiennopozycyjnej na jakość uzyskanych wyników;
— matematyka obliczeniowa — głównie teoretyczna analiza możliwości taniej i dokładnej aproksymacji rozwiązań
zadań matematycznych;
— obliczenia naukowe — nacisk na praktyczne zastosowania metod numerycznych, symulacje, realizacje na komputerach o dużej mocy obliczeniowej.
Źródła błędów
1.
2.
3.
4.
5.
błędy
błędy
błędy
błędy
błędy
zagadnienia;
początkowe;
obcięcia;
dyskretyzacji;
zaokrąglenia.
Rodzaje błędów
x – liczba dokładna
x̃ – liczba przybliżona (z różnych powodów)
DEFINICJA Liczbę ∆ = x̃ − x nazywamy błędem bezwzględnym liczby x̃.
x̃ = x + ∆
DEFINICJA Liczbę δ =
x̃ = x(1 + δ)
x̃−x
x
nazywamy błędem względnym liczby x̃.
UWAGA W praktyce najczęściej posługujemy się oszacowaniami błędów, czyli liczbami ∆x̃ i δx̃ takimi, że |∆| 6 ∆x̃
i |δ| 6 δx̃ .
UWAGA Jeśli x i x̃ są wektorami lub macierzami, to przy szacowaniu błędów posługujemy się normami.
Działania arytmetyczne a błędy względne
|x||δx | + |y||δy |
;
|x + y|
|x||δx | + |y||δy |
2. |δx−y | 6
;
|x − y|
3. |δxy | 6 |δx | + |δy |;
4. |δx/y | 6 |δx | + |δy |.
1. |δx+y | 6
Uwarunkowanie zadania obliczeniowego
1
Jest miarą wpływu względnych błędów danych na błąd względny wyniku.
Niech
f – zadanie obliczeniowe
x – dane
f (x) – wynik zadania f dla danych x
x
e – zaburzone dane
f (e
x) – wynik zadania f dla zaburzonych danych x
e
DEFINICJA Najmniejszy mnożnik cond(f, x) spełniający nierówność
||x − x
e||
||f (x) − f (e
x)||
6 cond(f, x) ·
||f (x)||
||x||
nazywamy współczynnikiem uwarunkowania (względnego) zadania obliczeniowego f dla danych x.
Uwarunkowanie zadania obliczeniowego
DEFINICJA Powiemy, że zadanie f (x) jest
— dobrze uwarunkowane w punkcie x, gdy cond(f, x) ≈ 1,
— źle uwarunkowane w punkcie x, gdy cond(f, x) 1,
— źle postawione w punkcie x, gdy cond(f, x) = +∞.
Analogicznie rozważa się uwarunkowanie bezwzględne.
UWAGA Uwarunkowanie zadania dotyczy samego zadania, a nie metody jego rozwiązania.
PRZYKŁAD Zadanie odejmowania liczb o jednakowych znakach i zbliżonych wartościach bezwzględnych jest
zadaniem źle uwarunkowanym.
Reprezentacja stałoprzecinkowa
Dowolną liczbę całkowitą x 6= 0 można jednoznacznie przedstawić w postaci
n
X
ei β i ,
x = s
i=0
gdzie s ∈ {−1, 1} jest znakiem, liczby ei są cyframi liczby x.
Wszystkie liczby całkowite z określonego zakresu są w pamięci komputera reprezentowane dokładnie, jak również
działania wykonywane na takich reprezentacjach są dokładne (o ile wynik mieści się w określonym zakresie).
Reprezentacja zmiennoprzecinkowa
Dowolną liczbę rzeczywistą x 6= 0 można jednoznacznie przedstawić w postaci
x = s · β c · m,
1
gdzie s ∈ {−1, 1} jest znakiem, liczba całkowita c cechą, a liczba rzeczywista m ∈ [1, β) (lub m ∈ [ , 1)) mantysą
β
liczby x.
My posługujemy się β = 10. W pamięci komputera najczęściej β = 2 (ale również 8 lub 16).
Mantysa ma w ogólności nieskończenie wiele cyfr binarnych fj w swoim rozwinięciu dwójkowym,
∞
X
m=1+f ≡1+
fj 2−j = (1.f1 f2 f3 . . .)2 ,
j=1
gdzie fj ∈ {0, 1}.
Liczby maszynowe
W pamięci komputera jest przeznaczona określona liczba bitów na reprezentację liczby rzeczywistej.
Zakładamy, że jeden spośród nich jest przeznaczony na znak liczby, p jest przeznaczonych na cechę i t na mantysę.
DEFINICJA Liczbą maszynową nazywamy każdą liczbę rzeczywistą, która jest reprezentowana w pamięci komputera w sposób dokładny.
Reprezentacja zmiennoprzecinkowa w pamięci komputera
2
Niech β = 2.
DEFINICJA Reprezentacją zmiennoprzecinkową niezerowej liczby x nazywamy liczbę rdν (x) taką, że rdν (x) =
(−1)s · (1 + f ) · 2c , gdzie f jest liczbą dwójkową postaci (0.f1 . . . ft )2 , natomiast c jest liczbą naturalną postaci
(c1 . . . cp )2 .
Wartości c i f dobiera się tak, żeby rdν (x) była tak bliska x jak to możliwe (zaokrąglenie lub obcięcie).
x̃ = x(1 + δ)
reprezentacji:
Błąd względny
rdν (x) − x 6 1 .
2t+1
x
1
Liczbę ν = t+1 nazywamy precyzją arytmetyki. (również oznaczana przez lub eps)
2
Precyzja arytmetyki zależy wyłącznie od liczby bitów przeznaczonych na reprezentację mantysy.
Równoważnie:
rdν (x) = x(1 + ),
gdzie || 6 ν.
Nadmiar i niedomiar
Liczby maszynowe mają ograniczony zakres dopuszczalnych cech – c ∈ [cm , cM ].
1
Ponatdo m ∈ [ , 1).
β
Liczby reprezentowalne spełniają zależność:
MIN = β1 β cm 6 |x| 6 (1 − β −t )β cM = MAX.
Liczby maszynowe nie są "równomiernie" rozmieszczone na "osi liczbowej".
Nadmiar pojawia się przy próbie reprezentowania liczby rzeczywistej x takiej, że |x| > MAX. Jest on zazwyczaj
sygnalizowany użytkownikowi i może zakończyć się awaryjnym przerwaniem obliczeń.
Niedomiar pojawia się przy próbie reprezentowania liczby rzeczywistej x takiej, że |x| < MIN. Nie jest on zazwyczaj
sygnalizowany użytkownikowi. Wówczas rd(x) = 0, a błąd względny tej reprezentacji jest równy 1.
Słowa specjalne
W zależności od przyjętego standardu pewne układy bitów są zarezerwowane dla sytuacji specjalnych:
- +0 – liczba 0;
- −0 – zero powstałe w wyniku niedomiaru;
- +∞ (+Inf) – pojawia się przy próbie reprezentacji liczby większej od największej, która może być reprezentowana
w danej arytmetyce;
- −∞ (-Inf) – pojawia się przy próbie reprezentacji liczby mniejszej od najmniejszej, która może być reprezentowana w danej arytmetyce;
- NaN - układ pojawiający się w przypadku próby wykonania operacji niedozwolonych (np. dzielenie przez 0,
pierwiastkowanie liczb ujemnych itp.); najczęściej skutkuje awaryjnym przerwaniem obliczeń;
Typ IEEE 754
Nazwa typu
Liczba bitów cechy
Liczba bitów mantysy
Orientacyjny zakres
Orientacyjna precyzja
Standard IEEE 754
Pojedynczej precyzji
single
8
23
10−38 . . . 10+38
6 · 10−8
Podwójnej precyzji
double
11
52
10−308 . . . 10+308
10−16
Działania w arytmetyce zmiennoprzecinkowej
Niech oznacza dowolne działanie arytmetyczne, zaś f lν (xy) wynik tego działania w arytmetyce zmiennoprzecinkowej o precyzji ν.
DEFINICJA (działań arytmetycznych wg standardu IEEE)
f lν (x y) = rdν ( rdν (x) rdν (y) ). (Do wykonania działania używa się rejestru o podwójnej liczbie bitów przeznaczonych na mantysę)
Ogólnie dobrze określone działania w arytmetyce zmiennoprzecinkowej powinny zapewniać, że dla liczb maszynowych
f lν (x y) = (x y)(1 + δ), gdzie |δ| < ν.
UWAGA Tak określone działania mogą nie być łączne.
3
Wpływ błędu zaokrągleń na wyniki obliczeń
Gdy x i y nie są liczbami maszynowymi:
f lν (rdν (x) rdν (y)) = (x(1 + δ1 ) y(1 + δ2 )) (1 + δ3 ), gdzie |δi | < ν
PRZYKŁAD Iloczyn
Dla działania dokładnego mieliśmy przeniesienie błędu względnego danych na wynik zgodnie z zależnością:
|δxy | 6 |δ1 | + |δ2 | 6 2ν
Zatem
|δf l(xy) | 6 (|δ1 | + |δ2 |)(1 + δ3 ) ≈ (|δ1 | + |δ2 |) 6 2ν
Przy dużej precyzji arytmetyki, wykonywanie mnożenia wielu liczb, jest obarczone stosunkowo małym błędem
względnym.
Utrata cyfr znaczących
|x||δx | + |y||δy |
|x − y|
Zadanie odejmowania dwóch liczb tego samego znaku jest źle uwarunkowane.
W szczególności, gdy liczby mają zbliżoną wartość bezwzględną, może to doprowadzić do zjawiska zwanego utratą
cyfr znaczących oraz dużego wzrostu względnego błędu wyniku (już nie na poziomie reprezentacji). W skrajnym
przypadku otrzymujemy niedomiar.
Podobnie może się zdarzyć, że f l(x + y) = x, gdy x y > 0. (Przy dodawaniu należy "wyrównać" cechy
składników)
|δx−y | 6
Numeryczna poprawność algorytmu
DEFINICJA Mówimy,że algorytm A jest w klasie zadań {ϕ : D}, gdzie D ⊂ D0 , jeśli A oznacza algorytm obliczania
(dokładnego) wyniku ϕ(d) = w dla dowolnych danych d ∈ D. Algorytm A rozwiązywania zadania nazywamy
numerycznie poprawnym w klasie zadań {ϕ : D}, D ⊂ D0 , wtedy i tylko wtedy, gdy istnieją stałe Kd , Kw (wskaźniki
e ∈ D0 takie, że
kumulacji) takie, że dla każdego d ∈ D i dostatecznie silnej arytmetyki (tzn. małego ν) istnieje d
e
kd − dk 6 Kd cd ν kdk
e k 6 Kw cw ν kϕ(d)k,
e
kf l(A(d)) − ϕ(d)
przy założeniu, że dane i wyniki są reprezentowane z dokładnością kd − rd(d)k 6 cd νkdk oraz kw − rd(w)k 6
cw νkwk.
Jest to najbardziej pożądana własność algorytmu.
Numeryczna stabilność algorytmu
DEFINICJA Algorytm A rozwiązywania zadania nazywamy numerycznie stabilnym w klasie zadań {ϕ : D}, D ⊂ D0 ,
wtedy i tylko wtedy,
gdy
istnieje stała K taka, że dla każdego d ∈ D i dostatecznie silnej arytmetyki zachodzi:
e k 6 K · P (d, ϕ),
kf l(A(d)) − ϕ(d)
gdzie P (d, ϕ) = cw νkwk +
max
d0 :kd−d0 k6cd νkdk
kϕ(d) − ϕ(d0 )k.
Jest to minimalna własność, ktorej powinniśmy żądać od algorytmu.
Można oszacować, że błąd względny rozwiązania uzyskanego algorytmem stabilnym wynosi:
e )k
kf l(A(d))−(ϕ(d)
6 Kν(cd cond(ϕ, d) + cw )
e )k
k(ϕ(d)
Zatem rozwiązywanie zadania źle uwarunkowanego przy pomocy algorytmu stabilnego może prowadzić do błędnych
wyników.
Numeryczna złożoność algorytmu
- algorytmy skończone – liczba operacji arytmetycznych (logicznych, porównań) potrzebnych do uzyskania wyniku
- algorytmy iteracyjne – liczba iteracji potrzebnych do uzyskania wyniku z żądaną dokładnością oraz liczba operacji
arytmetycznych (logicznych, porównań) wykonywanych w jednym kroku; rząd zbieżności algorytmu
4
Download