Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A)...

35
Matemática Computacional, MEMec, LEAN, MEAer Representação de números - Conversão de base b para base 10 Números em base 10 0, 1, 2, … , 8, 9 ( ) 1 1 1 0 0 2 1 ... , ... n n N dd dd d d = unidades dezenas centenas 10 dígitos que constituem a base Valor depende da posição dos dígitos ( ) 1 0 10 3 2 4579 4000 500 70 9 4 10 5 10 7 10 9 10 N = = + + + = × + × + × + × Exemplo1: Generalizando ( ) 2 1 10 0 1 2 684,75 6 10 8 10 4 10 7 10 5 10 N = = × + × + × + × + × Exemplo2: 1 2 1 1 1 0 1 1 0 2 10 10 ... 10 10 ... 10 10 n n n n d d d d d d = × + × + + × + + × + × + × 0 9 10 1 i d = , 10, 11, 12, … , 19 , 100, 101, … , 472, … , 999, 1000, 1001, … , 20, 21, … , 99

Transcript of Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A)...

Page 1: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base b para base 10

Números em base 10

0, 1, 2, … , 8, 9

( )1 1 10 02 1... , ...n nN d d d d d d− −−=

unidadesdezenas

centenas10 dígitos que

constituem a base

Valor depende da posição dos dígitos

( ) 1 010

3 24579 4000 500 70 9 4 10 5 10 7 10 9 10N = = + + + = × + × + × + ×Exemplo1:

Generalizando

( ) 2 110

0 1 2684,75 6 10 8 10 4 10 7 10 5 10N − −= = × + × + × + × + ×Exemplo2:

1 21

1 1 01 1 0 210 10 ...10 10 ... 10 10n n

n nd d d dd d − −−

−−−= × + × + + × + + × + × +×

0 9 10 1id =≤ −≤

, 10, 11, 12, … , 19 , 100, 101, … , 472, … , 999, 1000, 1001, …, 20, 21, … , 99

Page 2: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base b para base 10

Números em base b ≠10, por exemplo base 3 (ou seja b=3)

0, 1, 2

( )1 311 0 2.. , .. ..n nN d d d d d d− −−=

3 dígitos da base

Generalizando

1 1 01 1

1 21 203 3 3 3... ..3 .3n n

n n d dd d d d−−

− −− −= × + × + + × + + × + × +× 20 3 1id≤ ≤ = −

3

4

5

6

7

8

9

10

11

Exemplo:4 2 0

3 12

1

3( 2 0 1 0 2 , 2 1 )N↑ ↑ ↑ ↑

−↑−

↑ ↑

= 3 1 104 2 20 3 0 32 3 1 3 2 2 33 1 3− −= × + × + + ×× ++ ×× + ×

1 12 81 1 9 2 2 13 9

173,777.

2 0 3

.

0

.

7= × + × + + × + ×

=

+ × + ×

, 10, 11, 12 , 100, 101, 102, 110, 111, 112, 120, 121, 122, 200, …, 20, 21, 22

Exemplo:↑ ↑

↑ ↑

=3 1

2 0

3(1 2 2 1 )N = × + × + × + =3 2 13 3 31 2 2 1 52

18

17

= + + +3 3 3 3(1000) (200) (20) (1)

Page 3: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base 10 para base b

Números inteiros

Exemplo:3 02 1

023 1

4( 1 3 3 2 )d dd d

N↑↑

↑ ↑

=

2 10

3 011 4 3 4 3 4 2 4 126 (126)== × + × + × + × =

126 4

2 31

o resto da divisão inteira de 126 por 4 é o dígito da posição d0 do número 126 escrito em base 4

Dividindo 126 por 4 resulta,

0

3 2 1 0126 1 4 3 4 3 4 2 44 4

d

× + × + × + ×=

Ou seja,

rest

2 1

o

3

0

1

21 4 3 4 3 44

= × + × + × +

0resto

2314

d=

= +

Page 4: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base 10 para base b

31 4

3 7

o resto da divisão inteira de 31 por 4 é o dígito da posição d1 do número 126 escrito em base 4

1

2 1 031 1 4 3 4 3 44 4

d

× + × + ×=

Ou seja,

Dividindo o resultado da anterior divisão (= 31) por 4 resulta,

Ou seja, efectuando divisões sucessivas por 4, os restos das divisões vão ser os dígitos do número escrito em base 4

126 431 4

7 41 4

23

31 0 4

0 0

4 4126 ( 1 3 30 ... 0 2 ) (1 3 3 2 )= =

1resto

374

d=

= +7

r

0

e

1

sto

31 4 3 44

= × + × +

Page 5: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base 10 para base b

Números fraccionários puros

Exemplo:31 2

231

4( , 3 1 2 )dd d

x−− −

↑− ↑↑

−−

=

Multiplicando 0,84375 por 4 resulta, 31 2

1 2 30,84375 4 ( 3 4 1 4 2 4 ) 4dd d −− −

− − −× = × + × + × ×

Retirando a parte inteira ao anterior resultado e multiplicando novamente por 4 resulta,

32

1 20,375 4 ( 1 4 2 4 ) 4dd −−

− −× = × + × ×

1 1

0,375

1 23 (1 4 2 4 ) 3 ,375

d d− −

− −= + × + × =

2

1 ,5

d−

=

A parte inteira que resulta de multiplicar o número por 4, é o dígito d– 1 do número escrito em base 4

A parte inteira que resulta de multiplicar por 4, é o dígito d– 2 do número escrito em base 4

1 2 3103 4 1 4 2 4 0,84375 (0,84375)− − −= × + = =× + ×

Page 6: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Representação de números - Conversão de base 10 para base b

Ou seja, efectuando multiplicações sucessivas (da parte fraccionária pura) por 4, as partes inteiras vão ser os dígitos do número escrito em base 4

0,84375 x 4 = 3,3750,375 x 4 = 1,50,5 x 4 = 2

312

4 40,84375 ( ,312 ) ( 0, )0 312= =

Retirando a parte inteira ao anterior resultado e multiplicando novamente por 4 resulta,

3

10,5 4 ( 2 4 ) 4d−

−× = × ×

3

2

d−

=

A parte inteira que resulta de multiplicar por 4, é o dígito d– 3 do número escrito em base 4

Page 7: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Sistema de ponto flutuante

Exemplo: FP(10,4,2,A) e FP(10,4,2,T)

↑ ↑↑↑

=

2 dígit4 dígitos na mantissa

base 10 A=ArredondamentoT=Truncat

os no exp uraoente

( , , ,_) ( 10 , ,4 _2 , )pP FqF b P

Formato normalizado – com excepção da representação do número zero, d0 ≠ 0

pelo que 1,000 9,999 1 10 1m m m b≤ ≤ → ≤ < → ≤ <

2 dígitos(base 10)

1 00 1 2 3

4 dígitos (da ba

( )

se 10)

( , ) 10 t ttx bm d d dx d− − −±±= ± × → = ± ×

Page 8: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática 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)

805,174

805,0 805,1 805,2 805,3

805,15 805,25

2805,1 8,05174 74 10x = = × 02(10,4,2, ): ( ) (8,051) 10FP f xT l x += = + ×

02(10,4,2, ): ( ) (8,052) 10FP f xA l x += = + ×

Page 9: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática 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)

Erro absoluto: E x x= −

2 2 2(10,4,2, ): 8,051 1 74 74 70 8,051 10 0,000 10 0 4,0FP ET x x= − = × − × = × =

2 2 2(10,4,2, ) : 8,052 1 74 26 20 8,051 10 0,000 10 0 6,0FP EA x x= − = × − × = × =

2805,1 8,05174 74 10x = = × 02(10,4,2, ): ( ) (8,051) 10FP f xT l x += = + ×

02(10,4,2, ): ( ) (8,052) 10FP f xA l x += = + ×

Erro relativo:x x Eex x−

= =

50, 70(10,4,2, ): 9,2 10

847405,1

EFPx

T e −= = = ×

50, 20(10,4,2, ): 3,2 10

867405,1

EFPx

A e −= = = ×

39,2 10 %−×

33,2 10 %−×

x100

x100

É frequente a definição "em valor absoluto": E x x= −

Page 10: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Unidade de arredondamento, u

Com truncatura, FP(10,p,q,T)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) narepresentação dum número

t t

t

m b m bx x m me

x mm b

× − ×− −= = =

×

10min : (1,0...0 10 10) 1 min 1m m m m≤ < → ≤ < → =

maxmax ( ) max max

minx x m m m m

e ux m m− − −

→ = = ≤ <

1 11max

mi10

10 10n 1

pp pm m

u um

− +− + −− ≤ → = ⇔ ==

10

1

(1,0... 0 )p↑

− +10

1

(1,0...0 1 )p↑

− +

u

Com truncatura, a unidade de arredondamento é a maior distância relativa entre dois números consecutivos (representados nesse sistema)

1

1

1

1

0(

0

1)...(1,0... 0 )

(1,0... 0 )

p p

p

p

m

m

d d↑

− +

+

+

−= =

101

1

11

0( 1)..(0,0... 0 ) (0,0...0 1 10).p pp

pp

m dm d − +

↑+↑+

−−− +

−− = < =

Page 11: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Unidade de arredondamento, u

Com truncatura, FP(b,p,q,T)

Unidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) narepresentação dum número

t t

t

m b m bx x m me

x mm b

× − ×− −= = =

×

min : (1,0...0) 1 min 1bm m b m mb≤ < → ≤ < → =

maxmax ( ) max max

minx x m m m m

e ux m m− − −

→ = = ≤ <

11

1maxmin 1

pp pm m

u um

bb b

− +− + −− ≤ → = ⇔ ==

1

(1,0... 0 )p

b↑− + 1

(1,0...0 1 )p

b↑− +

u

Com truncatura, a unidade de arredondamento é a maior distância relativa entre dois números consecutivos (representados nesse sistema)

1

1

( 1)..(1,0... 0 )

(1,0

.

... 0 )

b

p

p

b

p

p

m

m

d d↑

− +− +

↑−

+

= =

1

11

( 1).(0,0... 0 ) (0,0.. ..0 1 ).pp

pp

b b

p

d dm m b− +

↑↑− +−

− − ++

− = < =

Page 12: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Unidade de arredondamento, uUnidade de arredondamento, u – majorante do erro relativo (possível de ser cometido) narepresentação dum número

Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da unidade de arredondamento com truncatura

112

pu b −=

1

(1,0... 0 )p

b↑− + 1

(1,0...0 1 )p

b↑− +

uCom arredondamento, a unidade de arredondamento é metade da maior distância relativa entre dois números consecutivos (representados nesse sistema)

t t

t

m b m bx x m me

x mm b

× − ×− −= = =

×

maxmax ( ) max max

minx x m m m m

e ux m m− − −

→ = = ≤ <

Page 13: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Unidade de arredondamento, u

Com arredondamento, FP(b,p,q,A) = FP(10,4,2,A) 1 341101 1 0.5 102 2

pu b − −−= = = ×

1,000

u

No exemplo: FP(10,4,2,A) e FP(10,4,2,T)

Com truncatura, FP(b,p,q,T) = FP(10,4,2,T) 1 341 10 10pbu u− − −= = =

1,001

u

1,000 1,001

Nota: Erro relativo obtido na representação de 805,174 em FP(10,4,2,A):

e = 3,2 x 10 –5 < 0,5 x 10 –3 = u

Nota: Erro relativo obtido na representação de 805,174 em FP(10,4,2,T):

e = 9,2 x 10 –5 < 10 –3 = u

Page 14: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Limite de overflow e limite de underflow

Formato normalizado

Expoente: 99 99t− ≤ ≤ +

Exemplo: FP(10,4,2,A) ou FP(10,4,2,T)

2 dígitos(base 10)

1 00 1 2 3

4 dígitos (da ba

( )

se 10)

( , ) 10 t ttx bm d d dx d− − −±±= ± × → = ± ×0( 0)d ≠

Mantissa: 1,000 9,999m≤ ≤

Limite de underflow – com excepção do número zero, menor númerorepresentável (menor em módulo): 1,000x10– 99 = 10– 99

Permi ndo o formato desnormalizado → Limite de underflow gradual : 0,001x10– 99 = 10– 102

Nota: em underflow gradual há perda de precisão e o erro relativo pode ser superior à unidade de arredondamento

Limite de overflow – maior número representável (maior em módulo): 9,999x10+99 ≈ 10+100

Page 15: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Sistema de ponto flutuante

Limite deunderflow

0

10– 99

-10– 99

9,999x10+99

Limite deoverflow

– 9,999x10+99

underflow

Page 16: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Sinal de um número (base 2)

Exemplo: Base 2, número inteiro com 3 bits

2 2 2 2 2 2 2 2

3 2 1 0 0 1 2 3

11 10 01 00 00 01 10 11

(11) (10) (01) (00) (00)

1 1 1 1 0 0

(01) (10) (1 )

0

1

0

− − − − + + + +

− − − − + + + +

1) Sem enviesamento, 2 bits para o número + 1 bit para o sinal (0=positivo, 1=negativo)

2) Com enviesamento

2 2 2 2 2 2 2 2(000) (001) (010) (011) (100) (101) (110) (111

4 4 3 2 1

0 1

1

2 3 4 5 6 7

)

2 3e

N

N N↓ ↓ ↓ ↓ ↓ ↓ ↓

= − = − − − − + + +

=

0

Como armazenar o sinal de um número?1) Utilizando um dígito para esse efeito: utilizado para o sinal da mantissa2) Utilizando enviesamento: utilizado para o sinal dos números inteiros

Page 17: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Norma IEEE754 – formatos simples e duplo (base 2)

Formato simples 32 bits = 4 bytes S Expoente Mantissabits -> 1 8 23

Formato duplo 64 bits = 8 bytes S Expoente Mantissabits -> 1 11 52

Formato normalizado ou desnormalizado

• Formato normalizado – no caso do expoente não ser nem todo “zeros” nem todo “uns”

• Formatos desnormalizados• Se o expoente for todo “zeros” – representação do número zero

ou representação de underflow

• Se o expoente for todo “uns” – representação de overflow (infinito ou NaN)

Page 18: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Norma IEEE754 – formato simples

Formato simples 32 bits = 4 bytes S Expoente Mantissabits -> 1 8 23

Formato normalizado −− −= − × ×

1||

2

1270

4 bits

1 23 2( 1) ( , ) 2S ex d d d

≤ ≤ ⇔ ≤≤ −≤ ⇔ ≤ −2 2Expoente: (00000001) (1111111 1260) 1 2 1 754 127 2ee e

− −× = × = − × × 254 127 127 23 127 128 382 2Limite de overflow: (1,11 11) 2 (1,11 11) 2 (2 2 ) 2 2 3,4 10

− − − −× = × = × 1 127 126 126 382 2Limite de underflow: (1,00 00) 2 (1,00 00) 2 2 1,2 10

− − − − −

↑−

× = × = × 126 23 126 149 452

23

Limite de underflow gradual: (0,00 0 1 ) 2 2 2 2 1,4 10

− − − −= = = ×1 1 24 23 7Unidade de arredondamento c/ truncatura: 2 2 1,2 10pu b

− − − −= × = × = × ×1 1 24 23 71 1 1Unidade de arredondamento c/ arredondamento: 2 2 0,6 10

2 2 2pu b

Page 19: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Norma IEEE754 – formato duplo

64 bits = 8 bytes S Expoente Mantissabits -> 1 11 52

Formato normalizado

≤ ≤ ⇔ −⇔ ≤ ≤ − ≤≤2 2Expoente: (00000000001) (1111111 10221110) 1 20 1046 23 1023ee e

+ − + + +× = − × × 1023 52 1023 1024 3082Limite de overflow: (1,11 11) 2 (2 2 ) 2 2 1,8 10

− − − −× = × = × 1 1023 1022 1022 3082 2Limite de underflow: (1,00 00) 2 (1,00 00) 2 2 2,2 10

− − − − −

↑−

× = × = × 1022 52 1022 1074 3242

52

Limite de underflow gradual: (0,00 0 1 ) 2 2 2 2 4,9 10

− − − −= = = ×1 1 53 52 16Unidade de arredondamento c/ truncatura: 2 2 2,2 10pu b

− − − −= × = × = × ×1 1 53 52 161 1 1Unidade de arredondamento c/ arredondamento: 2 2 1,1 10

2 2 2pu b

−− −= − × × 1023

0 1 52

1||

3 bits

2

5

( 1) ( , ) 2S ex d d d

Formato duplo

Page 20: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Norma IEEE754 – formato simples desnormalizado

Formato simples 32 bits = 4 bytes S Expoente Mantissabits -> 1 8 23

Exemplos:24

1126

23 2

bits

( 1) ( , )0 2Sx d d −− −= − × ×

Expoente todo zeros → Formato desnormalizado → representa zero ou underflow gradual

e = (00000000) → Formato desnormalizado

1 00000000 001100…0 ( )4

3

1 126 3 4 1262

39

( 1) (0,00 1 1 0...0) 2 2 2 2

2,2 10

x

−− ↓↓

− − − −

= − × × = − + ×

= − ×

0 00000000 000…001 0 126 23 126 149 452

23

( 1) (0,00 0 1 ) 2 2 2 2 1,4 10x − − − − −

↑−

= − × × = × = = ×Limite de underflow gradual

0 00000000 000…000 0 126 1262( 1) (0,00 00) 2 0 2 0x − −= − × × = × =

1 00000000 000…000 1 126 1262( 1) (0,00 00) 2 0 2 0x − −= − × × = − × = −

0 e 0+ −

Page 21: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Norma IEEE754 – formato simples desnormalizado

Formato simples 32 bits = 4 bytes S Expoente Mantissabits -> 1 8 23

Exemplos:

Se 0Se 0

m INFm NaN

= ⎯⎯→ ±≠ ⎯⎯→

Expoente todo uns → Formato desnormalizado → representa overflow (INF ou NaN)

e = (11111111) → Formato desnormalizado

1 11111111 001100…0

0 11111111 000…000

1 11111111 000…000

0m NaN≠ ⎯⎯→

0m INF= ⎯⎯→ +

0m INF= ⎯⎯→ −

Page 22: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Exemplo 1)

Operações elementares em ponto flutuante (FP)Passos a seguir:1) Decomposição dos operandos nas mantissas e expoentes2) No caso de soma e subtracção, alinhamento das mantissas3) Operações com mantissas e com expoentes4) Normalização da mantissa5) Arredondamento da mantissa

2 0123,4 4,321 1,234 10 4,321 10y = + → × + ×

Exemplos em FP(10,4,2,T)

2

2

2

1,2340,043211,2772

1

1

01010

×+×

×

2( ) 1,277 10fl y y= = ×

Page 23: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Exemplo 2)

Operações elementares em ponto flutuante (FP)Passos a seguir:1) Decomposição dos operandos nas mantissas e expoentes2) No caso de soma e subtracção, alinhamento das mantissas3) Operações com mantissas e com expoentes4) Normalização da mantissa5) Arredondamento da mantissa

2 0427,3 2,183 4,273 10 2,183 10y = − → × − ×

Exemplos em FP(10,4,2,T)

2

2

2

4,2730,021834,2511

1

7

01010

×−×

×

2( ) 4,251 10fl y y= = ×

Nota: se não existirem dígitos de guarda24

8,273

0 310

,021−×

2

24,20052

11

××

2( ) 4,252 10fl y y= = ×

Page 24: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Exemplo 3)

Operações elementares em ponto flutuante (FP)Passos a seguir:1) Decomposição dos operandos nas mantissas e expoentes2) No caso de soma e subtracção, alinhamento das mantissas3) Operações com mantissas e com expoentes4) Normalização da mantissa5) Arredondamento da mantissa

00 2 2

2

1,478 1,478 10 1,47810 0,17292617 10

854,7 8,547 10 8,547y − −×= → = × = ×

×

Exemplos em FP(10,4,2,T)

3( ) 1,729 10fl y y −= = ×

Page 25: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Operações elementares em ponto flutuante (FP)Passos a seguir:1) Decomposição dos operandos nas mantissas e expoentes2) No caso de soma e subtracção, alinhamento das mantissas3) Operações com mantissas e com expoentes4) Normalização da mantissa5) Arredondamento da mantissa

Notas:1) Existindo dígitos de guarda, a simulação duma operação elementar em FP corresponde a escrever o resultado obtido no formato em FP, arredondando o resultado para o número de dígitos existentes na mantissa.

2) As operações com os expoentes são operações com números inteiros pelo que não introduzem aproximações (operações exactas).

3) As operações em FP, em geral, não respeitam as propriedades comutativas, distributiva e associativa da aritmética exacta.

Page 26: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Erros nas operações elementares em ponto flutuante (FP)Nota: as operações com os expoentes são exactas, os erros provêm das operações com as mantissas

= + → = + ⋅ = ⋅ += = ⋅

( )( ) (1 )

fl x x Efl x x x e x eEe E x e

x

[ ]= + = ⋅ + + ⋅ + ⋅ + 1 2 1 1 2 2 3( ) (1 ) (1 ) (1 )y fl x x x e x e e

Soma:

= + + + + + +1 2 1 1 2 2 3 1 2( )y

x x e x e x e x x ϑ

arredondamentodo argumento

arredondamentodo resultado

termos de ordem superior

= +1 2y x x

= − = + + + + 1 1 2 2 3 1 2( )E y y e x e x e x x ϑ

= ≤ +2Ee e uy

ϑ

(x1 e x2 têm o mesmo sinal)

→ ≤ ⋅ + ⋅ + ⋅ + + 21 2 1 2 ( )E u x u x u x x uϑ → ≤ ⋅ + +

21 22 ( )

y

E u x x uϑ

Page 27: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Erros nas operações elementares em ponto flutuante (FP)Nota: as operações com os expoentes são exactas, os erros provêm das operações com as mantissas

= + → = + ⋅ = ⋅ += = ⋅

( )( ) (1 )

fl x x Efl x x x e x eEe E x e

x

[ ]= ⋅ = ⋅ + ⋅ ⋅ + ⋅ + 1 2 1 1 2 2 3( ) (1 ) (1 ) (1 )y fl x x x e x e e

Multiplicação:

= = ⋅ + + + +1 2 1 1 2 2 1 2 3 1 2...y

x x e x x e x x e x x ϑ

arredondamentodo argumento

arredondamentodo resultado

termos de ordem superior

= ⋅1 2y x x

= − = + + + 1 1 2 2 1 2 3 1 2E y y e x x e x x e x x ϑ

Analogamente se conclui para a divisão: +≤ 3e u ϑ

→ ≤ ⋅ ⋅ +1 23y

E u x x ϑ

= ≤ +3Ee e uy

ϑ

Page 28: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Erros nas operações elementares em ponto flutuante (FP)

[ ]= − = ⋅ + − ⋅ + ⋅ + 1 2 1 1 2 2 3( ) (1 ) (1 ) (1 )y fl x x x e x e e

Subtracção:

= − + − + − +1 2 1 1 2 2 3 1 2( )y

x x e x e x e x x ϑ

arredondamentodo argumento

arredondamentodo resultado

termos de ordem superior

= −1 2y x x

= − = − + − + 1 1 2 2 3 1 2( )E y y e x e x e x x ϑ

Se |x1‒x2| for “muito pequeno”, o erro relativo pode ser muito grande

-> cancelamento subtractivo

= + + + − + + +1 1 3 2 2 3(1 ) (1 )x e e x e eϑ ϑ

erro absoluto “pequeno”

(em relação à grandeza dos argumentos)

(x1 e x2 têm o mesmo sinal)

→ ≤ ⋅ + ⋅ + ⋅ − +1 1 2 2 3 1 2| | | | | ( )|E e x e x e x x ϑ

( )→ ≤ ⋅ + + 21 22 ( )E u x x uϑ( )→ ≤ ⋅ + ⋅ + ⋅ + + 2

1 2 1 2 ( )E u x u x u x x uϑ

+= = ≤

− −+1 2

1 2 1 2

2x xE Ee e u

y x x x xϑ

Page 29: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Exemplo de cancelamento subtractivo

1 112,46485 12,45012 1,246 10 1,245 10y = − → × − ×Cálculo em FP(10,4,2,A):

1

1

1

1,2461,2450,00

1010101

−×××

1( ) 0,001 10fl y y= = ×

Erros nas operações elementares em ponto flutuante (FP)

Valor exacto:

12,46485 12,45012y = −

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

Erro absoluto: 10,01473 0,001 10 0,01473 0,01 0,00473E y y E= − = − × = − =

Erro relativo: 100

0,00473 0,32 32%0,01473

y y Ee ey y ×

−= = = = ⎯⎯→

Page 30: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Erros nas operações elementares em ponto flutuante (FP)

Soma: = +1 2y x x ϑ≤ + 22 ( )e uu(x1 e x2 têm o mesmo sinal)

Multiplicação e divisão: = ⋅ =1 2 1 2, /y x x y x x ϑ≤ + 23 ( )e uu

Subtracção: = −1 2y x x ϑ≤−

++1 2

1

2

2

| | | |2| |

( )x xex

uux

Page 31: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Processos que podem originar acumulação de erros

Somatório:=

=1

n

i

i

y x

ϑ+→ ≤ + 2( 1) ( )n u ue

(xi – números positivos e negativos)

Algoritmo: Inicialização: s0=0para i=1 até n fazer

si=si–1 +xifim do ciclo iy=sn

No caso de os xi possuírem o mesmo sinal é possível estimar um majorante do erro relativo

Notar que a ordem pelo qual o cálculo é efectuado não é indiferente

Para minimizar o erro, a variável “auxiliar” si pode ser declarada com precisão acrescida. Se não ocorrer cancelamento subtractivo, o erro raramente ultrapassa uma unidade de arredondamento (independentemente do valor de n)

Page 32: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Processos que podem originar acumulação de erros

Produto interno (de vectores):=

= ⋅ = ⋅

1

n

i i

i

s x yx y

ϑ+→ ≤ + 2( 2) ( )n u ue

Algoritmo: Inicialização: s0=0para i=1 até n fazer

si=si–1 +xi . yifim do ciclo iy=sn

No caso dos termos (xi yi) possuírem o mesmo sinal é possível encontrar um majorante do erro relativo

Tal como no caso do somatório, para minimizar o erro, a variável “auxiliar” si pode ser declarada com precisão acrescida

Page 33: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Número de condição

Avaliar a propagação de erros: análise directa vs. análise indirecta

Dedução de número de condição

− −= →− −

( ) ( ) ( ) ( )

'( ) lim '( )x x

f x f x f x f xf x f xx x x x

Análise indirecta – número de condição

xx ( )f x

( )f xsituação 1

( )f xsituação 2

perturbação de x

situação mal condicionada

situação bem condicionada

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

− ⋅ − ⋅

cond ( )

( ) ( ) '( )( ) ( )

xfefe x

f x f x x f x x xf x f x x

Page 34: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Número de condição

Ou seja,⋅= × '( )

cond ( ) , cond ( )( )f x

x f xe f x e f xf x

cond f(x) representa o factor de ampliação entre o erro relativo do argumento x e o erro dovalor da função f(x)

Se cond f(x) for grande, então uma perturbação no valor do argumento x é muito ampliada

Se cond f(x) ≈ 1 (valor pequeno) – função é bem condicionada

Se cond f(x) ≈ 106 (valor “grande” (?)) – função é mal condicionada

Nota 1: Se uma função for bem condicionada (num ponto), então deverá existir algoritmoque permita calcular (nesse ponto) o valor da função com precisão. Contudo, podem existiralgoritmos que originem imprecisões no cálculo da função.

Page 35: Representação de números - Conversão de base b para base 10 · Com arredondamento, FP(b,p,q,A) – a unidade de arredondamento é metade do valor da ... Sem enviesamento, 2 bits

Matemática Computacional, MEMec, LEAN, MEAer

Número de condiçãoNota 2: cond f(x) é “grande” ou “pequeno” dependendo do nosso objectivo e da incertezados argumentos

Considerar, por hipótese,− −= → ≈ × 3 3cond ( ) 10 10y y x xf xy x

a) se os erros dos argumentos forem da ordem da representaçãodos números em computador (por exemplo em formato simples) −− ≤ ≈

710x x ux

− −− ≈ × = 3 7 410 10 10y yy

erro inferior a 0,01% erro pequeno (?)(depende da aplicação)

b) se os erros dos argumentos forem erros de leitura numa escala (temperatura,distância, velocidade, etc), por exemplo se os erros forem inferiores a 10–4

− −− ≈ × = 3 4 110 10 10y yy

erro inferior a 10% erro grande (?)(depende da aplicação)