1
Techniki Obliczeniowe i Symulacyjne
Reprezentacje liczb, błędy obliczeń, uwarunkowanie zadań
dr inż. Dariusz Borkowski
2011.02.28
Ćwiczenie 1 (1 pkt)
Obliczenie liczby bitów mantysy. Napisz w Matlabie program, który wyznaczy liczbę bitów mantysy
m liczby zmiennoprzecinkowej x typu double oraz dokładność obliczeń w Matlabie (zmienna systemowa
eps). W tym celu należy skonstruować ciąg:
1
1
,
1,
1,2,3,...
2
n
n
n
ε
ε
ε
+
=
=
=
oraz przerwać obliczenia kiedy nie jest spełniony warunek:
1
1
ε
+ >
definiującego eps. Liczba wykonanych dzieleń to odpowiada długości mantysy.
Ćwiczenie 2 (1 pkt)
Obliczenie liczby bitów wykładnka. Napisz w Matlabie program, który wyznaczy liczbę bitów e
max
wykładnika e liczby zmiennoprzecinkowej x typu double. W tym celu należy skonstruować ciąg:
1
1
2 ,
,
1,2,3,...,
n
n
x
x
x
n
nmax
+
=
=
=
realmin
aż do momentu niespełnienia warunku:
n
x
<
realmax
gdzie realmin i realmax to zmienne systemowe Matlaba. Powinien być spełniony warunek:
max
2
nmax
e
=
Ćwiczenie 3 (1 pkt)
Zapis bitowy liczb zmiennoprzecinkowych. Wykorzystując funkcje dec2bin() oraz strcat() napisz
w Matlabie program, który pokaże zapis binarny następujących liczb:
liczba
jej binarna reprezentacja
seeeeeeeeeeemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
0
0000000000000000000000000000000000000000000000000000000000000000
eps
…
1
0011111111110000000000000000000000000000000000000000000000000000
1+eps
…
1+eps/2
…
100+100eps/2
…
realmax
…
realmean
…
0.5e-308
…
1e-308
…
2e-308
…
4e-308
…
8e-308
…
2e-324
0000000000000000000000000000000000000000000000000000000000000000
Ćwiczenie 4 (2 pkt)
Uwarunkowanie zadania obliczeniowego – pierwiastki równania kwadratowego.
Napisz w Matlabie program obliczający pierwiastki wielomianu drugiego rzędu:
y=ax
2
bxc ,
1 x
1,2
1
=
−
b±
b
2
−
4ac
2a
,
2 x
1,2
2
=
−
2c
b±
b
2
−
4ac
na podstawie wzorów 1) i 2). Przyjmij a=1, b=2, c=1. Oblicz i wyświetl pierwiastki x
1
i x
2
na tle funkcji
y=f(x) dla obu wzorów. Następnie przyjmij że wartość b jest zaburzona o 1%, czyli b’=b(1+
ε
),
ε
=0.01,
oraz oblicz i wyświetl pierwiastki x
1
’ i x
2
’, ponownie dla obu wzorów. Oblicz uwarunkowanie zadania
obliczeniowego w każdym przypadku:
'
1,2
1,2
1,2
1,2
'
x
x
x
x
cond
b b
b
−
=
−
Co się stanie jeśli
0.01
ε = −
? Sprawdź czy zadanie wyznaczania pierwiastków równania z wzoru (1) jest
dobrze uwarunkowane dla wartości a=1, b=2, c=0,01.