Anda di halaman 1dari 30

Representao de nmeros - Converso de base b para base 10

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

Valor depende da posio dos dgitos

Exemplo1:

N = ( 4579 )10 = 4000 + 500 + 70 + 9 = 4 103 + 5 102 + 7 101 + 9 100

Exemplo2:

N = ( 684,75)10 = 6 102 + 8 101 + 4 100 + 7 10 1 + 5 102

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

Representao de nmeros - Converso de base b para base 10


Nmeros em base b 10, por exemplo base 3 (ou seja b=3)

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

Representao de nmeros - Converso de base 10 para base b


Nmeros inteiros
d3 d2 d1 d0

Exemplo:

N = ( 1 3 3 2 )4 = 1 43 + 3 42 + 3 41 + 2 4 0 = 126 = (126)10

Dividindo 126 por 4 resulta,


d0

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

o resto da diviso inteira de 126 por 4 o dgito


da posio d0 do nmero 126 escrito em base 4

Matemtica Computacional, MEMec, LEAN, MEAer

Representao de nmeros - Converso de base 10 para base b


Dividindo o resultado da anterior diviso (= 31) por 4 resulta,
d1

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

o resto da diviso inteira de 31 por 4 o dgito


da posio d1 do nmero 126 escrito em base 4

Ou seja, efectuando divises sucessivas por 4, os restos das


divises vo ser os dgitos do nmero escrito em base 4
126 4
2 31 4
3 7 4
3 1 4
1 0 4
0 0

126 = ( 0 ... 0 1 3 3 2 )4 = ( 1 3 3 2 )4

Matemtica Computacional, MEMec, LEAN, MEAer

Representao de nmeros - Converso de base 10 para base b


Nmeros fraccionrios puros
d1 d2

Exemplo:

x = ( , 1 3 )4

= 1 4 1 + 3 4 2 = 0,4375 = (0,4375)10

Multiplicando 0,4375 por 4 resulta,

d1

d1

d2

d1

4 1 = 1 ,75
0,4375 4 = ( 1 4 1 + 3 4 2 ) 4 = 1 + 3
0,75

Retirando a parte inteira ao resultado anterior


e multiplicando novamente por 4 resulta,

d 2

d2

0,75 4 = ( 3 4 1 ) 4 = 3

Ou seja, efectuando multiplicaes sucessivas por 4, as partes inteiras vo ser os dgitos do


nmero escrito em base 4

0,4375 x 4 = 1,75
0,75 x 4 = 3

1
3

0,4375 = ( 0,1 3 )4 = ( 0,1 3 )4

Matemtica Computacional, MEMec, LEAN, MEAer

Sistema de ponto flutuante


Exemplo: FP(10,4,2,A) e FP(10,4,2,T)
FP(b, p, q ,_) = FP( 10 ,

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 )

4 dgitos (da base 10)

Formato normalizado com excepo da representao do nmero zero, d10


pelo que 0,1000 m 0,9999 0,1 m < 1 b1 m < 1

Matemtica Computacional, MEMec, LEAN, MEAer

Sistema de ponto flutuante


Exemplo: Representar x = 805,174 em FP(10,4,2,T) e em FP(10,4,2,A)
x = 805,174 = 0,805174 103

FP(10,4,2,T ): fl(x) = x = +(0,8051) 10+03

FP(10,4,2, A): fl(x) = x = +(0,8052) 10+03

805,0

805,1

805,2
805,15

805,3
805,25

805,174

Matemtica Computacional, MEMec, LEAN, MEAer

Sistema de ponto flutuante


Exemplo: Representar x = 805,174 em FP(10,4,2,T) e em FP(10,4,2,A)
x = 805,174 = 0,805174 103

FP(10,4,2,T ): fl(x) = x = +(0,8051) 10+03

FP(10,4,2, A): fl(x) = x = +(0,8052) 10+03


Erro absoluto: E = x x
FP(10,4,2,T ): E = x x = 0,805174 103 0,8051 103 = 0,000074 103 = 0,074

FP(10,4,2, A): E = x x = 0,805174 103 0,8052 103 = 0,000026 103 = 0, 026


Erro relativo: e =

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 %

Matemtica Computacional, MEMec, LEAN, MEAer

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)

min(m): (0,10...0)b m < 1 b1 m < 1 min(m) = b1

): m = (0,10... 0 d( p+1)d( p+2) ...)b


max(m m

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

Com truncatura, a unidade de arredondamento


a maior distncia relativa entre dois nmeros
consecutivos (representados nesse sistema)
Matemtica Computacional, MEMec, LEAN, MEAer

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 arredondamento, FP(b,p,q,A) a unidade de arredondamento metade do valor da


unidade de arredondamento com truncatura

1
u = b1p
2
u

(0,10... 0)b

(0,1...0 1)b

Com arredondamento, a unidade de


arredondamento metade da maior distncia
relativa entre dois nmeros consecutivos
(representados nesse sistema)

Matemtica Computacional, MEMec, LEAN, MEAer

Norma IEEE754 formatos simples e duplo (base 2)


bits ->

Formato simples

32 bits = 4 bytes

S
bits ->

Formato duplo

64 bits = 8 bytes

1
S

23

Expoente Mantissa
11

52

Expoente Mantissa

Nmero normalizado ou desnormalizado


Nmero normalizado no caso do expoente no ser nem todo zeros nem todo uns
Nmero desnormalizado
Se o expoente for todo zeros

representao do nmero zero


ou representao de underflow

Se o expoente for todo uns representao de overflow (infinito ou NaN)


Matemtica Computacional, MEMec, LEAN, MEAer

Norma IEEE754 formato simples


bits ->

Formato simples

Nmero normalizado

32 bits = 4 bytes

1
S

23

Expoente Mantissa

x = (1)S (1, d1 d23 )2 2e127

24 bits

Exemplo: Valor correspondente ao conjunto de bits (em formato simples IEEE754)


1 01011001 00101000
O nmero normalizado (porque o expoente
armazenado no nem todo zeros nem todo uns)

x = (1)S (1, d1 d23 )2 2e127

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

Norma IEEE754 formato simples


bits ->

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

x = (1)S (0, d1 d23 )2 2126

24 bits

Exemplo: Valor correspondente ao conjunto de bits (em formato simples IEEE754)


a) 0 00000000 00101000
b) 1 00000000 00000
x = (1)S (0, d1 d23 )2 2126

Expoente todo zeros

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)0 0,15625 2126 = 1,8367... 10 39

x = (1)1 0 2126 = 0
Matemtica Computacional, MEMec, LEAN, MEAer

Norma IEEE754 formato simples


bits ->

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

Como s = 1, o resultado Inf

Matemtica Computacional, MEMec, LEAN, MEAer

Norma IEEE754 formato simples


bits ->

Formato simples

32 bits = 4 bytes

1
S

23

Expoente Mantissa

1
||

Formato normalizado

x = (1)S (d0 , d1 d23 )2 2e127

24 bits

Expoente:

(00000001)2 e (11111110)2 1 e 254 126 e 127 127

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

Unidade de arredondamento c/ truncatura: u = b1p = 2124 = 223 1,2 10 7

1
1
1
Unidade de arredondamento c/ arredondamento: u = b1p = 2124 = 223 0,6 10 7
2
2
2
Matemtica Computacional, MEMec, LEAN, MEAer

Norma IEEE754 formato duplo


bits ->

Formato duplo

64 bits = 8 bytes

1
S

11

52

Expoente Mantissa

1
||

Formato normalizado

x = (1)S (d0 , d1 d52 )2 2e1023

53 bits

Expoente: (00000000001)2 e (11111111110)2 1 e 2046 1022 e 1023 1023

Limite de overflow: (1,1111)2 2+1023 = (2 252 ) 2+1023 2+1024 1,8 10 +308


Limite de underflow: (1,00 00)2 211023 = (1,00 00)2 21022 = 21022 2,2 10 308
Limite de underflow gradual: (0,00 0 1 )2 21022 = 252 21022 = 21074 4,9 10324

52

Unidade de arredondamento c/ truncatura: u = b1p = 2153 = 252 2,2 10 16

1
1
1
Unidade de arredondamento c/ arredondamento: u = b1p = 2153 = 252 1,1 10 16
2
2
2
Matemtica Computacional, MEMec, LEAN, MEAer

Operaes elementares em ponto flutuante (FP)


Passos a seguir:
1) Decomposio dos operandos nas mantissas e expoentes
2) No caso de soma e subtraco, alinhamento das mantissas
3) Operaes com mantissas e com expoentes
4) Normalizao da mantissa
5) Arredondamento da mantissa

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

fl(y) = y = 0,1277 103

Matemtica Computacional, MEMec, LEAN, MEAer

Operaes elementares em ponto flutuante (FP)


Passos a seguir:
1) Decomposio dos operandos nas mantissas e expoentes
2) No caso de soma e subtraco, alinhamento das mantissas
3) Operaes com mantissas e com expoentes
4) Normalizao da mantissa
5) Arredondamento da mantissa
Exemplos em FP(10,4,2,T)
Exemplo 2) y = 427,3 2,183 0,4273 103 0,2183 101
0,4273
103
0,002183 103
0,425117 103

fl(y) = y = 0,4251 103

Nota: se no existirem dgitos de guarda


0,4273
0,0021 83
0,4252

103
103
103

fl(y) = y = 0,4252 103


Matemtica Computacional, MEMec, LEAN, MEAer

Operaes elementares em ponto flutuante (FP)


Passos a seguir:
1) Decomposio dos operandos nas mantissas e expoentes
2) No caso de soma e subtraco, alinhamento das mantissas
3) Operaes com mantissas e com expoentes
4) Normalizao da mantissa
5) Arredondamento da mantissa
Exemplos em FP(10,4,2,T)
8,475
0,8475 101 0,8475
13
2
Exemplo 3) y =

10
=
5,478345

10
154,7
0,1547 103 0,1547
fl(y) = y = 0,5478 10 1

Matemtica Computacional, MEMec, LEAN, MEAer

Operaes elementares em ponto flutuante (FP)


Passos a seguir:
1) Decomposio dos operandos nas mantissas e expoentes
2) No caso de soma e subtraco, alinhamento das mantissas
3) Operaes com mantissas e com expoentes
4) Normalizao da mantissa
5) Arredondamento da mantissa
Notas:
1) Existindo dgitos de guarda, a simulao duma operao elementar em FP corresponde a
escrever o resultado obtido no formato em FP, arredondando o resultado para o nmero
de dgitos existentes na mantissa.
2) As operaes com os expoentes so operaes com nmeros inteiros pelo que no
introduzem aproximaes (operaes exactas).
3) As operaes em FP, em geral, no respeitam as propriedades comutativas, distributiva
e associativa da aritmtica exacta.
Matemtica Computacional, MEMec, LEAN, MEAer

Erros nas operaes elementares em ponto flutuante (FP)


Nota: as operaes com os expoentes so exactas, os erros provm das operaes com as
mantissas
fl(x) = x + E

fl(x) = x + x e = x (1 + e)
E
e = E = x e
x

Soma:

y = x1 + x2

(x1 e x2 tm o mesmo sinal)

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

Erros nas operaes elementares em ponto flutuante (FP)


Nota: as operaes com os expoentes so exactas, os erros provm das operaes com as
mantissas
fl(x) = x + E

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 +

Analogamente se conclui para a diviso:

e 3u +

Matemtica Computacional, MEMec, LEAN, MEAer

Erros nas operaes elementares em ponto flutuante (FP)


Subtraco:

y = x1 x2

(x1 e x2 tm o mesmo sinal)

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 |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)

Se |x1x2| for muito pequeno, o


erro relativo pode ser muito grande
-> cancelamento subtractivo
Matemtica Computacional, MEMec, LEAN, MEAer

Erros nas operaes elementares em ponto flutuante (FP)


Exemplo de cancelamento subtractivo
Valor exacto:

y = 12,46485 12,45012

y = 12,46485 12,45012 = 0,01473

Clculo em FP(10,4,2,A):

y = 12,46485 12,45012 0,1246 102 0,1245 102

0,1246 102
0,1245 102
0,0001 102
Erro absoluto:

Erro relativo:

fl(y) = y = 0,0001 102

E = y y = 0,01473 0,0001 102 = 0,01473 0,01 E = 0,00473

e=

y y E 0,00473
= =
32%
e = 0,32
100
y
y 0,01473

Matemtica Computacional, MEMec, LEAN, MEAer

Erros nas operaes elementares em ponto flutuante (FP)


Soma:

y = x1 + x2

Subtraco:

e 2u + (u2 )

(x1 e x2 tm o mesmo sinal)

e 2u

y = x1 x2

Multiplicao e diviso:

y = x1 x2 , y = x1 / x2

| x1 | + | x2 |
+ (u2 )
| x1 x2 |

e 3u + (u2 )

Matemtica Computacional, MEMec, LEAN, MEAer

Processos que podem originar acumulao de erros

x
n

Somatrio:

y=

(xi nmeros positivos e negativos)

i =1

Algoritmo:

Inicializao: s0=0
para i=1 at n fazer
si=si1 +xi
fim do ciclo i
y=sn

No caso de os xi possurem o mesmo sinal possvel estimar um majorante do erro relativo


e (n + 1) u + (u2 )

Notar que a ordem pelo qual o clculo efectuado no indiferente


Para minimizar o erro, a varivel auxiliar si pode ser declarada com preciso acrescida. Se
no ocorrer cancelamento subtractivo, o erro raramente ultrapassa uma unidade de
arredondamento (independentemente do valor de n)
Matemtica Computacional, MEMec, LEAN, MEAer

Processos que podem originar acumulao de erros


Produto interno (de vectores):


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

Matemtica Computacional, MEMec, LEAN, MEAer

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

Deduo de nmero de condio


f (x ) f (x)
f (x) f (x)
f '(x)
f '(x) = lim

x x
x x
x x

f (x) f (x) f '(x) ( x x )

f (x ) f (x) x f '(x) x x

f (x)
f (x)
x

ef

cond f ( x )

ex

Matemtica Computacional, MEMec, LEAN, MEAer

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.

Matemtica Computacional, MEMec, LEAN, MEAer

Nmero de condio
Nota 2: cond f(x) grande ou pequeno dependendo do nosso objectivo e da incerteza
dos argumentos
Considerar, por hiptese,

cond f (x) = 103

y y
x x
103
y
x

a) se os erros dos argumentos forem da ordem da representao


dos nmeros em computador (por exemplo em formato simples)

y y
103 10 7 = 10 4
y

erro inferior a 0,01%

x x
u 10 7
x
erro pequeno (?)
(depende da aplicao)

b) se os erros dos argumentos forem erros de leitura numa escala (temperatura,


distncia, velocidade, etc), por exemplo se os erros forem inferiores a 104
y y
103 10 4 = 10 1
y

erro inferior a 10%

erro grande (?)


(depende da aplicao)

Matemtica Computacional, MEMec, LEAN, MEAer

Anda mungkin juga menyukai