Arytmetyka komputerów wer. 1.5

Transkrypt

Arytmetyka komputerów wer. 1.5
Arytmetyka komputerów
wer. 1.5
Wojciech Myszka
19 pa¹dziernika 2011
Cz¦±¢ I
Liczby binarne i arytmetyka
komputerów
Arytmetyka komputerów
I
Zapis liczb
I
I
I
I
I
I
dwójkowy.
Kazda z liczb zapisywana jest za pomoc¡ cyfr 0 i 1.
Ukªad jest pozycyjny waga cyfry zalezy od miejsca,
w którym zostaªa ustawiona.
Najmniej znacz¡ce miejsca s¡ po stronie prawej. . .
1010 to 1 × 23 + 0 × 22 + 1 × 21 + 0 × 20 czyli 8 + 0 + 2 + 0 = 10
NB liczby parzyste maj¡ zero na ko«cu, nieparzyste 1.
Arytmetyka dwójkowa
I
I
I
I
I
I
0+0=0
1+0=0+1=1
1 + 1 = 10
1×1=1
1×0=0×1=0
0×0=0
bardzo prosta.
Operacje logiczne
(Podstawowe) operacje logiczne to suma logiczna (OR), iloczyn
logiczny (AND), negacja (NOT), róznica symetryczna (XOR)
OR
0
1
0
0
1
1
1
1
AND
0
1
0
0
0
1
0
1
XOR
0
1
0
0
1
1
1
0
Arytmetyka komputera
Arytmetyka klasyczna
Jeste±my przyzwyczajeni do nast¦puj¡cych rzeczy :
1.
Jezeli x 6= 0 to ∀a
a + x 6= a
Arytmetyka komputera
Arytmetyka klasyczna
Jeste±my przyzwyczajeni do nast¦puj¡cych rzeczy :
1.
Jezeli x 6= 0 to ∀a
a + x 6= a
2.
a + b + ··· + z = z + y + ··· + b + a
Arytmetyka komputera
Arytmetyka klasyczna
Jeste±my przyzwyczajeni do nast¦puj¡cych rzeczy :
1.
Jezeli x 6= 0 to ∀a
a + x 6= a
2.
a + b + ··· + z = z + y + ··· + b + a
3.
∀a, b ∈ < a < b ∃c : a < c < b
Arytmetyka komputera
Arytmetyka klasyczna
Jeste±my przyzwyczajeni do nast¦puj¡cych rzeczy :
1.
Jezeli x 6= 0 to ∀a
a + x 6= a
2.
a + b + ··· + z = z + y + ··· + b + a
3.
∀a, b ∈ < a < b ∃c : a < c < b
W arytmetyce komputerowej powyzsze zasady nie zawsze
obowi¡zuj¡!
Liczby zmiennoprzecinkowe
1. Arytmetyka
1.1
1.2
1.3
1.4
Liczby
Liczby
Liczby
Liczby
naturalne
caªkowite
wymierne
rzeczywiste
2. Komptery
2.1 Liczby caªkowite ( integer )
2.2 Liczby staªoprzecinkowe
2.3 Liczby zmiennoprzecinkowe
Liczby caªkowite I
I
Sytuacja dosy¢ klarowna.
I
Na n bitach mozemy zapisa¢ liczby caªkowite dodatnie z
zakresu od zera do 2n − 1.
I
Jest pewien problem z liczbami ujemnymi: trzeba
zarezerwowa¢ miejsce na znak.
I
Trzeba to tak zrobi¢, zeby podstawowe operacje
(dodawanie, odejmowanie i mnozenie,. . . ) byªy
wykonywane tak samo gdy argumenty s¡ dodatnie jak i
wtedy gdy s¡ ujemne.
I
Ukªad uzupeªnieniowy to zaªatwiª.
Liczby ujemne
1. Trzeba zarezerwowa¢ jeden bit na zapami¦tanie znaku!
2. Wariant najprostszy
3
00000011
3. Wariant najprostszy −3 10000011
Jest to zapis znak moduª
4. Ale jak dodawa¢ takie liczby?
Liczby ujemne
Tablica odejmowania:
− 0 1
0 0 1
1 1 0
(Zakªadamy, ze operujemy na liczbach czterobitowych!)
0011 − 1 = 0010
0010 − 1 = 0001
0001 − 1 = 0000
0000 − 1 = 1111
Zatem −1 to 1111 (czterobitowo!)
Liczby ujemne
Dokonajmy prostego sprawdzenia:
5 + (−1)
0 1 0 1
1 1 1 1
Liczby ujemne
Dokonajmy prostego sprawdzenia:
5 + (−1)
0 1 0 1
1 1 1 1
1 0 1 0 0
Dygresja
Liczby dziesi¦tne, dwucyfrowe:
3 3
9 9
Dygresja
Liczby dziesi¦tne, dwucyfrowe:
3 3
9 9
1 3 2
Negacja liczby
Mnemotechniczny algorytm negacji jest bardzo prosty:
negujemy wszytskie bity i powstaª¡ liczb¦ zwi¦kszamy o 1:
1 to 0001
negacje: 1110
zwi¦kszenie o 1: 1111
2 to 0010
negacja: 1101
zwi¦kszenie o 1: 1110
sprawdzenie 5 + (−2)
0 1 0 1
1 1 1 0
1 0 0 1 1
Liczby staªoprzecinkowe
1. Liczby w których na zapami¦tanie cz¦±ci caªkowitej
przeznacza si¦ kilka(na±cie/dziesi¡t) bitów
2. Na zapami¦tanie cz¦±ci uªamkowej równiez uzywa si¦
kilku(nastu?) bitów:
1 0 1 0 , 1 0 1 0
co odczytujemy jako:
1 ∗ 23 + 0 ∗ 22 + 1 ∗ 21 + 0 ∗ 20 + 1 ∗ 2−1 + 0 ∗ 2−2 + 1 ∗ 2−3 + 0 ∗ 2−4
lub 8 + 2 + 21 + 18 czyli 10,625
3. Uzywany bardzo rzadko ( nanse??)
4. Z matematycznego punktu widzenia s¡ to liczby wymierne
5. Jak w tej postaci zapisa¢ liczb¦ 1,1
Liczby zmiennoprzecinkowe I
1. S¡ to liczby zapisywane (kodowane) w sposób podobny do
zananego nam: c = 299792458 ∼ 3 ∗ 108 m/s
2. Czyli w postaci mantysa (2,99792458) plus wykªadnik 8,
zatem 2,99792458*108 albo inaczej 2,99792458 e8
3. W przypadku komputerów podstawa kodowania (tak
mantysy jak i wykªadnika) to 2!
4. Dodatkowo liczby zapisywane s¡ zawsze w postaci
znormalizowanej czyli takiej, ze cyfra przed przecinkiem
(kropk¡) dziesi¦tnym jest zawsze z zakresu mi¦dzy 1 a 9. (a
w ukªadzie dwójkowym zawsze jest równa 1!)
5. Na zapami¦tanie mantysy i wykªadnika przeznaczana jest
zawsze sko«czona liczba bitów.
Liczby zmiennoprzecinkowe II
6. Z matematycznego punktu widzenia s¡ to liczby wymierne.
7. Sposób zapisu liczb zmiennoprzecinkowych reguluje
standard IEEE-754.
Zgodnie ze standardem liczba zmiennoprzecinkowa zapisywana
jest tak:
I
Zakres liczb: ±1,18 · 10−38 do okoªo ±3,4 · 1038 .
I
Dokªadno±¢: 7 8 cyfr dziesi¦tnych.
Liczby zmiennoprzecinkowe III
I
Przypadki szczególne:
I
I
I
I
I
+0 wszystkie bity s¡ zerami
−0 bit znaku ustawiony, wszystkie bity s¡ zerami
liczby maªe (denormalized numbers) nie zakªada si¦
niezerowego pierwszego bitu mantysy
±∞ ustawione wszystkie bity wykªadnika, mantysa równa
zero (jako wynik dzielenia przez zero, na przykªad)
NaN (Not a Number) ustawione wszystkie bity wykª¡dnika,
mantysa rózna od zera.
Par¦ problemów
1. Zawsze(?) ograniczona liczba bitów przeznaczona na
zapami¦tanie liczby (ale znane s¡ specjalne programy,
które staraj¡ si¦ te ograniczenie przezwyci¦za¢).
2. Wynik dziaªa« arytmetycznych cz¦sto prowadzi do
powstania nadmiaru (czyli przekroczenia maksymalnej
dopuszczalnej warto±ci liczb).
3. Wi¦kszo±¢ liczb które (z przyzwyczajenia) traktujemy jako
dokªadne, nie ma dokªadnej reprezentacji dwójkowej (0,5
jest OK ale 0,1 juz nie).
Operacje na liczbach zmiennoprzecinkowych I
1. Mnozenie.
Jest proste: mnozymy mantysy i dodajemy wykªadniki.
1,33 e+3 ∗ 1,55 e+7 = 2,0615 e+10
Nast¦pnie trzeba wynik obci¡¢ do odpowiedniej liczby
miejsc znacz¡cych (w naszym przypadku niech to b¦d¡ trzy
cyfry) 2,06 e+10
W przyku liczb binarnych b¦dzie podobnie.
Uwaga: czasami moze zdarzy¢ si¦ problem: w wyniku
mnozenia liczba moze ulec denormalizacji
wówczas
trzeba j¡ znormalizowa¢, zaokr¡gli¢ i skorygowa¢
wykªadnik: 5,55 e+0 ∗ 6,33e+0 = 35,13 e+0 = 3,51 e+1
Operacje na liczbach zmiennoprzecinkowych II
2. Dzielenie.
Post¦pujemy analogicznie jak w przypadku mnozenie
(dzielimy mantysy, odejmujemy wykªadniki). W przypadku
denormalizacji post¦pujem jak wyzej
1,33 e+0/9,88 e+0 = 0,134615385 e+0 = 1,35 e−1
3. Dodawanie.
Sprawa nieco bardziej skomplikowana. Aby dodawa¢ liczby
zmiennoprzecinkowe trzeba je najpierw
zdenormalizowa¢ i doprowadzi¢ do równo±ci
wykªadników:
1,22 e+0 + 3,35 e − 4 = 1,22 e+0 + 0,000335 e+0 =
1,220335 e+0 = 1,22 e+0
a nast¦pnie zaokr¡gli¢ i znormalizowa¢. . .
Operacje na liczbach zmiennoprzecinkowych III
4. Odejmowanie.
Identycznie jak dodawanie.
Przykªady oblicze«
Na stronie [?] znale¹¢ mozna przykªadowe programy i wyniki ich
oblicze«.
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
5 0
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
5 0
2 1
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
5 0
2 1
1 0
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
5 0
2 1
1 0
0 1
Konwersje
Dziesi¦tny do dwójkowego
Liczby caªkowite:
Liczb¦ dzielimy przez dwa zapisuj¡c reszty z dzielenia:
10
5 0
2 1
1 0
0 1
Reszty z dzielenia zapisujemy od ko«ca otrzymuj¡c 1010
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
0 ,96
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
0 ,96
1 ,92
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
0 ,96
1 ,92
1 ,84
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
0 ,96
1 ,92
1 ,84
1 ,68
Konwersje
Dziesi¦tny do dwójkowego
Cz¦±¢ uªamkowa:
Liczb¦ mnozymy przez dwa i zapisujemy cz¦±¢ caªkowit¡:
,33
0 ,66
1 ,32
0 ,64
1 ,28
0 ,56
1 ,12
0 ,24
0 ,48
0 ,96
1 ,92
1 ,84
1 ,68
0,0101010001112 =0,32983398437510
Konwersje
Dwójkowy do dziesi¦tnego
Do zrobienia w domu!
Wnioski
1. Konwersja liczb dziesi¦tnych do dwójkowych cz¦sto
wprowadza bª¦dy.
2. Ograniczona liczba bitów powoduje, ze kazde dziaªanie
wykonywane jest z bª¦dem.
3. W przypadku wielokrotnego powtarzania jakiego±
obliczenia sprawa zaczyna mie¢ znaczenie. . .
Cz¦±¢ II
Bª¦dy numeryczne
Podstawowe de nicje
Wielko±¢ dowolna staªa matematyczna, wynik jakiej±
operacji matematycznej (dziaªania), pierwiastek
rozwi¡zywanego równania. π jest okre±lony
jako stosunek
√
obwodu okr¦giu do jego ±rednicy; 2 jest pierwiastkiem
równania kwadratowego X 2 − 2 = 0.
Warto±¢ dokªadna wielko±ci warto±¢ wynikaj¡ca wprost z
de nicji wielko±ci, nie obarczona zadnymi bª¦dami.
Warto±¢ przyblizona wielko±ci warto±¢ liczbowa uzyskana w
wyniku oblicze«. Zazwyczaj w wyniku oblicze« nie uzyskujemy
dokªadnej warto±ci.
Wielko±ci zyczne
Ci±nienie, temperatura, dªugo±¢, st¦zenie to przykªady
wielko±ci zycznych, które bardzo cz¦sto mierzymy .
Kazdy pomiar obarczony jest bª¦dem wynikaj¡cym
z dokªadno±ci uzytego narz¦dzia pomiarowego.
Warto±¢ dokªadna to temperatura w jakim± miejscu sali;
warto±¢ przyblizona to warto±¢ zmierzona jakim±
termometrem.
Obliczenia
I
Uzywamy komputera do dokonania jakich± oblicze«.
Obliczenia
I
Uzywamy komputera do dokonania jakich± oblicze«.
I
Komputer podaje wynik (a = 5,34273343) maj¡cy 8 cyfr po
przecinku.
Obliczenia
I
Uzywamy komputera do dokonania jakich± oblicze«.
I
Komputer podaje wynik (a = 5,34273343) maj¡cy 8 cyfr po
przecinku.
I
Czy mozemy powiedzie¢, ze wyznaczona liczba ma
wszystkie cyfry poprawne?, Czy rózni si¦ od warto±ci
dokªadnej o mniej niz 0,5 · 10−8 ?
Obliczenia
I
Uzywamy komputera do dokonania jakich± oblicze«.
I
Komputer podaje wynik (a = 5,34273343) maj¡cy 8 cyfr po
przecinku.
I
Czy mozemy powiedzie¢, ze wyznaczona liczba ma
wszystkie cyfry poprawne?, Czy rózni si¦ od warto±ci
dokªadnej o mniej niz 0,5 · 10−8 ?
I
A co z sytuacj¡, ze zastosowana metoda oblicze« jest maªo
dokªadna?
Bª¡d bezwzgl¦dny warto±ci przyblizonej I
Niech A b¦dzie warto±ci¡ dokªadn¡, a a warto±ci¡ przyblizon¡
pewnej wielko±ci. Bª¦dem bezwzgl¦dnym warto±ci
przyblizonej nazywamy kazd¡ liczb¦ ∆a speªniaj¡c¡ warunek:
|A − a| ≤ ∆a,
to znaczy tak¡ liczb¦, ze
a − ∆a ≤ A ≤ a + ∆a.
Warto±¢ przyblizona a i jej bª¡d bezwzgl¦dny ∆a wyznaczaj¡
przedziaª:
< a − ∆a; a + ∆a >,
do którego nalezy dokªadna warto±¢ A
Bª¡d bezwzgl¦dny nie jest okre±lony jednoznacznie!
Liczba przyblizona
Jezeli a jest warto±ci¡ przyblizon¡ dla warto±ci dokªadnej A,
obci¡zon¡ bª¦dem ∆a, to par¦ liczb ∆a, a zapisan¡ w postaci
∆a
a
b¦dziemy nazywali liczb¡ przyblizon¡ dla A.
π
Wiemy, ze π = 3,14159265 . . .. Warto±ci¡ przyblizon¡ π cz¦sto
uzywan¡ w rachunkach, jest liczba 3,14.
Jej bª¦dem bezwzgl¦dnym jest na przykªad liczba ∆a = 0,0016.
Dokªadna warto±¢ π jest zawarta mi¦dzy liczbami:
3,14 − 0,0016 ≤ π ≤ 3, 14 + 0,0016
to znaczy π znajduje si¦ w przedziale
< 3,1384; 3,1416 >
0,0016
Zatem mozemy zapisa¢ π = 3,14
Równo±¢ w przyblizeniu
α
β
Jezeli liczby przyblizone a i b s¡ takie, ze przedziaª
< a − α; a + α > jest zawarty w przedziale < b − β; b + β > to
β
α
mówimy, ze liczba a jest w przyblizeniu równa liczbie b.
α
β
Zapisujemy to a⇒b.
α
β
β
Z tego ze a jest w przyblizeniu równe b NIE WYNIKA, ze b jest
α
w przyblizeniu równe a!
Zaokr¡glanie liczb przyblizonych
α
Dla dowolnej liczby przyblizonej a i dowolnej liczby
rzeczywistej b zachodzi zwi¡zek:
α
α+|a−b|
a⇒
b
α+|a−b|
α
czyli a jest w przyblizeniu równe b
Zaokr¡glanie stosujemy wtedy, gdy wynik jakich± dziaªa« ma
α
0,0000027
zbyt wiele cyfr. Zast¦puj¡c liczb¦ a=3,14159 liczb¡ 3,14
mozemy oszacowa¢ bª¡d. Wynosi on
0,0000027 + |3,14159 − 3,14. Czyli: 0,0015927. Zatem:
0,0000027
0,0015927
3,14159⇒ 3,14
Zaokr¡glanie liczb przyblizonych
Jezeli β ≥ α, to:
α
β
a⇒b
Zatem
0,0015927
0,0016
3,14 ⇒ 3,14
Reguªy zaokr¡glania
I
Gdy wynik dziaªania arytmetycznego ma (za) duzo cyfr
mozemy odrzuci¢ ostatnie, zb¦dne cyfry (pami¦taj¡c o
zwi¦kszeniu bª¦du zaokr¡glenia).
I
Gdy pierwsz¡ odrzucon¡ cyfr¡ jest 0, 1, 2, 3, 4 cyfr
pozostawionych w warto±ci przyblizonej nie zmieniamy.
I
Jezeli pierwsz¡ odrzucon¡ cyfr¡ jest 5, 6, 7, 8, 9 do
pozostawionej cz¦±ci warto±ci przyblizonej dodajemy 1 na
ostatnim zostawianym miejscu dziesi¦tnym.
Taka zmiana liczby przyblizonej nazywa si¦ poprawnym
zaokr¡gleniem.
Dziaªania na liczbach przyblizonych
suma
α
β
α+β
a + b=a + b
Dziaªania na liczbach przyblizonych
suma
α
β
α+β
α
β
α+β
a + b=a + b
róznica
a − b=a − b
Dziaªania na liczbach przyblizonych
iloczyn
α
β
|a|β+|b|α+αβ
a · b⇒
ab
Dziaªania na liczbach przyblizonych
iloczyn
α
|a|β+|b|α+αβ
β
a · b⇒
ab
dzielenie
γ
a
a:b⇒
b
α β
gdzie
γ=
α + | ba |β
.
|b| − β
Dziaªania na liczbach przyblizonych
suma
1. Pierwszy najmniej korzystny przypadek:
a − α + b − β = (a + b) − (α + β)
2. Drugi najmniej korzystny przypadek:
a + α + b + β = (a + b) + (α + β)
Dziaªania na liczbach przyblizonych
suma
1. Pierwszy najmniej korzystny przypadek:
a − α + b − β = (a + b) − (α + β)
2. Drugi najmniej korzystny przypadek:
a + α + b + β = (a + b) + (α + β)
(Zadanie domowe: jak b¦dzie w przypadku róznicy? A w
przypadku iloczynu?)
Przykªad
Obliczy¢ warto±¢ wielomianu
w(x) = a0 x4 + a1 x3 + a2 x2 + a3 x + a4
dla x = 2,1.
Przyjmijmy, ze wspóªczynniki wielomianu s¡ liczbami
dokªadnymi i równaj¡ si¦:
a0 = 2,3, a1 = 3, a2 = −4,5, a3 = 7,2, a4 = −0, 1
Najpierw obliczenia wykonamy z dokªadno±ci¡ do dwóch miejsc
po przecinku, a pó¹niej z dokªadno±ci¡ do czterech.
Przykªad cd
dwie cyfry
0,0
0,0
0,00
x2 =2,1 × 2,1=4,41
0,00
0,0
0,000
0,001
x3 =4, 41 × 2, 1=9,261⇒9,26
0,001
0,0
0,0021
0,0061
0,01403
0,01903
x4 =9,26 × 2,1⇒19,446 ⇒19,45
0,0
0,0061
0,02
2,3 × x4 =2,3 × 19,45 ⇒44,735 ⇒44,74 ⇒44,74
0,001
0
0,003
3x3 =3 × 9,26 ⇒27,78
0,0
0,00
0,000
0,005
−4,5x2 =−4,5 × 4,41⇒−19,845⇒−19,85
0,0
0,0
0,00
7,2x =7,2 × 2,1⇒15,12
suma:
0,02
0,003
0,005
0,00
0,0
0,028
w(2,1) =44,74 + 27,78 −19,85 + 15,12−0,1=67,69
Przykªad cd
cztery cyfry
0,0
0,0
0,00
0,0
0,00
x2 =2,1 × 2,1=4,41
0,000
x3 =4, 41 × 2, 1=9,261
0,000
0,0
0,0000
x4 =9,261 × 2,1=19,4481
0,0
0,0000
0,0000
0,00003
2,3 × x4 =2,3 × 19,4481=44,73063⇒44,7306
0,000
0
0,000
3x3 =3 × 9,261=27,783
0,0
0,00
0,000
−4,5x2 =−4,5 × 4,41=−19,845
0,0
0,0
0,00
7,2x =7,2 × 2,1=15,12
suma
0,00003
0,000
0,000
0,00
0,0
0,00003
w(2,1) =44,7306 + 27,783 − 19,845 + 15,12 − 0,1=67,6886
Przykªad cd
Zaªózmy teraz, ze wspóªczynniki obarczone s¡ bª¦dami i równaj¡ si¦:
0,01
0
0,02
0,02
0,01
a0 =2,3, a1 =3, a2 =−4,5, a3 =7,2, a4 =−0, 1
dwie cyfry
0,42
w(2,1) ⇒67,69
cztery cyfry
0,3678
0,3692
0,37
w(2,1) ⇒67,6886⇒67,69⇒67,69
Prowadzenie oblicze« z dokªadno±ci¡ do czterech cyfr po przecinku praktycznie nie
zwi¦kszyªo dokªadno±ci!
Wynika to st¡d, ze dane obarczone s¡ duzym bª¦dem (juz druga
cyfra po przecinku nie jest dokªadna).
Literatura dodatkowa I
John Bayko.
Great microprocessors of the past and present.
http://jbayko.sasktelwebsite.net/cpu.html, 2003.
Jeremy G. Butler.
Information technology history - outline.
http://www.tcf.ua.edu/AZ/ITHistoryOutline.htm, 1998.
David Goldberg.
What every computer scientist should know about
Floating-Point arithmetic.
Numerical Computation Guide. Sun Microsystems, Palo Alto,
2000.
Literatura dodatkowa II
Dost¦pne jako: http://docs.sun.com/source/806-3568/
ncg_goldberg.html#674.
Witold Komorowski.
Architektura Minikomputerow.
Wydawnictwa Naukowo-Techniczne, Warszawa, 1980.
Witold Komorowski.
Architektura Komputerów.
Wydawnictwo Politechniki Wrocªawskiej, Warszawa, 1986.
Witold Komorowski.
Architektura Komputerow: Skrypt.
Politechnika Wrocªawska, Wrocªaw, 1987.
Literatura dodatkowa III
Witold Komorowski.
Instrumenta Computatoria: [wybrane Architektury
Komputerów].
"Helion", Gliwice, 2000.
Witold Komorowski.
Krótki Kurs Architektury I Organizacji Komputerów.
Mikom, Warszawa, 2004.
Wojciech Myszka.
Przykªadowe programiki pokazuj¡ce problemy numeryczne.
Dost¦pne pod adresem
http://www.immt.pwr.wroc.pl/~myszka/TI/kod.html,
pa¹dziernik 2008.
Literatura dodatkowa IV
Roman Zuber.
Metody numeryczne i programowanie.
WSziP, 1975.
fragmenty:
http://www.immt.pwr.wroc.pl/~myszka/TI/zuber.pdf
oraz
http://www.immt.pwr.wroc.pl/~myszka/TI/zuber1.pdf.
Kolofon
Prezentacja zªozona w systemie LATEX 2ε z wykorzystaniem klasy
beamer. Uzyto fontu MS Trebuchet. Ilustracja na stronie
tytuªowej jest fragmentem zdjecia, przedstawiaj¡cego 8-bitowy
mikrokontroler Intel 8742, zawieraj¡cy w jednym ukªadzie CPU
o szybko±ci 12 MHz, 128 bajtów RAM, 2048 bajtów EPROM oraz
ukªady wej±cia/wyj±cia.
Sameli, Ioan. 2006. Old processor. Maj 25. Flickr.
http://www.flickr.com/photos/biwook/153062645/.

Podobne dokumenty