Błąd względny ma wartość maksymalną dla liczby co do wartości bezwzględnej najmniejszej i różnej od zera, czyli dla |z| = p~' ■ pk, gdzie k jest maksymalną wartością cechy dla danej reprezentacji zmiennopozycyjnej liczb. W tym przypadku, gdy liczby w danych wejściowych podlegają zaokrągleniu
x — X |
M ■ pc - M ■ pc |
.0.5 .p-.pk | |
X |
Mpc |
P X ■ Pk |
= 0.5 p~
-m+1
n+l
= £
M
(1.15)
lub
(1.16)
gdy liczby w danych wejściowych są obcinane.
Ponieważ w języku wewnętrznym komputera p = 2, więc dla tego przypadku wyrażenie (1.15) upraszcza się do postaci
2-m. (1.17)
Stąd w przypadku przedstawienia danych wejściowych w postaci liczby zmiennopozycyjnej o pojedynczej precyzji otrzymuje się
sm> =2~23 =1.192 -10-7, (1.17)
natomiast dla podwójnej precyzji
eMb =2“52 s 2.220-KT16. (1.18)
Błędy obcięcia i zaokrąglania powstają także podczas operacji arytmetycznych w czasie realizacji programu. Dobre języki programowania (ich realizacje w postaci konkretnych kompilatorów) powinny gwarantować dla podstawowych operacji zmiennoprzecinkowych błąd względny nieprzekraczający eM. Dodatkową konsekwencją istnienia tego rodzaju błędów w wykonywaniu operacji arytmetycznych jest też to, że dla bardzo małej zmiany danych wejściowych wynik obliczeń może nie ulec zmianie, a także to, że zmiana kolejności obliczeń może prowadzić do uzyskania różnych wyników. A zatem algorytmy równoważne matematycznie nie zawsze muszą być równoważne numerycznie. W przypadku obliczania wartości funkcji wielu zmiennych można szacować dokładność obliczeń stosując wzór na różniczkę zupełną funkcji.
Przyczyną powstawania błędów obcięcia jest także konieczne ograniczanie nieskończonego ciągu obliczeń (np. przy stosowaniu algorytmów iteracyjnych dla znajdowania zer czy też punktów ekstremum funkcji) do skończonej liczby działań, a także ograniczanie liczby wyrazów w przypadku stosowania obliczeń wartości funkcji danych w postaci rozwinięć nieskończonych (w postaci szeregów). Typowym przykładem trudności w doborze parametrów w realizacji algorytmu jest procedura całkowania numerycznego. W tym przypadku zmniejszanie szerokości podprzedziałów całkowania umożliwia lepsze uwzględnienie rzeczywistej zmiany funkcji całkowanej, ale w wvniku /wii>Lc..u.. u„..u...............
I" 'V III i urn
" "'Ewunie /udania obliczeniowego jest w konsekwencji realizacją przekształcę r" '1’ioru danych wejściowych w odpowiadające tym danym wyniki obliczeń ' 1 " ■*'V|>M!| przy rozwiązywaniu zadania obliczeniowego jest wybór odpowiednie wyboru odpowiedniej metody obliczeń zależy nie tylko poprawność otrzyma-
Min
I
Mli l
IM u
| ę
In#
Mli-
M II
M i i \ i n .i y • 11
Mlii
Hu
h"l\ 11,1
(( | danego zadania, ale także czas obliczeń oraz dokładność wyników obii-
( "lllNI11 l'leincntem wstępnego etapu obliczeń jest też dobór modelu matcmatycznc-"" ‘M"T.o systemu lub zjawiska fizycznego.
''ll "iv,|iumii numerycznie dobrze uwarunkowanym nazywamy algorytm, dla którego 1 * '"dc |csl mało wrażliwe na małe zmiany w danych wejściowych. Badanie wpływu " h llili li /mian w danych wejściowych na wartość rozwiązania jest jednym z podsta-" o h <iilim analizy poprawności numerycznej algorytmu. Jeżeli małe względne zmiany Iiimm li 'm |m iowycli powodują duże względne zmiany wartości liczbowych stanowią-|i in w ii|/anit' lo algorytm nazywamy źle uwarunkowanym. Przykładem źle uwarunko-n, ,i,i ml,mm obliczeniowego jest np. wyznaczanie macierzy odwrotnej w przypadku, a a a i,i wyznacznika odwracanej macierzy jest bliska zeru.
W mciii przypadkach określenie dokładności rozwiązania danego zadania oblu /e
............. byt bardzo trudne. Stosowane są tu często metody statystyczne oceny do
,Im• 11 oli/vmywanyeh rozwiązań (patrz rozdz. 9).