Zaawansowane metody numeryczne Metoda numeryczna

advertisement
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
dr Artur Woike
Wykład 2
Metody numeryczne i ich własności. Systemy liczbowe
i działania zmiennopozycyjne.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Metoda numeryczna
Od tej pory będziemy zakładać, że zadanie F (x, d) = 0 jest dobrze
postawione.
Definicja 2.1. (metoda numeryczna)
Metodą numeryczną przybliżonego rozwiązywania
F (x, d) = 0 nazywamy na ogół ciąg zadań przybliżonych
zadania
Fn (xn , dn ) = 0, n ­ 1,
zależny od pewnego parametru n (definiowanego oddzielnie dla każdej metody).
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Zgodność metody numerycznej
Definicja 2.2. (zgodność/silna zgodność metody numerycznej)
Jeżeli dane d z zadania F (x, d) = 0 są dopuszczalne dla zadań
przybliżonych Fn , to mówimy, że metoda numeryczna Fn (xn , dn ) = 0
jest zgodna jeżeli
Fn (x, d) = Fn (x, d) − F (x, d) → 0 gdy n → ∞,
gdzie x jest rozwiązaniem zadania odpowiadającym danym d. Metoda numeryczna jest nazywana silnie zgodną jeżeli Fn (x, d) = 0 dla
dowolnej wartości parametru n.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Alternatywna postać metody numerycznej
Uwaga.
Czasami metoda numeryczna może przybrać postać
Fn (xn , xn−1 , . . . , xn−q , dn ) = 0, n ­ q,
gdzie x0 , x1 , . . . , xq−1 są dane. Wtedy własność silnej zgodności jest
definiowana jako Fn (x, x, . . . , x, d) = 0 dla wszystkich n ­ q.
Przykład 2.1. (metoda Newton’a)
Metoda Newton’a przybliżonego wyznaczania pierwiastka α
dla funkcji f : R → R jest silnie zgodna.
xn = xn−1 −
f (xn−1 )
, gdzie n ­ 1 i x0 jest dane.
f 0 (xn−1 )
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Stabilność metody numerycznej
Definicja 2.3. (stabilna metoda numeryczna)
Metodę numeryczną Fn (xn , dn ) = 0 nazywamy dobrze postawioną
lub stabilną jeżeli dla dowolnego ustalonego n istnieje jednoznaczne
rozwiązanie xn odpowiadające danym dn , takie że obliczenie xn jako
funkcji dn jest jednoznaczne, a ponadto xn zależy w sposób ciągły
od danych dn .
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Zbieżność metody numerycznej
Definicja 2.4. (zbieżność metody numerycznej)
Metodę numeryczną Fn (xn , dn ) = 0 nazywamy zbieżną wtedy i tylko
wtedy, gdy zachodzi warunek
∀ε>0 ∃n0 (ε) ∃δ(n0 ,ε) ∀n>n0 (ε)
kδdn k < δ(n0 , ε) ⇒ kx(d) − xn (d + δdn )k ¬ ε,
gdzie d to dopuszczalne dane dla zadania F (x, d) = 0, x(d) jest
odpowiadającym im rozwiązaniem, a xn (d + δdn ) jest rozwiązaniem
metody numerycznej dla danych d + δdn .
dr Artur Woike
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Metody numeryczne, systemy i działania zmiennopozycyjne
Błąd rozwiązania
Definicja 2.5. (błąd bezwzględny/względny/według składowych)
Miara zbieżności rozwiązania przybliżonego xn do rozwiązania dokładnego x jest dana przez błąd bezwzględny E (xn ) lub błąd względny Erel (xn ) zdefiniowany odpowiednio poprzez:
E (xn ) = kx − xn k,
Erel (xn ) =
kx − xn k
gdy x 6= 0.
kxk
Jeżeli x i xn sa wielkościami wektorowymi lub macierzowymi, to możc (x ) poprzez
na również zdefiniować błąd według składowych Erel
n
c
Erel
(xn ) = max
i,j
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
|(x − xn )ij |
.
|xij |
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Twierdzenie o równoważności
Uwaga.
1) Jeżeli zadanie jest dobrze postawione, to warunkiem koniecznym na zbieżność metody numerycznej jest jej stabilność.
2) Jedynie stabilne metody numeryczne mogą być zbieżne.
3) Jeżeli metoda numeryczna jest zgodna z zadaniem, to jej stabilność staje się warunkiem wystarczającym na zbieżność metody.
Twierdzenie 2.1. (o równoważności)
Dla zgodnej metody numerycznej stabilność jest równoważna zbieżności.
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Dokładność obliczeniowa maszyny cyfrowej
Uwaga.
Dowolna maszyna cyfrowa może zapamiętywać jedynie liczby rzeczywiste z pewnego dyskretnego ustalonego podzbioru N ⊂ R. Niech
x ∈ R będzie dowolne. Liczba x przed zapamiętaniem musi być w pewien sposób zaokrąglona do liczby x 0 ∈ N, takiej że x 0 = x(1 + ε0 ),
gdzie ε0 oznacza błąd względny reprezentacji liczby x przez liczbę x 0 .
Definicja 2.6. (parametr ε maszyny)
Stała ε maszyny jest to najmniejsza liczba nieujemna ε, taka że
1 + ε 6= 1 (im mniejsza wartość ε tym większa względna precyzja
obliczeń).
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Algorytm obliczeniowy
Definicja 2.7. (numeryczny algorytm obliczeniowy)
Niech będzie dane zadanie F (x, d) = 0 i odpowiadająca mu metoda
numeryczna Fn (xn , dn ) = 0. Numeryczny algorytm obliczeniowy dla
tej metody jest to ciąg działań, które trzeba wykonać na danych dn i
numerycznych rozwiązaniach x¯k (k < n) poprzednich zadań przybliżonych, aby uzyskać numeryczne rozwiązanie x¯n dla n-tego zadania
przybliżonego. Algorytm ten nazywamy poprawnie sformułowanym
jeżeli określona w nim liczba niezbędnych działań jest skończona.
Uwaga.
Liczba działań w algorytmie może zależeć od wektora danych dn .
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Numeryczna stabilność algorytmu obliczeniowego
Definicja 2.8. (numeryczna stabilność algorytmu)
Algorytm obliczeniowy jest numerycznie stabilny, jeżeli dla dowolnego n > 1 rozwiązanie zadania można wyznaczyć z dowolną dokładnością zwiększając odpowiednio dokładność obliczeń (czyli zmniejszając parametr ε).
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Żłożoność algorytmu
Definicja 2.9. (złożoność algorytmu, złożoność zadania)
Złożoność algorytmu jest miarą jego czasu wykonania. Ponieważ
różne algorytmy o różnych złożonościach mogą być używane do rozwiązania tego samego zadania, więc wprowadzamy pojęcie złożonośći zadania. Oznacza ono minimalną złożoność algorytmu spośród
wszystkich algorytmów dostepnych dla tego zadania. Złożoność zadania jest zazwyczaj mierzona przy pomocy parametru bezpośrednio
związanego z tym zadaniem.
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Źródła błędów
Uwaga.
Podstawowe źródła błędów w obliczeniach numerycznych:
1) Błędy wynikające z przyjętego modelu. Mogą być kontrolowane
przez właściwy wybór modelu matematycznego dla rozpatrywanego zadania.
2) Błędy w danych. Mogą być zmniejszone poprzez zwiększenie
dokładności pomiaru danych.
3) Błędy obcięć. Powstają na skutek zastępowania w metodzie numerycznej operacji granicznych operacjami złożonymi ze skończonej liczby kroków.
4) Błędy arytmetyki zmiennopozycyjnej.
5) Błędy zaokrągleń.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Systemy liczbowe
Uwaga.
Pomimo tego, że wszystkie bazy są równoważne, to w praktyce obliczeniowej używa się najczęściej następujących: baza 2 (lub inaczej
binarna), najbardziej naturalna baza 10 (lub inaczej decymalna), baza 16 (lub inaczej heksadecymalna). Prawie wszystkie współczesne
komputery używają bazy β = 2.
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Binarny system liczbowy zmiennopozycyjny
Niech będzie dana liczba x ∈ R. Mówimy, że x jest binarną liczbą
zmiennopozycyjną jeżeli
x = S · M · 2E ,
gdzie:
S ∈ {−1, 1} (znak liczby x);
M ∈ h1, 2) (znormalizowana mantysa liczby x);
E ∈ Z (wykładnik liczby x).
Przykład 2.2. (binarna liczba zmiennopozycyjna)
x = 1 · 1, 101 · 22 jest binarną liczbą zmiennopozycyjną.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Binarny system liczbowy zmiennopozycyjny
Załóżmy, że nasza reprezentacja liczb wykorzystuje m + n + 2 cyfr,
w tym:
1 cyfra na znak liczby x;
m cyfr na wartość mantysy;
1 cyfra na znak wykładnika;
n cyfr na wartość bezwzględną wykładnika.
Wtedy:
Emin = −2n + 1;
Emax = 2n − 1;
Mmin = 1;
Mmax = 2 − 2−(m−1) ;
xmin = Mmin · 2Emin ;
xmax = Mmax · 2Emax .
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Binarny system liczbowy zmiennopozycyjny
Przykład 2.3. (binarny system liczbowy zmiennopozycyjny)
Niech m = 4, n = 2. Wtedy:
Emin = −3;
Emax = 3;
Mmin = 1;
Mmax = 1, 111;
xmin = 1 · 1 · 2−3 ;
xmax = 1 · 1, 111 · 23 .
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Binarny system liczbowy zmiennopozycyjny
Zakres liczb możliwych do zapamiętania w naszym binarnym
systemie liczbowym zmiennopozycyjnym to
h−xmax , −xmin i ∪ hxmin , xmax i .
Do tego zakresu dołącza się również zbiór {−0, +0} jako wartości
specjalne niemożliwe do uzyskania bezpośrednio w naszym
systemie. Liczby x, takie że |x| < xmin , są traktowane jako tzw.
niedomiar. Z kolei liczby x, takie że |x| > xmax , są traktowane jako
tzw. nadmiar wykładniczy.
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Normalizacja mantysy
Jeśli x = S · M · 2E i M ∈
/ h1, 2), to aby zapamiętać x w naszym
systemie zmiennopozycyjnym należy znormalizować mantysę.W
tym celu należy przesunąć przecinek w M, jednocześnie
dostosowując wykładnik W , tak aby wartość liczby nie uległa
zmianie.
Uwaga.
1
Po normalizacji może wystąpić nadmiar wykładniczy.
2
Jeśli mantysa po normalizacji jest zbyt długa, to należy dostosować jej długość, np. poprzez zastosowanie operacji zaokrąglania
lub odcinania.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Arytmetyka zmiennopozycyjna
Własności arytmetyki zmiennopozycyjnej:
nie jest łączna;
nie jest rozdzielna.
Dodatkowo podczas wykonywania operacji zmiennopozycyjnych
mogą wystąpić:
zaokrąglenia lub odcięcia;
nieprawidłowe operacje;
nadmiary wykładnicze;
niedomiary.
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Arytmetyka zmiennopozycyjna
Jak dodać/odjąć zmiennopozycyjnie liczby x1 = S1 · M1 · 2E1
i x2 = S2 · M2 · 2E2 ?
Możemy założyć, że |x1 | > |x2 |.
Jeśli E1 − E2 6= 0, to należy zrównać wykładnik E1 z E2
(tzw. operacja wyrównywania wykładników). Otrzymujemy wtedy
nową postać zmiennopozycyjną liczby x1 :
x1 = S1 · M10 · 2E2 .
Uwaga.
Po zrównaniu wykładników mantysa M10 może przestać być znormalizowana.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Arytmetyka zmiennopozycyjna
Teraz przyjmujemy:
S = S1 ,
M = M1 ± M2 ,
E = E2 .
Otrzymujemy liczbę S · M · 2E .
0
Po normalizacji otrzymujemy liczbę zmiennopozycyjną S · M 0 · 2E .
Wtedy:
0
x1 ± x2 = S · M 0 · 2E .
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Arytmetyka zmiennopozycyjna
Jak pomnożyć zmiennopozycyjnie liczbę x1 = S1 · M1 · 2E1 przez
liczbę x2 = S2 · M2 · 2E2 ?
Przyjmujemy:
S = S1 · S2 ,
M = M1 · M2 ,
E = E1 + E2 .
Otrzymujemy liczbę S · M · 2E .
Po normalizacji otrzymujemy liczbę zmiennoprzecinkową
0
S · M 0 · 2E .
Wtedy:
0
x1 · x2 = S · M 0 · 2E .
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Arytmetyka zmiennopozycyjna
Jak podzielić zmiennopozycyjnie liczbę x1 = S1 · M1 · 2E1 przez
liczbę x2 = S2 · M2 · 2E2 ?
Przyjmujemy:
S1
,
S2
M1
M=
,
M2
E = E1 − E2 .
S=
Otrzymujemy liczbę S · M · 2E .
Po normalizacji otrzymujemy liczbę zmiennoprzecinkową
0
S · M 0 · 2E .
Wtedy:
0
x1 · x2 = S · M 0 · 2E .
dr Artur Woike
Zaawansowane metody numeryczne
Metody numeryczne, systemy i działania zmiennopozycyjne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Lemat Wilkinsona
Lemat 2.1. (Wilkinsona)
Błędy zaokrągleń powstające podczas wykonywania działań zmiennopozycyjnych są równoważne zastępczemu zaburzeniu liczb, na których wykonujemy działania. W przypadku pojedyńczych działań arytmetycznych otrzymujemy:
fl(x1 ± x2 ) = x1 (1 + ε1 ) ± x2 (1 + ε2 ),
fl(x1 · x2 ) = x1 (1 + ε3 ) · x2 = x1 · x2 (1 + ε3 ),
x1
x1 (1 + ε4 )
x1
fl( ) =
=
,
x2
x2
x2 (1 + ε5 )
gdzie liczby εi , i = 1, . . . , 5, są niewiększe co do modułu od parametru ε charakteryzującego dokładność maszyny.
dr Artur Woike
Metody numeryczne, systemy i działania zmiennopozycyjne
Zaawansowane metody numeryczne
Stabilność metody numerycznej
Maszynowa reprezentacja liczb i działania zmiennopozycyjne
Działania zmiennopozycyjne
Przykład 2.4. (dodawanie liczb zmiennopozycyjnych)
Rozważmy system zmiennopozycyjny z bazą 2, jednym bitem znaku,
4 bitami dla mantysy i 3 bitami dla wykładnika. Wykorzystując operacje odcięcia i zaokrąglenia obliczyć sumę zmiennopozycyjną liczb
x1 = 0, 48 i x2 = 0, 24.
dr Artur Woike
Zaawansowane metody numeryczne
Download