• Nie Znaleziono Wyników

Metody Numeryczne Wykład 2

N/A
N/A
Protected

Academic year: 2021

Share "Metody Numeryczne Wykład 2"

Copied!
5
0
0

Pełen tekst

(1)

Metody Numeryczne Wykład 2

Bł¸ edy numeryczne. Arytmetyka zmiennopozycyjna.

Różna jest klasyfikacja bł¸edów numerycznych. Proponuje si¸e nast¸epuj¸ ac¸ a:

Bł¸edy wynikaj¸ ace z przyj¸etego zadania numerycznego. Do nich należ¸ a

bł¸edy danych wejściowych powstaj¸ ace w wyniku pomiarów wielkości fizycznych, które nigdy nie s¸ a nieskończenie dokładne.

Bł¸edy wynikaj¸ ace z przyj¸etej metody rozwi¸ azania

• bł¸edy dyskretyzacji i zaokr¸agleń, powstaj¸ace w wyniku zast¸epowania funkcji ci¸agłych ich dyskretnymi odpowiednikami,

• bł¸edy zbieżności metod iteracyjnych powstaj¸ace podczas iteracyjnego rozwi¸azywania równań liniowych i nieliniowych.

Drug¸ a grup¸e bł¸edów stanowi¸ a bł¸edy wynikaj¸ ace z przyj¸etego modelu obliczeniowego. S¸ a to bł¸edy obci¸ecia i zaokr¸ agleń, powstaj¸ ace w wyniku skończonej reprezentacji liczb w słowach maszynowych komputera.

Zajmiemy si¸e bł¸edami zaokr¸ agleń i dyskretyzacji oraz bł¸edami obci¸ecia i zaokr¸ agleń.

Bł¸edami dyskretyzacji i zaokr¸ agleń nazywamy bł¸edy wynikaj¸ ace głównie z zast¸epowania funkcji ci¸ agłych ich rozwini¸eciami w szereg Taylora-Maclaurina.

f (x 0 + h) = f (x 0 ) + hf 0 (x 0 ) + h 2

2 f ”(x 0 ) + h 3

6 f 3 (x 0 ) + . . .

Na przykład jeśli obliczamy numerycznie pochodn¸ a pierwszego rz¸edu funkcji f (x), to bł¸ ad dyskretyzacji będzie różnic¸ a pomi¸edzy wartości¸ a dokładn¸ a a jej ilorazem różnicowym, zaś bł¸ ad dyskretyzacji b¸edzie reszt¸ a szeregu Tayora - Maclaurina podzielon¸ a przez długość kroku h wynikaj¸ ac¸ a z tego przybliżenia. Co możemy zapisać

|f 0 (x) − f (x + h) − f (x)

h | ≈ | f ”(x)h 2 |

Po lewej stronie tej przybliżonej równości wyst¸epuj¸ a bł¸edy zaokr¸ agleń, po prawej bł¸edy dyskretyzacji, dla różnych wartości argumentu x i długości kroku h.

Przykład

Numeryczne obliczanie funkcji f (x) = sin(x).

| cos(x) − sin(x + h) − sin(x)

h |≈| − sin(x)h

2 |

(2)

Stosuj¸ ac powyższe obliczenia numeryczne otrzymujemy f 0 (x 0 ) ≈ (sin(1.3)−sin(1.2))/0.1 = 0.31519... Błˇsd bezwgl¸edny zaokrˇsglenia wynosi 0.047.

Arytmetyka zmiennopozycyjna. Bł¸ edy obci¸ ecia i zaokr¸ agleń

Załóżmy, że obliczamy wartość ułamka 8 3 = 2.666... = 10 2

1

+ 10 6

2

+ 10 6

3

+ 10 6

4

+ ... ∗ 10 1 Jeżeli uwzgl¸edniamy na przykład trzy pozycje mantysy tego ułamka tzn. przybliżamy jego wartość do trzech pozycji po przecinku to mówimy o obci¸eciu do trzech miejsc po przecinku

8

3 = 2.666 = 10 2

1

+ 10 6

2

+ 10 6

3

 10 1 . Jeżeli uwzgl¸ednimy że czwarta pozycja mantysy jest równa 6 wi¸ec zwi¸ekszymy jej trzeci¸ a pozycj¸e o 1, czyli zapiszemy 8 3 = 2.667 =

2

10

1

+ 10 6

2

+ 10 7

3

 10 1 to mówimy o zaokr¸ aglaniu.

Ogólnie wprowadzamy pojęcie systemu zmiennopozycyjnego (zmiennoprzecinkowego) Sys- temem tym jest czwórka (β, t, L, U ), gdzie

β jest podstaw¸ a systemu, t - górnym ograniczeniem (ilości¸ a pozycji) mantysy, L - dolnym ograniczeniem wykładnika pot¸egi (cechy), zaś U - jego ograniczeniem górnym.

Na przykład system zmiennoprzecinkowy (10, 4, −1, 2) jest systemem o podstawie 10, zawieraj¸ acym czteropozycyjne mantysy i wykładniku pot¸egi −1 ≤ w ≤ 2. Jeżeli w pierw- szej pozycji mantysy nie wyst¸epuje 0 to mówimy o postaci znormalizowanej liczby.

Ile jest różnych znormalizowanych liczb w systemie (10, 4, −1, 2)? odpowiadaj¸ ac na to pytanie rozumujemy nastepuj¸ aco:

Pierwsza pozycja mantysy może przyjmować jedn¸ a z liczb 1 do 9, pozycje druga , trzecia i czwarta od 0 do 10. Wszystkich mantys jest 9 · 10 · 10 · 10. Każdej pozycji mantysy dpowiadaj¸ a U − L + 1 = 2 − (−1) + 1 = 4 cechy. Wszystkich znormalizowanych liczb dodatnich jest 4 · 9 · 10 · 10 · 10. Tyle samo jest liczb ujemnych. Dodaj¸ ac jeszcze liczb¸e 0 (z zerami na wszystkich pozycjach mantysy)- otrzymujemy 2 · 4 · 9 · 10 · 10 · 10 + 1 = 72001 wszystkich różnych liczb znormalizowanych.

Rozumuj¸ ac analogicznie stwierdzamy, że w systemie zmiennoprzecinkowym (β t, L, U ) wyst¸epuje 2 ∗ (U − L + 1) ∗ (β − 1) ∗ β t−1 + 1 różnych liczb w postaci znormalizowanej.

System zmiennopozycyjny IEEE - 64 bitowy (podwójnej precyzji)

Jest to system (2, 52, −1023, 1024) obowi¸ azuj¸ acy od połowy lat 80 w wi¸ekszości aryt- metyk komputerów. Każda liczba dziesi¸etna zapisana w tym systemie ma format:

s ∗ (1 + f ) ∗ 2 e , gdzie s (sign) jest znakiem tej liczby ( 0 - liczba dodatnia, 1 - liczba ujemna ) f - mantys¸ a, e = b − 1023 wykładnikiem przesuni¸etym w prawo o 1023 pozycje (aby unikn¸ ać wykładników ujemnych).

Najwi¸eksza liczba zapisana w standarcie IEEE-64

(3)

1 +

5

X

i=1

2  1 2

 i

∗ 2 1023 ≈ 2 ∗ 2 1023 ≈ 10 308 Najmniejsza

[1 + 0] ∗ 2 −1022 ≈ 2.2 ∗ 10 −308 .

• dla 0 , b = 0, f = 0.

• dla ∓∞, b = 1 · · · 1, f = 1 · · · 1;

• b = 1 · · · 1, f 6= 1 · · · 1 wyst¸epuje jako NAN.

Analiza bł¸ edów w arytmetyce zmiennoprzecinkowej

Udowodnimy teraz twierdzenie Twierdzenie

Bł¸ ad ezwzgl¸edny reprezentacji zmiennoprzecinkowej (β, t, L, U ) wynosi

|x − f l(x)| ≤  β −t · β e dla obci¸ecia

1

2 β −t · β e dla zaokr¸ aglenia

gdzie po lewej sronie nierówności wyst¸e puje wartość bezwzgl¸ednego mi¸edzy wartości¸ a dokładn¸ a liczby a jej wartości¸ a w arytmetyce zmiennoprzecinkowej ”f l(.)” (floating po- int).

Dowód Postać dokładna liczby x:

x = (.d 1 d 2 d 3 . . . d t d t+1 d t+2 . . .) · β e =

X

i=1

d i β i

! β e

• Rozpatrujemy obci¸ecie. Wobec tego

f l(x) = (.d 1 d 2 d 3 . . . d t ) · β e =

t

X

i=1

d i β i

! β e

St¸ ad

β −e [x − f l(x)] =

X

i=t+1

d i

β i

(4)

Z przyj¸etego systemy zmiennoprzecinkowego wynika, że każda pozycja mantysy d i spełnia nerówność wi¸ec

β −e [x − f l(x)] = (β − 1)

X

i=t+1

d i β i =

X

i=t+1

β β i

X

i=t+1

1 β i = 1

β t = β −t czyli

|x − f l(x)| ≤ β −t · β e co mieliśmy wykazać

Zauważmy, że je˙sli x ≥ 0 to f l(x) < x, jeśli zaś x < 0 wtedy f l(x) > x.

Zajmijmy s¸e teraz zaokr¸ aglaniem liczb.

f l(x) =

(.d 1 d 2 d 3 . . . d t−1 d t ) · β e =  P t

i=1 d

i

β

i



β e jeśli d t+1 < β/2 (.d 1 d 2 d 3 . . . d t−1 [d t + 1]) · β e = 

1

β

t

+ P t i=1

d

i

β

i



β e jeśli d t+1 ≥ β/2 Jeśli d t+1 < β/2, to

β −e [x − f l(x)] ≤ β/2 − 1

β t+1 + (β − 1)

X

i=t+2

1

β i = β/2 − 1 β t+1 + 1

β t+1 = 1 2 β −t .

Jeśli d t+1 ≥ β/2 to

β −e [x − f l(x)]| =

X

i=t+1

d i β i − 1

β t

= 1 β t

X

i=t+1

d i β i ≤ 1

β t − β/2 β t+1 = 1

2 β −t Tym samym twierdzenie zostało udowodnione.

Teraz przeanalizujemy błedy wzgł¸edne reprezentacji liczb w arytmetyce zmiennoprze- cinkowej.

Najmniejsza liczba zapisana w tej reprezentacji jest równa 1/β ∗ β e . St¸ ad dla obcinania bł¸ ad wzgl¸edny jest ograniczony przez

|f l(x) − x|

x ≤ β −t · β e

β −1 · β e = β 1−t = η

Dla zaokr¸ aglania bł¸ ad wzgl¸edny jest równy połowie bł¸edu η i wynosi ε = 1

2 β 1−t

(5)

Jest to tzw. epsilon maszynowy lub jednostka zaokr¸ aglenia Dla standartu IEEE-64, w którym pracuje również OCTAVE

ε = 1

2 ∗ 2 1−52 = 2.2204e − 16.

Cytaty

Powiązane dokumenty

Definicja: Macierz diagonalnie dominująca to taka, dla której moduły elementów na diagonali są niemniejssze od sumy modułów pozostałych elementów w tym samym wierszu, tzn. |a ii |

Jeśli wszystkie współczynniki wielomianu są nieujemne, to nie ma on zer dodatnich.m.. Dziekuję za

Przejdź do kroku 2 jeśli nie jest spełniony warunek STOPu... Dziekuję za

Optymalny dobór węzłów interpolacji... Dziekuję za

Nie jest mo˙zliwe wyliczenie wszelkich mo˙zliwo´sci bł ˛ adzenia, ale mo˙zna charakteryzowa´c typy bł˛edów: fałszywe stwierdzenia, bł˛edne lub nie- kompletne dowody,

Zaprojektuj i przeprowadź eksperyment numeryczny pozwalający wyznaczyć najmniejszą liczbę dodatnią reprezentowaną dokładnie w arytmetykach podwójnej i

Program to zbiór deklaracji, czyli opisu obiektów, które b¸edziemy używać, oraz poleceń (instrukcji), czyli opisu akcji, które b¸edziemy wykonywać. Dost¸epnymi obiektami s¸

Macierze pierwszego rodzaju b¸edziemy oznaczć przez U, drugiego roodzaju