Zapis zmiennopozycyjny, arytmetyka, błędy numeryczne

advertisement
Zapis zmiennopozycyjny, arytmetyka,
błędy numeryczne
Plan wykładu:
1.
2.
3.
4.
5.
zapis zmiennopozycyjny
arytmetyka zmiennopozycyjna
reprezentacja liczb w standardzie IEEE754
błędy w obliczeniach numerycznych
definicje
1
Własności zapisu
zmiennopozycyjnego
Jednoznaczność osiągamy dla warunku
Liczbę rzeczywistą w komputerze
reprezentuje liczba zmiennoprzecinkowa:
F = M¯
F
i
=
=
wtedy dla dowolnego i≠ 0 mamy
¯ p¡i¡1 · jM j¯ ¡i < ¯ p
jM j¯ ¡i 2
= [¯ p¡1 ; ¯ p )
E
gdzie:
M – znacznik („mantysa”) jest liczbą
ułamkową ze znakiem
 – stanowi bazę reprezentacji i jest liczbą
całkowitą (np.: 2, 10, 16)
E – wykładnik („cecha”) jest znakowaną
liczbą całkowitą
Powyższy zapis jest niejednoznaczny:
E
¯ p¡1 · jM j < ¯ p
E+i
M ¯ = Mi ¯
= (M ¯
¡m; : : : ; ¡1; 0; 1; : : : ; m
¡i
)¯
m jest liczbą pozycji znacznika w bazie.
Można odróżnić
w praktyce stosuje się
p = 0; 1
Znaczniki spełniające powyższy warunek
nazywamy znormalizowanymi (liczby
znormalizowane).
Nie ma liczb znormalizowanych
jF j < ¯ p¡1¡Emin
E+i
w tym 0. Tworzą one osobną grupę zwana
liczbami zdenormalizowanymi.
k = mlog¯ 2
różnych reprezentacji tej samej liczby.
Ograniczeniem znacznika jest
jM j < ¯
ale problem nadal pozostaje.
¡1
¡
3
4
¡
1 1
¡
2 4
0
1
4
1
2
Znormalizowane wartości dla
3
4
¯ = 2;
1
p=0
2
Podstawowe operacje arytmetyczne.
Wykonujemy operacje na dwóch
znormalizowanych liczbach
F1 = M1 ¯ E1 ;
F2 = M2 ¯ E2
Dzielenie
F1 =F2
=
=
(M1 ¯ E1 )=(M2¯ E2 )
(M1 =M2 )¯ E1 ¡E2
Czy przeprowadzenie 4 podstawowych
operacji da znormalizowany wynik?
ponieważ
Mnożenie
konieczna jest postnormalizacja ilorazu
do postaci
F1 F2
=
=
M 1 ¯ E 1 M2 ¯ E 2
(M1 M2 )¯ E1 +E2 = MW ¯ W
sprawdzamy czy nie wystąpił nadmiar
(EW>Emax) lub niedomiar (EW<Emin)
zmiennopozycyjny. Jeśli wartość znacznika
wychodzi poza dozwolony zakres tj.:
¯ 2p¡2 · jMW j = jM1 M2 j < ¯ p¡1
jMW j = M1 =M2 2 (¯ ¡1 ; ¯)
F1 =F2
¯ ¡1
1
=
·
·
(¯ p¡" M1 =M2 )¯ E1 ¡E2 ¡p+"
jMW j < 1 =) " = 0
jMW j < ¯ =) " = 1
Dodatkowo należy zapewnić obsługę liczb
zdenormalizowanych, dzielenia przez 0 oraz
próby dzielenia 0/0.
to wykonujemy postnormalizację
F1 F2
"
=
=
(M1 M2 ¯ ¡p+" )¯ E1 +E2 +p¡"
0; 1
3
Dodawanie i odejmowanie
Wymagane jest wstępne wyrównanie
wykładników. Powoduje to denormalizację
operandu z mniejszym wykładnikiem i
utratę dokładności (na najmniej znaczących
pozycjach znacznika).
Załóżmy
E1 ¸ E2
F1 § F2
a) jeśli
=
=
Jeśli spełniony jest warunek
p ¡ i ¸ jmlog¯ 2j
wówczas może dojść do wyzerowania
wszystkich znaczących pozycji znacznika
sumy lub różnicy.
Wybór reprezentacji
Liczbę zmiennopozycyjną zapisujemy na n
(M1 ¯ E1 ) § (M2 ¯ E2 )
pozycjach, z czego:
¡(E1 ¡E2 )
E1
(M1 § M2 ¯
)¯ a) 1 pozycję przeznaczamy na znak liczby
E1 = Emax
b) t pozycji na zapis znacznika
c) d pozycji na zapis wykładnika
n= 1+d+t
oraz
¯ p · jMW j < 2¯ p
to wówczas normalizacja doprowadzi do
nadmiaru.
b) jeśli
oraz
jMW j < ¯ i · ¯ p¡1
E1 ¡ (p ¡ i) · Emin
to wystąpi niedomiar.
x=s
à t
X
i=1
s
se
znak
e0
e1
m¡i ¯ ¡i
!
¯E
: : : ed¡1 m¡1 m¡2 : : : : : : : : : m¡t
wykładnik
znacznik
4
Dokładność reprezentacji
Jeśli liczba zmiennopozycyjna jest
reprezentowana przez skończoną liczbę
bitów to dokładność reprezentacji określa
liczba bitów znacznika a zakres
reprezentowanych liczb zależy od liczby
bitów wykładnika.
Wartość błędu bezwzględnego wynika z
nierównomiernego rozłożenia liczb w
reprezentacji zmiennopozycyjnej
M
0
Jeśli zachodzi warunek
M ¯ E · x · (M + ulp)¯ E ;
x2R
(ulp – najmniej znacząca pozycja znacznika)
wówczas zaokrąglając liczbę x do bliższej
reprezentacji dostajemy błąd
bezwzględny
jf l(x) ¡ xj ·
1
ulp¯ E
2
gdzie fl(x) oznacza reprezentację liczby x w
zapisie zmiennopozycyjnym.
¯ p¡3 ¯ p¡2
¯ p¡1
¯p
Błąd względny
1
E
ulp¯
jf l(x) ¡ xj
ulp
j"(x)j =
· 2
=
x
M ¯E
2M
rośnie ze zmniejszaniem znacznika aż do
wartości
M RRE = max j"(x)j =
M
1
ulp¯ p¡1
2
MRRE – maximum relative representation
error.
5
Dobór zakresu wykładnika
Schematy zaokrąglania liczb
Jednym z wymagań jest aby dla każdej
znormalizowanej liczby x możliwe było
obliczenie jej odwrotności. Wykładnik
kodowany jest na d pozycjach z czego 
pozycji musimy zarezerwować na 0 oraz
wielkości nieznormalizowane
(nieskończoności itp.).
Rozpiętość wykładnika wynosi
Podczas wykonywania operacji
arytmetycznych może dojść do zwiększenia
się liczby bitów wynikowych, np. przy
mnożeniu dwóch znaczników
s = Emax ¡ Emin = 2d ¡ ¸
i aby istniały znormalizowane reprezentacje
odwrotności małych liczb.
Dla =2, -1=1 i p=0
najmniejszy znacznik ma wartość
0,100000...000
a największy
0,111111...111
najbardziej znaczący bit nie musi być
kodowany (bit ukryty). Pominięcie go
prowadzi do pełnego wykorzystania
przestrzeni kodowej znacznika (100%). W
innych przypadkach liczby znormalizowane
zajmują jedynie (1-1/)100% przestrzeni.
Bit ukryty jest odtwarzany w trakcie operacji
arytmetycznych.
mw = 2m
Aby zapisać wynik należy uciąć ostanie m
bitów. Eliminacja nadmiarowych bitów
nazywana jest zaokrąglaniem.
Reguły zaokrąglania
x · y ) f l(x) · f l(y)
x 2 f l ) f l(x) = x
F1 = M ¯ E · x · (M + ulp)¯ E = F2
|
{z
}
x=F1 _x=F2
6
Odcięcie (najprostsze)
Zaokrąglanie do najbliższej wartości
M · x < M + ulp , T (x) = M
Jeśli
m - liczba pozycji znacznika
d - liczba uciętych bitów
x = M + i2¡d ulp;
0 · i · 2d ¡ 1
i standaryzowanym błędem losowym
obcinania znacznika jest
T (x) ¡ x
= ¡i2¡d
ulp
Dla równomiernego rozkładu wartości x w
przedziale [M, M+ulp] miarą średniego
standaryzowanego błędu obcinania jest
±T =
1
2d
d
2X
¡1
(¡i)2¡d < 0
i=0
Błąd ten jest zawsze ujemny
– estymator T(x) jest ujemnie obciążony.
Skutek obcinania: niedoszacowanie.
Reguły zaokrąglania
R(x) =
½
M;
M + ulp;
x¡M <
x¡M ¸
ulp
2
ulp
2
Ten typ zaokrąglania powoduje, że średnia
wartość błędu standaryzowanego jest bliska 0,
ale estymator R(x) jest obciążony dodatnio.
Zaokrąglanie symetryczne
Reguły zaokrąglania
8
< M ¡ ulp;
S(x) =
M;
:
M + ulp;
¡ulp · x ¡ M < ¡ 12 ulp
¡ 12 ulp · x ¡ M · + 12 ulp
+ 12 ulp · x ¡ M < +ulp
Średnia wartość błędu standaryzowanego
wynosi 0, a estymator S(x) jest niebciążony.
Wadą zwykłego zaokrąglania oraz zaokrąglania
symetrycznego jest konieczność wykonania 2mpozycyjnego dodawania.
7
Reprezentacja liczb w standardzie
IEEE754
Formaty liczb zmiennopozyjcyjnych:
1) zwykły pojedynczej precyzji
- single (real)
2) rozszerzony pojedynczej precyzji
- single extended
3) zwykły podwójnej precyzji
- double
4) rozszerzony podwójnej precyzji
- double extended
Wykładnik jest reprezentowany w kodzie z
obciążeniem, a znacznik w kodzie znakmoduł. Wartość liczby w IEEE754
Bez przesunięcia, najmniejszą wartością
wykładnika jest
EB=Emin+B=00...0012
a największą
EB=Emax+B=11...1102
Zakres wykładnika jest ograniczony z obawy
przed uzyskaniem nadmiaru podczas
obliczania odwrotności liczb.
Liczby zdenormalizowane z zakresu
[-2Emin,+2Emin] łącznie z zerami można zapisać
F = (¡1)s 2Emin (0; f )
F = (¡1)s 2EB ¡B (1; f )
gdzie: EB - wykładnik, B – przesunięcie
(dzięki niemu nie musimy pamietać znaku),
(E=EB-B -”prawdziwy” wykładnik)
(1,f) – wartość modułu znacznika
Jeśli d oznacza liczbę bitów wykładnika to
wielkością przemieszczenia jest
B = 2d ¡ 1
8
symbol
single
double
Rozmiar
formatu
n
32
64
Rozmiar
znacznika
m
23(+1)
52(+1)
Rozmiar
wykładnika
d
8
11
obciążenie
B
127
1023
Zakres
wykładnika
E
[-126,127]
[-1022,1023]
dokładność
ulp
Zakres
formatu
RNG
2¡23 ¼ 10¡7 2¡52 ¼ 10¡15
¼ 2128
¼ 3; 8 ¢ 1038
¼ 21024
¼ 9 ¢ 10307
9
Nie-liczby
Wyjątki w IEEE754
Pojawiają się podczas wykonywania operacji Standard zapewnia obsługę specyficznych
np.:
wyników operacji:
0=0;
p
¡jxj
Bez ich obsługi program przerywałby
działanie. Obsługa nie-liczb pozwala je
wykryć i np. zrestartować schemat
iteracyjny z innym parametrem.
1.
2.
3.
4.
5.
nadmiar (Fmax, nieskończonośc)
niedomiar (Fmin, l. denormalizowane)
dzielenie przez 0
niepoprawna operacja (NAN)
niedokładność (zaokrąglenie wyniku)
Znakowane zero
Po co?
Dla liczb rzeczywistych mamy
1= ¡ 1 = 0;
1=(1= ¡ 1) = +1
zatem relacja
1=(1=x) = x
nie jest spełniona. Dla znakowanego 0
mamy
x = ¡1; 1=x = ¡0
1=(1=x) = 1= ¡ 0 = ¡1 = x
10
Błędy numeryczne
Najprostszy podział:
1. błędy wejściowe
2. błędy zaokrągleń
3. błędy obcięcia
Przykład – zapis 8 bitowy
Liczba
x(10) = 3:25
ma reprezentację
x(z2) = (0)1101 (0)10
| {z } | {z }
M
W
Ale dla liczby x=0.2 pojawia się problem
Błędy wejściowe
x(2) = 0:0011(0011)::::
Występują gdy dane liczbowe
wprowadzane do pamięci komputera
odbiegają od wartości dokładnych. Kiedy
po zaokrągleniu wyniku do najbliższej liczby
występują?
- gdy wprowadzane dane pomiarowe są
0
x
= (0)1100(1)10
obarczone błędami pomiarowymi (np.
(z2)
0
pomiar wielkości fizycznych takich jak
x
= 0:001100
(2)
oporu czy napięcia)
0
- gdy ze względu na skończoną długość
x
= 0:1875
(10)
słowa binarnego dochodzi do wstępnego
zaokrąglenia liczb (ułamki dziesiętne lub
co daje błąd bezwzględny równy 0.0125
zaokrąglanie liczb niewymiernych jak np.: i błąd względny na poziomie 6.25%.
e, π)
11
Błędy obcięcia - powstają podczas
zmniejszania liczby działań np.:
a)przy obliczaniu wartości szeregów
(ucięcie szeregu)
b)wyznaczaniu granic (obliczanie
wartości całki)
c)zastępowaniu pochodnej funkcji
ilorazem różnicowym
Przykład
Chcemy wyznaczyć wartość ex, więc
korzystamy z rozwinięcia
1
X
xn
x
e =
;
n!
n=0
¡1 < x < +1
Reszta szeregu:
eµq
Rn (x) =
q n+1 ;
(n + 1)!
0<µ<1
szacujemy maksymalny błąd obcięcia tj.
µ ¼ 1;
0 · Rn (q) <
q¼1
3
q n+1
(n + 1)!
widzimy że szereg jest więc szybko
zbieżny.
Dokładniejsze oszacowanie
Rn (q) =
q n+1
q n+2
q n+3
+
+
+:::
ale numerycznie lepiej zrobić to tak
(n
+
1)!
(n
+
2)!
(n
+
3)!
µ
¶
ex = eE(x) eq
n+1
2
q
q
q
=
1
+
+
+ :::
gdzie: E(x) jest częścią całkowitą liczby x,
(n + 1)!
n + 2 (n + 2)(n + 3)
Ã
!
q jest częścią ułamkową 0 · x < 1
µ
¶2
n+1
q
q
q
Pierwszy wyraz jest potęgą a drugi
<
1+
+
+ :::
liczymy wg rozwinięcia.
(n + 1)!
n+2
n+2
Do wyznaczenia pozostaje tylko
błąd obcięcia. Szereg ucinamy na n-tym
wyrazie.
12
Stosując wzór na sumę szer. geom.
q n+1
1
Rn (q) <
q
(n + 1)! 1 ¡ n+2
0·q<1
dla
oraz
n+2
n+1
<
n+1
n
dostajemy warunek
q
0 < Rn (q) < un ;
n
gdzie
u0 = 1;
uk =
xuk¡1
;
k
k = 1; 2; 3; : : : ; n
Wówczas schemat iteracyjny obliczania
wartości sumy jest następujący
uk
=
sk
k
=
=
x
uk¡1
k
sk¡1 + uk
0; 1; 2; : : : ; n
z warunkami
0<q<1
u0 = 1;
s¡1 = 0;
s0 = 1
gdzie
qn
un =
n!
jest ostatnim wyrazem użytym przy
sumowaniu elementów.
Wyrażenie na ex (małe x)przyjmuje
postać:
Załóżmy, że " jest maksymalną wartością
błędu obcięcia szeregu.
ex = u0 + u1 + u2 + : : : + Rn (x)
13
Proces sumowania przerywamy gdy
spełniony będzie poniższy warunek
<
p
e
np. obliczmy wartość
z dokładnością 2.5x10-6
jRn (x)j · Rn (jxj)
jxjn+1
1
¢
(n + 1)! 1 ¡ jxj
n+2
<
<
2jxjn+1
2jxj jxjn
=
¢
(n + 1)!
n + 1 n!
jun j · "
Ostatecznie warunek ten przyjmuje
bardziej „przystępną” postać
wynik
jun (x)j < "
u0
u1
u2
u3
u4
u5
=
=
=
=
=
=
1
0:5000000
0:1250000
0:0208333
0:0026042
0:0002604
u6
u7
=
=
0:0000217
0:0000016
p
e = 1:648721
14
Błędy zaokrągleń
Błędy względne zaokrągleń:
Pojawiają się podczas wykonywania
operacji arytmetycznych. Wynikają z
ograniczonej reprezentacji liczb
zmiennopozycyjnych.
mnożenia
Wielkość błędów zależy od:
dzielenia
a) dokładności reprezentacji
b) sposobu zaokrąglania wyniku
c) rodzaju przeprowadzanej operacji
Lemat 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.
Po przeprowadzeniu operacji dostajemy
f l(x) = x(1 + "x );
f l(y) = y(1 + "y )
f l(x)f l(y) ¡ xy
= (1 + "x )(1 + "y ) ¡ 1 =
xy
= "x + "y + "x "y ¼ "x + "y
f l(x)=f l(y) ¡ x=y
1 + "x
=
¡1=
x=y
1 + "y
"x ¡ "y
=
¼ "x ¡ "y
1 ¡ "y
dodawania i odejmowania
f l(x) § f l(y) ¡ (x § y)
x"x § y"y
=
=
x§y
x§y
x
y
=
"x ¡
"y
x§y
x§y
Zwłaszcza przy odejmowaniu możemy
dostać duży błąd, gdy
x ¼ y;
"x ¼ ¡"y
15
Wykonywanie kolejnych operacji na wynikach
poprzednich operacji prowadzi do kumulacji
błędów zaokrągleń.
Można je zmniejszyć ustalając odpowiednio sposób i
kolejność wykonywanych działań lub zwiększając
precyzję obliczeń (nie zawsze można).
16
Szacowanie błędów zaokrągleń
a) Sumowanie liczb (jedna z częściej wykonywanych operacji)
n
X
s=
xi
i=1
oznaczenie
¡
¢
0
0
sk = f l sk¡1 + xk = sk¡1 + xk
Zgodnie z lematem Wilkinsona:
0
sk¡1 = sk¡1 (1 + "1k¡1 )
0
xk = xk (1 + "2k )
j"1k¡1 j · "
j"2k j · "
Indeks 1 - suma
indeks 2 - x
Obliczona wartość sumy:
s = x1 (1 + "21 )(1 + "12 ) ¢ ¢ ¢ (1 + "1n¡1 )
+ x2 (1 + "22 )(1 + "12 ) ¢ ¢ ¢ (1 + "1n¡1 )
+ x3 (1 + "23 )(1 + "13 ) ¢ ¢ ¢ (1 + "1n¡1 ) + ¢ ¢ ¢
+ xn¡1 (1 + "2n¡1 )(1 + "1n¡1 ) + xn (1 + "2n )
17
Obliczona suma jest sumą zaburzonych składników. Wielkość
zaburzeń zależy od kolejności wykonywania sumowania. Nie
znamy wielkości poszczególnych mnożników, ale możemy
oszacować
maksymalne dopuszczalne zmiany składników:
x1;min = x1 (1 ¡ ")n
xi;min = xi (1 ¡ ")n+1¡i
x1;max = x1 (1 + ")n
xi;max = xi (1 + ")n+1¡i
Najmniej zaburzony jest składnik ostatni bo tylko (1+ε) lub (1-ε)
razy.
Można stąd wysunąć wniosek odnośnie sumowania: liczby
należy sumować od najmniejszej do największej wg
wartości bezwzględnej
- trzeba zmienić algorytm na dokładniejszy.
18
b) Obliczanie wartości wielomianu
w(x) = xn + a1 xn¡1 + a2 xn¡2 + ¢ ¢ ¢ + an¡1 x + an
W „tradycyjny” ale nieoptymalny sposób:
w(x) = xx
¢ ¢ ¢ x} +a1 x
¢ ¢ x} + ¢ ¢ ¢ + an¡1 x + an
| {z
| ¢{z
n
n¡1
Wykonujemy:
-M operacji mnożenia
(n ¡ 1)(n + 2)
M=
2
- D operacji dodawania
D=n
Optymalny sposób obliczania wartość wielomianu zapewnia Schemat Hornera
µ ³
¶
´
¡
¢
w(x) = x x x ¢ ¢ ¢ x + a1 + a2 + ¢ ¢ ¢ + an¡1 + an
Wykonujemy tylko M=n-1 mnożeń i D=n dodawań.
Uwaga:
Wyniki uzyskane wg powyższych algorytmów mogą się różnić.
Natomiast oszacowana największa możliwa wartość błędu w obu
przypadkach jest taka sama.
19
Uwarunkowanie zadania
Zadanie numeryczne to jasny i
dla danych
niedwuznaczny opis powiązania
funkcjonalnego między danymi
n
d
=
(d
1 ; d2 ; : : : ; dn ) 2 R
wejściowymi i danymi wyjściowymi. Dane te
poszukujemy wyniku
składają się ze skończonej liczby wielkości
rzeczywistych.
w = (w1 ; w2 ; : : : ; wm ) 2 Rm
Algorytm numeryczny dla zadania
numerycznego to opis poprawnie
określonych operacji (arytmetycznych lub
logicznych), które należy wykonać aby
przekształcić wektor danych wejściowych
na wektor danych wyjściowych.
Przykład
Określić największy pierwiastek rzeczywisty
równania
a3 x3 + a2 x2 + a1 x + a0 = 0
dla wektora danych wejściowych
(a0 ; a1 ; a2 ; a3 )
jest to zadanie numeryczne. Daną
wyjściową jest szukany pierwiastek.
Algorytm dla tego zadania – metoda
Newtona, schemat iteracyjny, wzory
Cardana.
czyli
d);
w = '(d
' : Rn ! Rm
Jeśli niewielkie względne zmiany danych
zadania powodują duże względne zmiany
rozwiązania, to zadanie takie jest źle
uwarunkowane.
Wskaźnikiem uwarunkowania zadania
nazywamy wielkość charakteryzującą wpływ
zaburzeń danych na zaburzenie rozwiazania.
~ = cond('; d )kd
~
d) ¡ '(dd)k
d ¡ ddk
k'(d
Zadanie jest:
cond('; d ) ¼ 1
cond('; d ) À 1
cond('; d) ! +1
-dobrze uwarunkowane
-źle uwarunkowane
-źle postawione 20
Przykład
Jakie jest uwarunkowanie obliczania
iloczynu skalarnego?
S=
n
X
i=1
Za wskaźnik uwarunkowania przyjmujemy
ai bi 6= 0
zaburzamy dane wejściowe
ai (®) = ai (1 + ®i )
bi (¯) = bi (1 + ¯i )
®i ¯ i ¼ 0
i liczmy względną zmianę wyniku
dla
Pn
jai bi j
a ; b) = Pi=1
cond(a
n
j i=1 ai bi j
a; b ) = 1
jai bi j = ai bi ! cond(a
czyli zadanie jest dobrze uwarunkowane.
Algorytmy numerycznie poprawne
Są to algorytmy numerycznie najwyższej
jakości, dla których obliczone rozwiązanie
jest „nieznacznie” zaburzonym
rozwiązaniem dla „nieznacznie”
zaburzonych danych.
¯ Pn
¯
P
¯ i=1 ai (1 + ®i )bi (1 + ¯i ) ¡ n
ai bi ¯¯
i=1
¯
Pn
¼
¯
¯
a
b
i=1 i i
¯ Pn
¯
¯ i=1 ai bi (®i + ¯i ) ¯
¯ · „nieznaczne ” zaburzenie – zaburzenie na
Pn
¼ ¯¯
¯
poziomie reprezentacji (rd(d), rd(w))
i=1 ai bi
¯ n
¯!
à n
¯
¯
X
¯X
¯
· max j®i + ¯i j
jai bi j= ¯
ai bi ¯
d ¡ rd(d
d )k · ½d kd
dk
kd
i
¯
¯
i=1
i=1
w ¡ rd(w
w )k · ½w kw
wk
kw
21
Algorytmy numerycznie stabilne
- dokładne rozwiązanie:
d);
w = '(d
b · ½d kd
d ¡ ddk
dk
kd
- dane zaburzone na poziomie
b
reprezentacji: d
- dokładny wynik dla danych d
b:
b = '(db);
w
b ¡w
e k · ½w kw
kw
wk
b
- zaburzony wynik dla zaburzonych
danych:
algorytm A jest numerycznie stabilny, jeśli
dla każdego
d
d2D
istnieje stała K (ograniczenie od góry) i dla
dostatecznie silnej arytmetyki zachodzi
d) ¡ f l(A(d
d))k · K ¢ P (d
d; ')
k'(d
d)) - realizacja odwzorowania przez
f l(A(d
algorytm A w arytmetyce
zmiennopozycyjnej
e = f l (w
b)
w
Dostajemy oszacowanie
w ¡w
kw
wk
e
gdzie
·
·
w ¡w
kw
wk
b + kw
b ¡w
wk
e ·
d ; ')
(1 + ½w )P (d
Wskaźnik stabilności K powinien być jak
najmniejszy – jego wielkość może służyć do
oceny algorytmu.
Stabilność numeryczna jest własnością jakiej
powinniśmy oczekiwać od algorytmu.
b
d; ') = ½w kw
w k + max k'(d
d) ¡ '(dd)k
P (d
jest optymalnym poziomem błędu
rozwiązania w danej arytmetyce (fl).
23
Złożoność obliczeniowa
rozważamy problem
d);
w = '(d
' : D ½ R n ! Rm
Minimalną liczbę działań potrzebnych do obliczenia wyniku
definiujemy jako
z('; D) = sup z('; D)
d2D
Wielkość z(,D) nazywamy złożoności obliczeniową zadania.
Jeśli zadanie ma n danych istotnych tj.
_
^ _
d2D 1·j·n ±
wówczas
d) 6= '(d
d + ±eej )
d + ±eej 2 D ) '(d
e j = (0; : : : ; 0; 1; 0 : : : ; 0)T
z('; D) ¸ n=2
i liczba istotnych danych określa oszacowanie z dołu złożoności
obliczeniowej. Analiza algorytmów numerycznych powinna
zawierać oprócz analizy dokładności metody również analizę jej
złożoności obliczeniowej (pozwala oszacować koszt metody).
24
Download