Nmeros em base 10
0, 1, 2, , 8, 9 , 10, 11, 12, , 19 , 20, 21, , 99 , 100, 101, , 472, , 999, 1000, 1001,
10 dgitos que
constituem a base
unidades
centenas
dezenas
Exemplo1:
Exemplo2:
Generalizando
N = ( dn dn1 ... d1 d0 , d1 d2 ... )10
= dn 10n + dn1 10n1 + ... + d1 101 + d0 100 + d1 10 1 + d2 102 + ...
0 di 9 = 10 1
Matemtica Computacional, MEMec, LEAN, MEAer
0, 1, 2 , 10, 11, 12 , 20, 21, 22 , 100, 101, 102, 110, 111, 112, 120, 121, 122, 200,
3 dgitos
da base
10
11
Generalizando
N = ( dn dn1 ... d1 d0 , d1 d2 ... )3
= dn 3n + dn1 3n1 + ... + d1 31 + d0 30 + d1 31 + d2 32 + ...
0 di 2 = 3 1
Exemplo: N = ( 2 0 1 0 2 , 2 1 )3 = 2 34 + 0 33 + 1 32 + 0 31 + 2 30 + 2 31 + 1 32
4 2
0
3
1
2
1
= 2 81 + 0 27 + 1 9 + 0 3 + 2 + 2
1
1
+ 1
3
9
= 173,777...
Matemtica Computacional, MEMec, LEAN, MEAer
Exemplo:
N = ( 1 3 3 2 )4 = 1 43 + 3 42 + 3 41 + 2 4 0 = 126 = (126)10
126 1 43 + 3 42 + 3 41 + 2 4 0
=
4
4
Ou seja,
126
31
resto=d0
resto
2
= 1 4 2 + 3 41 + 3 4 0 +
4
31
= 31 +
2
4
31 1 4 + 3 4 + 3 4
=
4
4
2
Ou seja,
31
resto=d1
resto
3
= 1 41 + 3 4 0 +
=7+
3
4
126 = ( 0 ... 0 1 3 3 2 )4 = ( 1 3 3 2 )4
Exemplo:
x = ( , 1 3 )4
= 1 4 1 + 3 4 2 = 0,4375 = (0,4375)10
d1
d1
d2
d1
4 1 = 1 ,75
0,4375 4 = ( 1 4 1 + 3 4 2 ) 4 = 1 + 3
0,75
d 2
d2
0,75 4 = ( 3 4 1 ) 4 = 3
0,4375 x 4 = 1,75
0,75 x 4 = 3
1
3
base 10
2 dgitos no A=Arredondamento
4 dgitos na expoente
T=Truncatura
mantissa
2 dgitos
(base 10)
x = m b
x = (0, d1d2d3d4 ) 10
( t1 t0 )
805,0
805,1
805,2
805,15
805,3
805,25
805,174
x x E
=
x
x
FP(10,4,2,T ): e =
0, 074
E
=
= 9,2 105
x 805,174
FP(10,4,2, A): e =
E 0, 026
=
= 3,2 105
x 805,174
x100
x100
9,2 10 3 %
3,2 10 3 %
Unidade de arredondamento, u
Unidade de arredondamento, u majorante do erro relativo (possvel de ser cometido) na
representao dum nmero
bt m m
max(m m
)
x x m bt m
x x
mm
e=
=
=
max
(
e
)
=
max
=
max
<u
x
m bt
m
x
m
min(m)
Com truncatura, FP(b,p,q,T)
p
= (0,0... 0 d( p+1)d( p+2) ...)b < (0,0...0 1)b = b p
mm
= (0,10... 0)b
m
p
p
) b p
max(m m
b p
1 p
u = 1 u = b
1
b
min(m) = b
(0,10... 0)b
(0,1...0 1)b
Unidade de arredondamento, u
Unidade de arredondamento, u majorante do erro relativo (possvel de ser cometido) na
representao dum nmero
bt m m
max(m m
)
x x m bt m
x x
mm
e=
=
=
max
(
e
)
=
max
=
max
<u
x
m bt
m
x
m
min(m)
1
u = b1p
2
u
(0,10... 0)b
(0,1...0 1)b
Formato simples
32 bits = 4 bytes
S
bits ->
Formato duplo
64 bits = 8 bytes
1
S
23
Expoente Mantissa
11
52
Expoente Mantissa
Formato simples
Nmero normalizado
32 bits = 4 bytes
1
S
23
Expoente Mantissa
24 bits
24 bits
s =1
e = (01011001)2 = 26 + 24 + 23 + 1 = 89
m = (1,001010...0)2 = 1 + 23 + 25 = 1,15625
x = (1)1 1,15625 289127 = 1,15625 238 = 4,20641... 10 12
Matemtica Computacional, MEMec, LEAN, MEAer
Formato simples
32 bits = 4 bytes
1
S
23
Expoente Mantissa
Nmeros desnormalizados
(i) Expoente todo zeros representao do
nmero zero ou de underflow gradual
24 bits
24 bits
a) s = 0
m = (0,001010...0)2 = 23 + 25 = 0,15625
b)
s =1
m = (0,00...0)2 = 0
x = (1)1 0 2126 = 0
Matemtica Computacional, MEMec, LEAN, MEAer
Formato simples
32 bits = 4 bytes
1
S
23
Expoente Mantissa
Nmeros desnormalizados
(ii) Expoente todo uns representao de overflow
Exemplo: Valor correspondente ao conjunto de bits (em formato simples IEEE754)
a) 0 11111111 00101000
b) 1 11111111 00000
Expoente todo uns representao de overflow
a)
m 0
NaN
b)
m = 0
Inf
Formato simples
32 bits = 4 bytes
1
S
23
Expoente Mantissa
1
||
Formato normalizado
24 bits
Expoente:
Limite de overflow: (1,1111)2 2254127 = (1,1111)2 2127 = (2 223 ) 2127 2128 3,4 1038
Limite de underflow: (1,00 00)2 21127 = (1,00 00)2 2126 = 2126 1,2 10 38
Limite de underflow gradual: (0,00 0 1 )2 2126 = 223 2126 = 2149 1,4 10 45
23
1
1
1
Unidade de arredondamento c/ arredondamento: u = b1p = 2124 = 223 0,6 10 7
2
2
2
Matemtica Computacional, MEMec, LEAN, MEAer
Formato duplo
64 bits = 8 bytes
1
S
11
52
Expoente Mantissa
1
||
Formato normalizado
53 bits
52
1
1
1
Unidade de arredondamento c/ arredondamento: u = b1p = 2153 = 252 1,1 10 16
2
2
2
Matemtica Computacional, MEMec, LEAN, MEAer
Exemplos em FP(10,4,2,T)
Exemplo 1) y = 123,4 + 4,321 0,1234 103 + 0,4321 101
0,1234
103
+ 0,004321 103
0,127721 103
103
103
103
10
=
5,478345
10
154,7
0,1547 103 0,1547
fl(y) = y = 0,5478 10 1
fl(x) = x + x e = x (1 + e)
E
e = E = x e
x
Soma:
y = x1 + x2
x1 + x2 + e1 x1 + e2 x2 + e3 (x1 + x2 ) +
y = fl(x1 + x2 ) = [ x1 (1 + e1 ) + x2 (1 + e2 )] (1 + e3 ) =
arredondamento
do argumento
arredondamento
do resultado
termos de
ordem superior
E = y y = e1 x1 + e2 x2 + e3 (x1 + x2 ) +
E u x1 + u x2 + u x1 + x2 + (u2 ) E 2u x1 + x2 + (u2 )
e=
e 2u +
Matemtica Computacional, MEMec, LEAN, MEAer
fl(x) = x + x e = x (1 + e)
E
e = E = x e
x
Multiplicao: y = x1 x2
x1 x2 + e1 x1 x2 + e2 x1 x2 + e3 x1 x2 +
y = fl(x1 x2 ) = [ x1 (1 + e1 ) x2 (1 + e2 )] (1 + e3 ) = ... =
y
arredondamento
do argumento
arredondamento
do resultado
E = y y = e1 x1 x2 + e2 x1 x2 + e3 x1 x2 +
termos de
ordem superior
E 3u x1 x2 +
e=
e 3u +
e 3u +
y = x1 x2
y = fl(x1 x2 ) = [ x1 (1 + e1 ) x2 (1 + e2 )] (1 + e3 ) = x1 (1 + e1 + e3 + ) x2 (1 + e2 + e3 + )
arredondamento
do argumento
arredondamento
do resultado
termos de
ordem superior
= x1 x2 + e1 x1 e2 x2 + e3 (x1 x2 ) +
E = y y = e1 x1 e2 x2 + e3 (x1 x2 ) +
E u x1 + u x2 + u ( x1 + x2 ) + (u2 )
e=
E
E
=
y x1 x2
e 2u
x1 + x2
x1 x2
E 2u ( x1 + x2 ) + (u2 )
erro absoluto
pequeno
(em relao grandeza
dos argumentos)
y = 12,46485 12,45012
Clculo em FP(10,4,2,A):
0,1246 102
0,1245 102
0,0001 102
Erro absoluto:
Erro relativo:
e=
y y E 0,00473
= =
32%
e = 0,32
100
y
y 0,01473
y = x1 + x2
Subtraco:
e 2u + (u2 )
e 2u
y = x1 x2
Multiplicao e diviso:
y = x1 x2 , y = x1 / x2
| x1 | + | x2 |
+ (u2 )
| x1 x2 |
e 3u + (u2 )
x
n
Somatrio:
y=
i =1
Algoritmo:
Inicializao: s0=0
para i=1 at n fazer
si=si1 +xi
fim do ciclo i
y=sn
s = x y =
x
n
yi
i =1
Algoritmo:
Inicializao: s0=0
para i=1 at n fazer
si=si1 +xi . yi
fim do ciclo i
y=sn
No caso dos termos (xi yi) possurem o mesmo sinal possvel encontrar um majorante do
erro relativo
e (n + 2) u + (u2 )
Tal como no caso do somatrio, para minimizar o erro, a varivel auxiliar si pode ser
declarada com preciso acrescida
Nmero de condio
Avaliar a propagao de erros: anlise directa vs. anlise indirecta
Anlise indirecta nmero de condio
perturbao
de x
x
x
f ( x)
f (x )
situao 1
situao bem
condicionada
f (x)
situao mal
condicionada
situao 2
x x
x x
x x
f (x ) f (x) x f '(x) x x
f (x)
f (x)
x
ef
cond f ( x )
ex
Nmero de condio
Ou seja, e f = cond f (x) ex
, cond f (x)
x f '(x)
f (x)
cond f(x) representa o factor de ampliao entre o erro relativo do argumento x e o erro do
valor da funo f(x)
Se cond f(x) for grande, ento uma perturbao no valor do argumento x muito ampliada
Se cond f(x) 1 (valor pequeno) funo bem condicionada
Se cond f(x) 106 (valor grande (?)) funo mal condicionada
Nota 1: Se uma funo for bem condicionada (num ponto), ento dever existir algoritmo
que permita calcular (nesse ponto) o valor da funo com preciso. Contudo, podem existir
algoritmos que originem imprecises no clculo da funo.
Nmero de condio
Nota 2: cond f(x) grande ou pequeno dependendo do nosso objectivo e da incerteza
dos argumentos
Considerar, por hiptese,
y y
x x
103
y
x
y y
103 10 7 = 10 4
y
x x
u 10 7
x
erro pequeno (?)
(depende da aplicao)