Rozdział 2
Elementy teorii błędów
Błędy są częścią opłaty,
którą płacimy za pełne życie
Sophia Loren
2.1. Analiza błędów.
Liczba przybliżona a nazywa się liczba różniąca się nieznacznie od liczby dokładnej A i zastępująca ją w obliczeniach.
Na przykład, liczba dokładna
, wówczas jako liczba przybliżona może być
.
Również, liczba dokładna
, wówczas jako liczba przybliżona może być
.
Definicja 2.1. Błędem bezwzględnym
liczby przybliżonej a nazywa się wartość bezwzględna różnicy pomiędzy liczbą dokładną A i liczbą przybliżoną a, tzn.
.
Zaznaczmy, że tak określoną wielkość
jeszcze nazywają górnym kresem błędu przybliżenia
.
Przykład 2.1. Liczba
jest przybliżeniem liczby
z błędem
Za górny kres błędu można przyjąć
.
Ponieważ najczęściej liczba dokładna
nie jest znana, to zamiast nieznanego błędu bezwzględnego
wprowadza się ocena
błędu bezwzględnego.
Definicja 2.2. Ocena
błędu bezwzględnego
liczby przybliżonej
nazywa się każda liczba nie mniejsza od błędu bezwzględnego
tej liczby przybliżonej
.
Wynika stąd, że
.
We wzorze tym wartość
jest przybliżeniem z niedomiarem liczby
, natomiast wartość
jest przybliżenie z nadmiarem liczby dokładnej
.
Taką nierówność często zapisujemy również w postaci
.
Na przykład, jeśli
i
, to, ponieważ
, wówczas
. Zatem możemy przyjąć
.
Jeżeli
, to
i
.
Definicja 2.3. Błędem względnym
liczby przybliżonej
nazywa się stosunek błędu bezwzględnego
tej liczby do wartości bezwzględnej liczby dokładnej
.
Wielkość
jeszcze nazywają górnym kresem błędu względnego dla przybliżenia
.
Przykład 2.2. Liczba
jest przybliżeniem liczby
z błędem
Za górny kres błędu względnego można przyjąć iloraz
.
Definicja 2.4. Oceną
błędu względnego
liczby przybliżonej
nazywa się każda liczba nie mniejsza od błędu względnego tej liczby
.
Za ocenę błędu bezwzględnego danej liczby
można przyjąć wielkość
.
Ponieważ najczęściej liczba
nie jest znana, ale
, to często korzysta się ze wzorów
oraz
.
Na przykład, jeśli
i
, to, ponieważ
,
to za ocenę błędu bezwzględnego danej liczby
można przyjąć
.
Przykład 2.3. Jedna stopa sześcienna równa jest
; mamy tu 3 cyfry wartościowe, więc jest to przybliżenie w trzecim stopniu dokładności. Jeden cal równia się
; mamy tu 5 cyfr wartościowych, więc jest to przybliżenie w trzecim stopniu dokładności.
Jeżeli przybliżenie
ma
cyfr wartościowych, to jego błąd względny
,
gdzie
jest pierwszą cyfrą wartościową danego przybliżenia
.
Przybliżenie
z błędem względnym
ma
cyfr przybliżenia
, gdzie
jest największą liczbą całkowitą spełniającą warunek
.
Przykład 2.4. Jeżeli liczba
jest wynikiem działań na liczbach przybliżonych i wiadomo, że
, to otrzymujemy
, gdyż
; dane przybliżenie ma więc tylko 3 cyfry wartościowe i należy
napisać w postaci
.
2.2. Źródła błędów.
Nie pytaj błędu, skąd pochodzi.
Stanisław Jerzy Lec
Przy obliczeniach występują różne rodzaje błędów:
błędy nieusuwalne (błędy zagadnienia, błędy początkowe);
błędy metody (błędy obcięcia, błędy dyskretyzacji);
błędy obliczeń (błędy zaokrąglenia, błędy działań).
2.2.1. Błędy zagadnienia. Jest to błędy niedokładności modelu matematycznego oraz danych wejściowych (współczynników w równaniach modelu, warunków początkowych i brzegowych). Prawie zawsze model matematyczny jest pewnym przybliżeniem zjawiska lub procesu fizycznego, a dane wyjściowe oparte jest na dane pomiarowe, które obciążone są błędami pomiarowymi.
Wahadło matematyczne. Jest to punktowa masa
zawieszona na nitce o długości
. Przyjmuje się, że masa nitki jest znacznie mniejsza od masy
. Dla określenia prawa ruchu tej masy rozważamy działające siły i korzystamy z drugiej zasady Newton'a.
Przyjmiemy, że w pewnej chwili czasu w kierunku ruchu punktu materialnego działa składowa
siły ciężkości
, wówczas w kierunku przeciwnym działa siła oporu
, która jest wprost proporcjonalna do prędkości
, mianowicie
,
gdzie
— współczynnik tarcia.
Wtedy z drugiej zasady Newtona mamy
,
gdzie
— przyspieszenie styczne.
Ponieważ
,
,
to równanie ruchu przyjmuje postać
,
gdzie
— małe przemieszczenie wzdłuż stycznej,
— kąt, który tworzy nitka z kierunkiem pionowym,
— czas,
— charakterystyka wahadła.
W większości wypadków rozważa się małe wychylenia, dla których
i
. Zatem otrzymane powyżej równanie istotnie upraszcza się
.
2.2.2. Błędy początkowe. Kiedy opisuje się konkretny proces, to należę zażądać spełnienia warunków początkowych
,
opisujących położenie i prędkość punktu materialnego w chwili czasu
(
i
— stałe). Warunki tę są określane eksperymentalnie z błędami pomiarowymi.
Podobnie stałe
,
i
w równaniu możemy określić tylko w pewnym przybliżeniu.
2.2.3. Błędy obcięcia. Często rozwiązania jakiegoś zagadnienia matematycznego otrzymujemy w postaci ciągów lub szeregów nieskończonych, ale nigdy numerycznie nie obliczamy sumy nieskończonej ilości składników. Przerwanie obliczeń na pewnej liczbie członów powoduje powstanie błędów obcięcia.
2.2.4. Błędy dyskretyzacji. Przy obliczeniach numerycznych funkcje ciągłe zastępujemy funkcjami dyskretnymi, całki oznaczone aproksymujemy sumami skończonymi, ilorazy różniczkowe - ilorazami różnicowymi itd. Stąd powstają kolejne błędy obliczeń.
2.2.5. Błędy zaokrąglenia. Przy przedstawieniu liczb niewymiernych (na przykład liczba
), a nawet liczb wymiernych, które są ułamkami okresowymi (na przykład liczba
), po przecinku występuje nieskończona ilość cyfr. Jednak w obliczeniach numerycznych może być wykorzystana jedynie skończona ilość cyfr. Mówimy wtedy o zaokrągleniu i błędach zaokrąglenia.
Przy zaokrągleniu powstaje błąd, który może sięgać połowy jednostki ostatniej cyfry znaczącej. Aby więc po zaokrągleniu przybliżenia wszystkie cyfry byli pewne, błąd przed zaokrągleniem nie powinien przekraczać połowy jedności ostatniej cyfry pewnej.
Zaznaczmy, dziwną rzecz, że na przykład ułamek dziesętny 0.1 w układzie dwójkowym ma postać 0.0001100110011…
Prykład 2.5. Dotoczymy bardzo charakterny przykład obliczenia sinusa za pomocą szeregu Taylor'a, tzn.
Z analizy matematycznej wiadomo, że ten szereg jest zbieżny dla dowolnych wartości
z przedziału
i błąd nie przewyższa pierwszego pominiętego wyrazu.
Aby nie było przepełnienia przy obliczaniu kolejnych wyrazów dla dużych wartości
stosujemy wzór rekurencyjny
.
Niech teraz
.
Według wzoru dla sinusa w postaci szeregu Taylor'a otrzymamy
.
Wówczas jeśli
,
to po obliczeniach mamy całkowicie błędny wynik
.
Przyczyną takiego wyniku jest błędy zaokrąglenia.
Zły algorytm doprowadzi do złego wyniku. Program standardowy zawsze sprowadza kąt do przedziału
.
OL. O postaci zmiennopozycyjnej liczby dodatniej.
Każda liczba dodatnia może być zapisana w postaci zmiennopozycyjnej
gdzie
jest cyfry liczby
,
.
Na przykład, liczbę
możemy zapisać w postaci
Ponieważ, w zastosowaniach występuje ograniczenie ciągu, to liczba przybliżona
dla liczby dokładnej
ma postać
,
gdzie
oraz wszystkie
są cyfry znaczące (wartościowe).
Przy takim postępowaniu prawie zawsze występują zbędne cyfry zerowe, albo na początku, albo w końcu liczy. Oto przykład
,
,
tzn.
,
,
ani pierwszy zera w pierwszej liczbie, ani ostatni (cztery) liczby nie są cyfry znaczące (wartościowe).
Definicja 2.5. Cyframi znaczącymi liczby przybliżonej
nazywa się wszystkie cyfry jej zapisu dziesiętnego, począwszy od pierwszej cyfry różnej od zera.
Definicja 2.6. Cyfra znacząca nazywa się dokładną, jeśli błąd bezwzględny liczby nie przewyższa jedności pozycji dziesiętnej, odpowiadającej tej cyfrze. Ilość cyfr wartościowych w danym przybliżeniu dziesiętnym nazywamy stopniem dokładności tego przybliżenia.
Mówimy, że
pierwszych cyfr (znaków dziesiętnych) liczby przybliżonej są dokładne, jeśli błąd bezwzględny nie przewyższa połowy ostatniej pozycji, którą oznaczona liczba (licząc zlewa na prawo)
.
Oto przykład. Jeśli
, a
, to przybliżona liczba
ma trzy cyfry ścisłe, ponieważ
. Wówczas liczba przybliżona
dla liczby
ma pięć cyfr ścisłych, ponieważ
.
Dla liczby ścisłej
liczba przybliżona
ma trzy cyfry ścisłe, ponieważ
.
Twierdzenie. Jeśli stopień dokładności liczby przybliżonej
wynosi
, to względny błąd
tej liczby spełnia nierówność
.
Dowód. Załóżmy, że
jest liczba przybliżona liczby dokładnej
, w której
cyfr dokładnych. Wtedy
.
Skąd
.
Zatem
,
albo
.
Prawa strona nierówności przyjmuje wartość najmniejszą przy
, temu
.
Ponieważ
, to
.
Zgodnie z definicją
,
albo
.
Skutek 1. Za oceną
błędu względnego
liczby przybliżonej
ze stopniem dokładności
może być przyjęta
,
gdzie
jest pierwszą liczbą dokładną.
Skutek 2. Za oceną
błędu względnego
liczby przybliżonej
ze stopniem dokładności
może być przyjęta
.
Dowód. Jeżeli
, to w wyrażeniu
wyraz
może być zaniedbany. Wówczas
.
Zatem
.
Przykład 1. Zapisać oceną
błędu względnego
liczby przybliżonej
liczby
.
Ponieważ
i
, to
.
Przykład 2. Ile cyfr dokładnych powinno być w liczbie przybliżonej
liczby
, jeśli
?
Ponieważ
i
, to ze wzoru
mamy
.
Skąd
i
.
OL. O różnym …
W układzie dziesiętnym i dwójkowym każdą liczbę rzeczywistą
można wyrazić w postaci
,
lub
,
,
gdzie
i
są liczbę całkowite.
W standardzie IEEE (Nr 754 z 1985) pierwszy bit określa znak (+ lub -), 8 następnych bitów - cechę mantysy
zwiększoną o 127, a pozostałe 23 bity przeznaczone na część ułamkową mantysy
.
Cecha jest liczba całkowita z przedziału
oraz
. Na ośmiu bitach można zapamiętać liczbę całkowite od
czyli
do
czyli
. Tych skrajnych wartości nie wykorzystuje się.
Podobnie, mantysa liczby różnej od zera, ma z założenia część całkowitą 1, więc dla niej nie rezerwuje się miejsca. Dla najmniejszej mantysy, równej 1, wszystkie 23 bity są zerami, największa jest
i wtedy te bity są jedynkami.
W komputerze można operować z liczbami od
do
. Oddzielne wyróżniamy liczbę
. Prócz tego, część ułamkowa mantysy ma co najwyżej 23 bity. Każda liczba spełniająca te ograniczenia zwana liczbą maszynową.
Zaznaczmy, że nawet liczba
nie mogę być dokładnie określona przez liczbie maszynową.
W standardzie IEEE (Nr 754 z 1985) omówione również zero w postaci +0 lub -0, a także symbole
i
oraz symbol specjalny
, który sygnalizuje, że działania rodzaju
,
, … lub
, są niewykonalnie.
Stosując pewien język programowania należę uwzględniać informację:
jakie są dopuszczalne wartości cechy
(ocenia to zakres liczb maszynowych);
jaka długość części słowa przeznaczonego na mantysę
bez jej znaku (o tym decyduje liczba bitów
).
Liczbę
nazywamy precyzją arytmetyki dla danego komputera.
Jeśli taka precyzja jest niewystarczająca, to programowo dokonuje się obliczeń z podwójną precyzją. Wtedy na każdą liczbę rezerwuje się dwa słowa 32-bitowe.
Oprócz tego rozkład liczb zmiennopozycyjnych jest nierównomierny. Mamy zagęszczenie w pobliżu zera, ale w otoczeniu samego zera występuje luka.
Zastąpienie liczb rzeczywistych liczbami maszynowymi realizujemy następująco. Niech
i
, gdzie
. Stąd
,
gdzie
są równe
lub
. Jeśli mantysy liczb maszynowych mają
bitów po kropce, to dokonujemy obcięcia i zastępujemy liczbę przez liczbę maszynową
.
Otrzymana liczba jest mniejsza od wyjściowej, tzn.
, a najbliższa liczba maszynowa, która większa tej liczby, to
.
Jest oczywiste, że
.
Najbliższą do
liczbę maszynową oznaczamy symbolem
. Jeśli
, to
inaczej
i
Błąd względny reprezentacji będzie
.
Określimy wielkość
i zapiszemy
.
Np. Jaka postać dwójkowa liczby
w przykładowej arytmetyce, w której
? Jaki są dwie liczby maszynowe
i
? Która z tych liczb jest
? Jaki błąd zaokrąglenia wywołany zamianą
na
?
Zapiszemy
.
Mnożenie przez 2 daje
.
Część całkowita obu stron jest równa
i po jej odjęciu mamy
.
Powtarzając te działania znajdziemy
.
Dwie bliskie liczby maszynowe są równe
,
,
gdzie po przecinku mamy 23 bity. Pierwsza liczba daje obcięcie, a druga zaokrąglenie w górę.
Obliczamy różnice
,
.
Dla tego
oraz
i
Działania arytmetyczne na liczbach zmiennopozycyjnych.
Przyjmujemy, że komputer działa tak, że po wykonaniu działania arytmetycznego mantysa wyniku jest normalizowana, tzn. sprowadzana do właściwego przedziału, np.
, a cecha odpowiednio korygowana. Wówczas wynikiem działania nad liczbami maszynowymi
i
jest
, gdzie przez symbol
oznaczono jedno z czterech działań arytmetycznych.
W dobrze zaprojektowanym komputerze mamy
,
gdzie
jest precyzją arytmetyki.
Jeżeli liczby
i
są liczbami zmiennopozycyjnymi (nie maszynowymi), to wtedy
.
Zaznaczmy, że działania arytmetyczne wykonują się w specjalnych rejestrach, które są dłuższe od słów przeznaczonych na liczby maszynowe (dodatkowe bity chroniące).
2.3. Błędy działań arytmetycznych.
Prawdziwym błędem jest błąd
popełnić i nie naprawić go.
Konfucjusz
2.3.1. Błąd sumy. Załóżmy, że mamy dwie liczby
oraz
.
Wtedy ich suma będzie
a więc
i
lub
.
2.3.2. Błąd różnicy. Podobnie
a więc
i
lub
.
Jeśli liczby przybliżone
i
różnią się nieznacznie, to ich różnica
jest wielkością małą. Tak, że błędy względne mogą być duże i mamy utraty dokładności przy takich obliczeniach. Należę unikać takich sytuacji przy napisaniu algorytmu.
Twierdzenie. Jeśli liczby maszynowe
i
są takie, że
i
,
to liczba bitów znaczących straconych przy odejmowaniu
jest równa co najmniej
i co najwyżej
.
Przykład. Przeanalizować odejmowanie dla wyrazów
oraz
.
2.3.3. Błąd iloczynu. Mnożąc mamy
Ponieważ
, to
i
.
2.3.4. Błąd ilorazu. Analogicznie można udowodnić, że
i
.
Zaznaczmy, że błąd względny n-tej potęgi liczby przybliżonej
wówczas pierwiastka stopnia n
Przykłady 2.6. Kombinację działań na liczbach przybliżonych.
1. Mamy wyrażenie
.
Obliczamy kolejno
.
Ponieważ
, to
.
2. Mamy wyrażenie
.
Dokonujemy obliczeń
.
Wtedy
.
2.3.5. Błąd funkcji jednej zmiennej. Jeśli funkcja
jest różniczkowalna, to dla dostatecznie małego przyrostu argumentu
przyrost funkcji
równia się w przybliżeniu jej różniczce
,
a więc
,
lub
.
Uwarunkowanie
Sformułujemy odpowiedź na pytanie jak małe zmiany argumentu funkcji wpływają na jej wartość. Korzystając z definicji pochodnej notujemy
.
Na tej podstawie wielkość
nazywamy współczynnikiem uwarunkowania.
Funkcja
ma pojedynczy pierwiastek (
) dla
. Jak zmienia się pierwiastek jeśli funkcję
zamieniamy na
, gdzie
jest dowolna funkcja z klasy
, jak i funkcja
. Załóżmy, że nowy pierwiastek
i wtedy
.
Dokonamy rozwinięcia w wzór Taylora
.
Ponieważ
, a wyrażenia w których występuje
są małe, to możemy zapisać
.
Przykład (Wilkinson). Rozważmy wielomiany
i
.
Pierwiastki równania
będą
. Funkcja
jest wielomianem w którym przy wyrażeniu
występuje współczynnik
. Zgodnie z powyższym wzorem
.
Stąd wynika czułość pierwiastków na małe zaburzenia współczynników wielomianu Wilkinsona.
Rozważmy aproksymacje średniokwadratową wielomianem dla dowolnej funkcji
. Szukamy minimum całki
.
Różniczkujemy względem poszukiwanych współczynników
i wynik przyrównujemy do zera. Otrzymujemy układ równań normalnych
,
.
Całkujemy
(
),
i oznaczamy
,
,
.
Zaznaczmy, że macierz
zwana jest macierzą Hilberta
tego stopnia.
Wtedy układ normalny dla określenia współczynników
zapiszemy w postaci
(
) lub
,
gdzie
i
.
Wskaźnik uwarunkowania takich równań liniowych określa się przez wzór
.
W rozważanym przypadku wskaźnik uwarunkowania
szybko rośnie. Więc dla dużych
zagadnienie jest źle uwarunkowane, a wielomiany względem
tworzą źle uwarunkowaną bazę dla rozwinięcia funkcji z taką normą.
Na podsumowanie, zaznaczymy, że w skomplikowanych obliczeniach komputerowych popularne są dwie metody kontroli błędów:
ponownie rozwiązanie tego samego zagadnienia inną metodą lub tą samą metodą, ale z inną kolejnością operacji;
ponownie rozwiązanie zagadnienia przy nie znacznej zmianie danych wejściowych.
T
Fop
φ
mg
mgsinφ
l