Komórki
3+5i 'Karolina'
nazwa Antoine
1 3 5
6.95464
'chloroform'
-1170.966
7 9 25
226.232
Komórka może zawierać dane dowolnego typu. Tablica złożona z komórek
nazywa się tablicą komórkową.
Tworzenie tablic komórek (1)
" za pomocą instrukcji przypisania poprzez indeksowanie
" komórek
Komórka rozróżnia pojemnik
" zawartości
danych od jego zawartości.
" stosując funkcję cell
C (1,1) = {3+5i}; % indeksowanie komórek nawiasy okrągłe
C (1,2) = {'Karolina'};
C (2,1) = {[1 3 5; 7 9 25]};
C (2,2) = {struct ('nazwa', 'chloroform', 'Antoine', [6.95464; -1170.966; 226.232])};
C{1,1} = 3+5i; % indeksowanie zawartości nawiasy klamrowe
C{2,1} = [1 3 5; 7 9 25];
C{2,2} = struct ('nazwa', 'chloroform', 'Antoine', [6.95464; -1170.966; 226.232]);
C{1,2} = 'Karolina';
Tworzenie tablic komórek (2)
C = size (m); - tworzy tablicę komórek m m pustych macierzy
C = size (m, n); - tworzy tablicę komórek m n pustych macierzy
Wewnątrz nawiasów klamrowych spacje
i przecinki oznaczają odstępy pomiędzy Za pomocą indeksów można
kolumnami, zaś średniki pomiędzy kasować wiersze lub kolumny
wierszami: tablicy komórek:
D = {[1 2] [3 4]; [5 6] [7 8]}; D ( : , 1) = [ ];
1 2 3 4
3 4
5 6 7 8
7 8
Funkcje celldisp i cellplot
celldisp (C) wyświetlana ekranie
cellplot (C) rysuje schemat
zawartość komórek
tablicy komórek C
C{1,1} =
3.0000 + 5.0000i
C{2,1} =
3+5i Karolina
1 3 5
7 9 25
C{1,2} =
Karolina
C{2,2} =
nazwa: 'chloroform'
Antoine: [3x1 double]
Podstawowe funkcje graficzne
plot kreśli na płaszczyznie linię zadaną przez pary wektorów
plot3 kreśli w przestrzeni linię zadaną przez trójki wektorów
hold określa czy nowe obiekty graficzne są dodawane do bieżącego
wykresu czy też zastępują one istniejące obiekty
grid dodaje lub usuwa linie siatki na wykresach
loglog tworzy wykres ze skalą logarytmiczną na obu osiach
semilogx tworzy wykres ze skalą logarytmiczną na osi x
semilogy tworzy wykres ze skalą logarytmiczną na osi y
subplot dzieli okno graficzne na m n podokien i umieszcza w nich
wygenerowane wykresy
Funkcja plot (1)
Cieplo wlasciwe gazu idealnego cp=a+bT+cT2+dT3
220
benzen
200
metanol
180
160
140
120
100
80
60
40
20
100 200 300 400 500 600 700 800 900 1000
temperatura [K]
p
c [kJ/(kmol K)]
Funkcja plot (1)
wspbenzen = [-36.22 48.475e-2 -31.57e-5 77.62e-9]; Współczynniki a, b, c i d
wspmetanol = [19.0 9.152e-2 -1.22e-5 -8.039e-9]; równania
2 3
T = linspace (173, 1000, 100);
cp = a + bT + cT + dT
cpb = polyval (fliplr(wspbenzen), T);
cpm = polyval (fliplr(wspmetanol), T);
plot (T, cpb, T, cpm)
title ('Cieplo wlasciwe gazu idealnego c_p=a+bT+cT^2+dT^3')
xlabel ('temperatura [K]')
ylabel ('c_p [kJ/(kmol K)]')
legend ('benzen', 'metanol', 'Location', 'NorthWest')
plot (X1, Y1, X2, Y2, ... ) tworzy wykresy linii o współrzędnych zadanych
przez odpowiadające sobie pary wektorów
Opis wykresu
legend ('opis1', 'opis2', ... ); dołącza opisy linii i znaczników znajdujących
się na wykresie
legend ( ... , 'Location', 'położenie'); dołącza opisy linii i znaczników oraz
umieszcza legendę w podanym
miejscu wykresu
title ('łańcuch') dodaje tytuł wykresu
North
xlabel ('łańcuch') dodaje opis osi poziomej
South
ylabel ('łańcuch') dodaje opis osi pionowej
East
West
Uwaga: Opisy mogą zawierać indeksy NortEast
górne i dolne. Tworzy się je poprzedzając
NortWest
indeks górny znakiem ^, a indeks dolny
SouthEast
znakiem _.
SouthWest
Funkcja plot (2)
t = [100 125 150 175 183]
H = [558 531 502 460 433]
p = polyfit (t, H, 2)
Latent heat of vaporisation of aniline
ta = 100:1:183; 580
Ha = polyval (p, ta);
560
plot (ta, Ha , t, H, 'ko')
540
520
500
480
460
440
420
90 100 110 120 130 140 150 160 170 180 190
temperature [C]
heat of vaporisation [kJ/kg]
Funkcja plot (3)
plot (X1, Y1, SpecLin, ... ) tworzy wykresy linii o współrzędnych zadanych
przez odpowiadające sobie pary wektorów oraz
stylu określonym w specyfikacji SpecLin.
SpecLin określa kolor oraz typ linii i kształt
znaczników
Kolor Typ linii Kształt znacznika
y żółty - ciągła (domyślny) +
m purpurowy -- przerywana o
c zielononiebieski : kropkowana *
r czerwony -. kreskowo-kropkowa x
g zielony .
b niebieski ^, v, <, > trójkąty
w biały s kwadrat
k czarny d romb
Funkcje plot3 i grid (1)
t = linspace(0, 6*pi, 100);
x = cos(t);
y = sin(t);
z = t;
20
plot3(x,y,z)
grid on
15
10
5
0
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-1
Funkcje plot3 i grid (2)
plot3 (X1, Y1, X2, Y2, ... ) tworzy wykresy linii w przestrzeni o współrzędnych
zadanych przez odpowiadające sobie pary wektorów
plot3 (X1, Y1, SpecLin, ... ) tworzy wykresy linii w przestrzeni o współrzędnych
zadanych przez odpowiadające sobie pary wektorów
oraz stylu określonym w specyfikacji SpecLin.
SpecLin określa kolor oraz typ linii i kształt
znaczników
grid
dodaje lub usuwa linie siatki z bieżących osi na wykresach dwu i trójwymiarowych
grid on dodaje
grid off usuwa
Funkcja loglog
50
10
x = logspace (-1, 2, 25);
40
loglog (x, exp (x), '-s')
10
grid on
30
10
20
10
logspace (a, b, n )
10
10
tworzy wektor o n elementach
rozmieszczonych logarytmicznie
0
10
pomiędzy elementami 10a i 10b.
-1 0 1 2
10 10 10 10
loglog (X1, Y1, SpecLin, ... ) tworzy wykresy z dziesiętną skalą logarytmiczną
na obu osiach współrzędnych oraz stylu
określonym w specyfikacji SpecLin.
Funkcje semilogx oraz semilogy
10
10
x = logspace (-1, 2, 25);
8
10
semilogy (x, 10.^x)
6
grid on 10
4
10
2
10
0
10
0 2 4 6 8 10
semilogx (X1, Y1, SpecLin, ... )
semilogy (X1, Y1, SpecLin, ... )
tworzy wykresy z dziesiętną skalą logarytmiczną odpowiednio na osi x oraz y
w stylu określonym w specyfikacji SpecLin.
Funkcja subplot
1
x = 0:0.01:3*pi;
subplot(2, 1, 1)
0
plot(x, sin(x), [0 10], [0 0], 'k')
-1
0 2 4 6 8 10
subplot(2, 1, 2)
1
plot(x, cos(x), [0 10], [0 0], 'k')
0
-1
0 2 4 6 8 10
subplot (m, n, p) dzieli okno graficzne na m n podokien i umieszcza w nich
wygenerowane wykresy. Podokna liczone są wierszami.
Parametr p określa okno w którym ma być umieszczony
wykres.
Wykresy siatkowe i powierzchniowe (1)
0 1 2 3 4
-4
0 1 2 3 4
-2
0 1 2 3 4
X =
0 1 2 3 4
0
y
0 1 2 3 4
2
-4 -4 -4 -4 -4
-2 -2 -2 -2 -2
4
0
1 2 3 4
0 0 0 0 0
Y =
x = 0:4;
x
2 2 2 2 2
y = -4:2:4;
[X, Y] = meshgrid (x, y);
4 4 4 4 4
[X, Y] = meshgrid (x, y) przekształca dziedzinę daną przez wektory x oraz y
w tablice X i Y. Wiersze tablicy X są kopiami wektora x,
zaś kolumny wektora Y są kopiami wektora y.
Wykresy siatkowe i powierzchniowe (2)
2
x = linspace (-pi/2, pi/2, 50);
1.5
y = x;
1
[X, Y] = meshgrid (x, y);
Z = sin (X.^2) + sin (Y.^2);
0.5
mesh (x, y, Z)
0
2
2
1
0
0
mesh (X, Y, Z)
-1
-2
-2
mesh (x, y, Z) rysuje powierzchnie siatkowe w przestrzeni. Siatkę dla zmiennych
niezależnych reprezentują wektory (albo tablice) x i y, natomiast
wartości funkcji dla punktów siatki podaje tablica Z.
Wykresy siatkowe i powierzchniowe (3)
2
x = linspace (-pi/2, pi/2, 50);
1.5
y = x;
1
[X, Y] = meshgrid (x, y);
Z = sin (X.^2) + sin (Y.^2);
0.5
surf (x, y, Z)
0
2
2
1
0
0
surf (X, Y, Z)
-1
-2
-2
surf (x, y, Z) rysuje powierzchnie w przestrzeni. Siatkę dla zmiennych niezależnych
reprezentują wektory (albo tablice) x i y, natomiast wartości funkcji
dla punktów siatki podaje tablica Z.
Wykresy siatkowe i powierzchniowe (4)
2
1.5
1
2
0.5
0
1
2
2
2
1
0 1
0
0
-1 2
0
-2
-2
1
0
-1
-1
-2
-2
view (-60, 50)
view (azymut, kąt_podniesienia) określa punkt obserwacyjny. Azymut jest
poziomym obrotem wokół osi z mierzonym
w stopniach od ujemnej półosi y. Kąt podniesienia
jest mierzony w stopniach od płaszczyzny xy.
Wykresy siatkowe i powierzchniowe (5)
z
środek
punkt obserwacyjny
prostopadłościanu
wykresu
y
x
azymut
kąt podniesienia
-y
view (azymut, kąt_podniesienia) określa punkt obserwacyjny poprzez specyfikację
azymutu i kąta podniesienia
view ([azymut, kąt_podniesienia]) określa punkt obserwacyjny poprzez specyfikację
azymutu i kąta podniesienia
view ([x, y, z]) określa punkt obserwacyjny poprzez podanie jego współrzędnych
kartezjańskich. Odległość punktu (x, y, z) od środka
prostopadłościanu wykresu jest ignorowana.
Cyfry znaczące
Za ostatnią cyfrę znaczącą
przyjmujemy wartość równą
połowie najmniejszej
podziałki skali przyrządu
pomiarowego
48.5 - 3 cyfry znaczące
87324.5 - 6 cyfr znaczących
Uwaga: Nie zawsze zera są cyframi znaczącymi
45300
0.0001843
Ile cyfr znaczących?
4 cyfry
znaczące
Konieczna notacja naukowa:
służą do lokalizacji 4.53*104 - 3 cyfr znacz.
kropki dziesiętnej
4.530*104 - 4 cyfr znacz.
4.5300*104 - 5 cyfr znacz.
Tarcza strzelnicza
nieprecyzyjność
- odnosi się do
wielkości
rozrzutu
niedokładność
- systematyczne
odchylenie od
prawdziwej
wartości
Dokładność i precyzja
Błędy związane z pomiarami i obliczeniami można
scharakteryzować ze względu na ich
" dokładność - określa jak blisko mierzone lub
obliczone wartości są zgodne z
prawdziwą wartością
" precyzja - określa jak blisko siebie znajdują się
obliczone lub zmierzone punkty
Niedokładność jak i nieprecyzyjność będziemy określali
wspólnym terminem: błąd.
Definicje błędów
Błąd bezwzględny:
Et = wartość rzeczywista - przybliżenie
Błąd względny:
błąd bezwzględny
et = -------------------------
wartość rzeczywista
albo
błąd bezwzględny
et = ------------------------- * 100 %
wartość rzeczywista
Przykład: Obliczanie błędów
Mierząc długość mostu oraz grubość jednej z jego
belek otrzymaliśmy 9999 cm i 9 cm. Określić błędy
bezwzględne i względne jeśli rzeczywiste wymiary
wynoszą odpowiednio 10000 cm i 10 cm.
most belka
Et =10000 cm - 9999 cm =1cm Et =10 cm - 9 cm =1cm
1cm 1cm
t = *100% = 0.01% t = *100% =10%
10000 cm 10 cm
Pytanie: Skąd wziąć rzeczywiste wartości?
Odpowiedz: Na ogół nie ma takiej możliwości
Alternatywne podejście
Zamiast wartości rzeczywistej stosujemy najlepsze
przybliżenie nieznanej wartości.
Przybliżony błąd względny:
przybliżony błąd bezwzględny
ea = --------------------------------------
przybliżenie
albo
przybliżony błąd bezwzględny
ea = -------------------------------------- * 100 %
przybliżenie
Problem z przybliżonym błędem bezwzględnym
Jak określić przybliżony błąd bezwzględny gdy nie znamy
wartości rzeczywistej?
Często mamy do czynienia z obliczeniami iteracyjnymi w
których bieżące przybliżenie jest wyznaczane na podstawie
poprzedniego przybliżenia. Mamy nadzieję, że kolejne
przybliżenia są coraz lepsze. W takim przypadku możemy
przyjąć:
bieżące przybliżenie - poprzednie przybliżenie
ea = -------------------------------------------------------
bierzące przybliżenie
Kryterium zakończenia obliczeń iteracyjnych
a < s
es - pewna zadana wartość
Jeśli
s = 0.510-n
oraz spełnione jest kryterium
a < s
to otrzymany wynik jest poprawny z dokładnością co
najmniej do n cyfr znaczących.
(Scarborough, 1966)
Przykład: Oszacowanie błędu dla obliczeń iteracyjnych
x2 x3 xn
(szereg Maclaurina)
ex =1+ x + + +...+ +...
2! 3! n!
Obliczyć przybliżone wartości e0.5 zaczynając od
pierwszego wyrazu szeregu i dodając kolejno następne
wyrazy tak długo aż otrzymany wynik będzie miał 3 cyfry
znaczące. Rzeczywista wartość e0.5 = 1.648721... .
Rozwiązanie:
es = 0.510-3 = 0.0005 = 0.05 %
pierwsze przybliżenie: e0.5 = 1
drugie przybliżenie: e0.5 = 1 + 0.5 = 1.5
Błędy względne dla drugiego przybliżenia
1.648721-1.5
t = 100% = 9.02%
1.648721
1.5 -1
a = 100% = 33.3%
1.5
Ponieważ
a ł s = 0.05%
x2
więc dodajemy następny składnik i powtarzamy
2!
obliczenia.
Wyniki obliczeń
Skladnik Wynik t (%) a (%)
1 1 39.3 -
2 1.5 9.02 33.3
3 1.625 1.44 7.69
4 1.645833333 0.175 1.27
5 1.648437500 0.0172 0.158
6 1.648697917 0.00142 0.0158
Po wzięciu 6 składników przybliżony błąd względny
jest mniejszy od 0.05 %. Otrzymany wynik ma więcej
cyfr znaczących niż 3 (raczej 5).
rzeczywista wartość e0.5 = 1.648721...
Błędy zaokrąglenia
Powstają gdyż komputery mogą pamiętać tylko
ustaloną, skończoną liczbę cyfr znaczących.
p, e, nie mogą być pamiętane dokładnie.
7
Dodatkowo, ponieważ komputery używają systemu
dwójkowego, więc nie wszystkie ułamki z układu
dziesiętnego mają dokładne przedstawienie
Przykłady zaokrąglania liczb siedmiocyfrowych do czterech cyfr po kropce
0.1735499 0.1735
0.9999500 1.0000
0.4321409 0.4321
Notacja pozycyjna
6 4 0 9
9 1 = 9
| | | |
0 10 = 0
103 102 101 100
4 100 = 400
6 1000 = 6000
6409
6103 + 4102 + 0101 + 9100 = 6409
System dwójkowy
1 0 1 1 0 1 1 1 = 1
0 2 = 0
| | | | | |
1 4 = 4
25 24 23 22 21 20
1 8 = 8
0 16 = 0
1 32 = 32
45
125 + 024 +123 +122 + 021 +120 = 45
Liczby całkowite
Przedstawienie dziesiętnej liczby całkowitej -45
na 8 bitowym komputerze metodą znakowanej
wartości bezwzględnej:
1 0 1 0 1 1 0 1
Znak
liczba
0 = +
1 = -
Liczby zmienno-pozycyjne
wykładnik
mbw
mantysa
podstawa
systemu
liczbowego
Przykład:
Liczba 156.78 w zmienno-pozycyjnym systemie
dziesiętnym:
0.15658103
Sposób pamiętania liczb zmienno-pozycyjnych
znak
wykładnika
mantysa
znak
liczby
wykładnik
Normalizacja (1)
Przykład:
Niech liczba 1/34 =0.029411765... będzie pamiętana
w zmienno-pozycyjnym systemie dziesiętnym, który
dopuszcza tylko 4 miejsca znaczące:
0.0294100
bezużyteczne
Strata cyfry
zero
znaczącej
Normalizacja (2)
Aby usunąć poprzedzające liczbę zera, normalizujemy
ją:
0.0294100 0.294110-1
Zyskaliśmy jedną
cyfrę znaczącą
Konsekwencje normalizacji
Wartość bezwzględna mantysy jest ograniczona:
1
Ł m <1
b
mbw
b - podstawa systemu liczbowego
Przykład
0.1Ł m <1
dla systemu dziesiętnego:
dla systemu dwójkowego:
0.5 Ł m <1
Mantysa posiada tylko skończoną liczbę cyfr znaczących,
a więc wprowadzany jest błąd zaokrąglenia.
Przykład: Hipotetyczny zbiór liczb zmienno-pozycyjnych
0 1 1 1 1 0 0
znak liczby
mantysa
znak wykładnika
Wartość
bezwzględna
wykładnika
znak:
0 = +
1 = -
Najmniejsza możliwa liczba dodatnia
wykładnik
znak wykładnika
mantysa
znak liczby
0 1 1 1 1 0 0
21 20 2-1 2-2 2-3
wykładnik: - (1 21 + 1 20) = -3
mantysa: 1 2-1 + 0 2-2 + 0 2-3 = 0.5
najmniejsza liczba: - 0.5 2-3 = 0.0625
Chociaż mniejsze mantysy są możliwe (np. 000, 001, 010)
1
używa się wartości 100 z powodu ograniczeń nałożonych
Ł m <1
przez normalizację. 2
Kolejne liczby (poczynając od najmniejszej)
otrzymane przez zwiększanie mantysy
znak liczby
znak wykładnika
0111100 = ( 1 2-1 + 0 2-2 + 0 2-3 ) 2-3 = (0.0625)10
0111101 = ( 1 2-1 + 0 2-2 + 1 2-3 ) 2-3 = (0.078125)10
0111110 = ( 1 2-1 + 1 2-2 + 0 2-3 ) 2-3 = (0.093750)10
0111111 = ( 1 2-1 + 1 2-2 + 1 2-3 ) 2-3 = (0.109375)10
Odpowiadające tym liczbom binarnym liczby dziesiętne są
oddalone od siebie o 0.015625.
Aby otrzymać następną, większą liczbę
" zwiększamy wykładnik z (11)2 do (10)2
(wykładnik jest ujemny więc zmniejszamy
jego wartość bezwzględną z (11)2 do (10)2
" zmniejszamy mantysę do jej najmniejszej
wartości (100)2
0110100 = ( 1 2-1 + 0 2-2 + 0 2-3 ) 2-2 = (0.125000)10
Liczba ta jest nadal oddalona od poprzedniej o 0.015625.
Kolejne liczby otrzymane przez zwiększanie
mantysy
0110101 = ( 1 2-1 + 0 2-2 + 1 2-3 ) 2-2 = (0.156250)10
0110110 = ( 1 2-1 + 1 2-2 + 0 2-3 ) 2-2 = (0.187500)10
0110111 = ( 1 2-1 + 1 2-2 + 1 2-3 ) 2-2 = (0.218750)10
Teraz gdy zwiększamy mantysę odstęp pomiędzy liczbami
zwiększył się do 0.03125. Ten wzór zmian powtarza się aż
do osiągnięcia największej możliwej liczby
0011111 = ( 1 2-1 + 1 2-2 + 1 2-3 ) 2-3 = (7.0)10
Własności reprezentacji zmiennopozycyjnej
nadmiar
0
7
Dx
dziura
niedomiaru
1. zakres wielkości, które mogą być reprezentowane jest ograniczony
2. tylko skończona ilość wielkości może być reprezentowana wewnątrz
zakresu
3. przedział Dx pomiędzy liczbami wzrasta gdy rosną wartości liczb
Największa liczba zmiennoprzecinkowa Najmniejsza liczba zmiennoprzecinkowa
1.797693134862316e+308 2.225073858507201e-308
Ad. 2
Liczby niewymiernie nie mogą być reprezentowane dokładnie.
Liczby wymiernie, które nie pasują ściśle do jednej z wartości z dopuszczalnego
zbioru również nie mogą być reprezentowane dokładnie
Błąd wprowadzony w tych przypadkach przez aproksymację nazywa się błędem
kwantyzacji.
Ą = 3.1415926535...
8
Sposoby aproksymacji:
obcięcie
" obcięcie
Ą 3.141592
" zaokrąglenie
Ą 3.141593
zaokrąglenie
Błąd bezwzględny
" obcięcia Et = 0.00000065...
" zaokrąglenia Et = 0.00000035...
Ad. 3 (a)
Ze wzrostem wartości liczby reprezentacja zmiennopozycyjna zachowuje ilość
cyfr znaczących. Błąd kwantyzacji jest jednak proporcjonalny do wartości
reprezentowanej liczby.
Dx Dx
e
Ł e Ł
Dla obcięcia: Dla zaokrąglenia:
x x 2
gdzie e jest tzw. epsylon maszynowym, który może być obliczony:
e = b1-t
gdzie b podstawa układu liczbowgo, zaś t ilość cyfr znaczących mantysy
Dla naszego hipotetycznego systemu zmiennopozycyjnego b = 2 oraz t = 3.
Zatem
e = 21-3 = 0.25
Ad. 3 (b)
Skrypt Matlaba do określenia epsilon maszynowego:
epsilon = 1.0; eps funkcja zwracająca
while epsilon+1.0>1.0 epsilon maszynowe
epsilon = epsilon/2;
end
epsilon = epsilon*2
Dla liczb podwójnej precyzji: 2.220446049250313e-016
Liczby rzeczywiste podwójnej precyzji mają około 15 16 cyfr znaczących
i zakres wartości w przybliżeniu od 10-308 do 10308.
Dla liczb pojedynczej precyzji: 1.1920929e-007
Liczby rzeczywiste pojedynczej precyzji mają około 7 cyfr znaczących
i zakres wartości w przybliżeniu od 10-38 do 1039.
Arytmetyka liczb komputerowych (1)
Założenia: 4-cyfrowa mantysa i 1-cyfrowy wykładnik
Dodawanie
0.1557101 0.1557101
0.438110-1 0.004381101
---------------
0.160081101 0.1600101 (obcięcie)
Dodawanie dużej i małej liczby
4000 0.4000 104
0.0010 0.0000001104
-----------------
0.4000001104 0.4000104 (obcięcie)
>> y = 10^16 + 1
Tak jak byśmy nie wykonywali dodawania!
y =
1.000000000000000e+016
Arytmetyka liczb komputerowych (2)
Odejmowanie
0.3641102
-0.2686102
---------------
0.0995102 0.9550102 (normalizacja dodaje na końcu nieznaczące zero)
Odejmowanie bliskich wielkości
0.7642103
-0.7641103
---------------
0.0001103 0.1000100 (normalizacja dodaje trzy nieznaczące zera)
Taka utrata cyfr znaczących wprowadza istotny błąd gdyż kolejne operacje
arytmetyczne będą działać tak jakby końcowe zera były znaczące.
Utrata cyfr znaczących przykład (Matlab)
x=10^15
sqrt (x+1) = 3.162277660168381e+007 =
= 0.3162277660168381e+008 (16 cyfr znaczących)
sqrt(x) = 3.162277660168379e+007 =
= 0.3162277660168379e+008 (16 cyfr znaczących)
sqrt(x+1) - sqrt(x) = 1.862645149230957e-008 =
0.00000000000000001862645149230957e+008
0.00000002
jedna cyfra
znacząca
Yang, 33
Arytmetyka liczb komputerowych (3)
Mnożenie
0.1363103 0.642310-1 = 0.08754549102 0.8754549101 0.8754101
obcięcie
mantysy mnożymy
normalizacja
wykładniki dodajemy
Dzielenie jest podobne.
Założenia: 4-cyfrowa mantysa
1-cyfrowy wykładnik
Obliczenia zależne
suma1 = single (0);
Wyniki:
suma2 = single (0);
suma3 = double (0); suma1 =
dokładny
x1 = single (1.0); 100000
x2 = single (1.0e-5);
suma2 =
x3 = double (1.0e-5);
niedokładny
1.0009902
for k = 1:100000
suma1 = suma1 + x1; suma3 =
niedokładny
suma2 = suma2 + x2; 0.99999999999808
suma3 = suma3 + x3;
end
format long
suma1
suma2
suma3
y = single (x) przekształca do pojedynczej precyzji
format short
y = double (x) przekształca do podwójne precyzji
Wyszukiwarka
Podobne podstrony:
Wyklad studport 8Wyklad studport 9Wyklad studport 11Wyklad studport 7Wyklad studport 12Wyklad studport 14Wyklad studport 4Wyklad 12 Podstawowe typy zwiazkow chemicznych blok s i p PCHN SKP studportWyklad 5 Uklad okresowy pierwiastkow studportWyklad 10 Elektrolity, woda, kwasy i zasady PCHN SKP studportWYKŁAD 4 Elektronowa struktura atomu studportSieci komputerowe wyklady dr FurtakWykład 05 Opadanie i fluidyzacjaWYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejwięcej podobnych podstron