Representação de números Conversão de base b para base 0 Números em base 0 0,,,, 8, 9, 0,,,, 9, 0,,, 99, 00, 0,, 47,, 999, 000, 00, 0 dígitos que constituem a base Valor depende da posição dos dígitos centenas unidades dezenas Exemplo: 3 0 4579 4000 500 70 9 4 0 5 0 7 0 9 0 N 0 Exemplo: N 684,75 60 80 40 70 50 0 0 Generalizando N d d... d d, d d... n n 0 0 n d 0 d 0... d 0 d 0 d 0 d 0... n n 0 n 0 0 d 9 0 i
Representação de números Conversão de base b para base 0 Números em base b 0, por exemplo base 3 (ou seja b=3) 0,, 3 dígitos da base Generalizando N d d... d d, d d... n, 0,,, 0,,, 00, 0, 0, 0,,, 0,,, 00, 3 4 5 6 n 0 3 7 d d... d d 3... 0 3 n n 0 3 3 n n 3 0 3 d 3 d 8 9 0 d i Exemplo: N ( 0 0, ) 3 3 03 3 03 3 3 3 4 3 0 4 0 3 8 07 9 03 3 9 73,777...
Representação de números Conversão de base 0 para base b Números inteiros Exemplo: N d d d d 3 0 Dividindo 6 por 4 resulta, ( 3 3 ) 3 0 4 0 3 4 34 34 4 6 (6) 0 d0 3 0 6 4 34 34 4 4 4 0 4 34 34 3 resto 4 3 restod 4 0 Ou seja, 6 4 3 o resto da divisão inteira de 6 por 4 é o dígito da posição d 0 do número 6 escrito em base 4
Representação de números Conversão de base 0 para base b Dividindo o resultado da anterior divisão (= 3) por 4 resulta, d 0 3 4 34 34 4 4 0 4 34 7 resto 3 4 7 restod 3 4 Ou seja, 3 4 3 7 o resto da divisão inteira de 3 por 4 é o dígito da posição d do número 6 escrito em base 4 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 6 4 3 4 3 7 4 3 4 0 4 0 0 6 ( 0... 0 3 3 ) (33) 4 4
Representação de números Conversão de base 0 para base b Números fraccionários puros d d d 3 Exemplo: x (, 3 ) 4 3 Multiplicando 0,84375 por 4 resulta, 3 3 4 4 4 0,84375 (0,84375) 0 d d d3 3 0,84375 4 ( 34 4 4 ) 4 d d 3 ( 4 4 ) 3,375 A parte inteira que resulta de multiplicar o número por 4, é o dígito d do número escrito em base 4 0,375 Retirando a parte inteira ao anterior resultado e multiplicando novamente por 4 resulta, d d3 0,375 4 ( 4 4 ) 4 d,5 A parte inteira que resulta de multiplicar por 4, é o dígito d do número escrito em base 4
Representação de números Conversão de base 0 para base b Retirando a parte inteira ao anterior resultado e multiplicando novamente por 4 resulta, d 3 0,54 (4 ) 4 d 3 A parte inteira que resulta de multiplicar por 4, é o dígito d 3 do número escrito em base 4 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,375 0,375 x 4 =,5 0,5 x 4 = 3 0,84375 ( 0,3 ) ( 0, 3 ) 4 4
Exemplo: FP(0,4,,A) e FP(0,4,,T) Sistema de ponto flutuante FP( b, p, q,_) FP( 0, 4,, _ ) base 0 4 dígitos na mantissa dígitos no expoente A=Arredondamento T=Truncatura x 0 3 dígitos (base 0) ( 0 ) t mb x ( d, d d d ) 0 t t 4 dígitos (da base 0) Formato normalizado com excepção da representação do número zero, d 0 0 pelo que,000 m9,999 m0 mb
Sistema de ponto flutuante Exemplo: Representar x = 805,74 em FP(0,4,,T) e em FP(0,4,,A) x 805,74 8,05740 FP(0,4,, T): flx ( ) x (8,05) 0 0 FP(0,4,, A): flx ( ) x (8,05) 0 0 805,0 805, 805, 805,3 805,5 805,5 805,74
Sistema de ponto flutuante Exemplo: Representar x = 805,74 em FP(0,4,,T) e em FP(0,4,,A) x 805,74 8,05740 FP(0,4,, T): flx ( ) x (8,05) 0 0 FP(0,4,, A): flx ( ) x (8,05) 0 0 Erro absoluto: E x x É frequente a definição "em valor absoluto": E x x FP (0,4,, T): E xx 8,05 74 74,07 0 8,05 0 0,000 0 0 4 FP (0,4,, A): E xx 8,05 74 6,0 0 8,05 0 0,000 0 0 6 x x E Erro relativo: e x x E 0, 074 FP(0,4,, T): e 9,0 x 805,74 5 x00 3 9,0 % E 0, 06 FP(0,4,, A) : e 3,0 x 805,74 5 x00 3 3,0 %
Unidade de arredondamento, u Unidadedearredondamento,u majorante do erro relativo (possível de ser cometido) na representação dum número t t x x m b mb m m e t x mb m x x m m max m m max ( e) max max u x m min m Com truncatura, FP(0,p,q,T) min m : (,0...0) m0 m0 minm 0 max m m : m (,0... 0 d d...) ) p p ( p m (,0... 0 ) p u 0 0 m m (0,0... 0 d d. ) (0,0...0 ) 0 max m m 0 p p p u 0 u 0 minm p p.. ( p) 0 p 0 p (,0... 0 ) 0 p (,0...0 ) 0 p Com truncatura, a unidade de arredondamento é a maior distância relativa entre dois números consecutivos (representados nesse sistema)
Unidade de arredondamento, u Unidadedearredondamento,u majorante do erro relativo (possível de ser cometido) na representação dum número t t x x m b mb m m e t x mb m x x m m max m m max ( e) max max u x m min m Com truncatura, FP(b,p,q,T) min m : (,0...0) mb mb min m b max m m : m (,0... 0 d d. ) u p p m (,0... 0 ).. ( p) b p b (0,0... 0.. ) (0,0...0 ) p m m d d b max m m b p p min m p. p ( p) u b b b p u b p (,0... 0 ) (,0...0 ) b b p p Com truncatura, a unidade de arredondamento é a maior distância relativa entre dois números consecutivos (representados nesse sistema)
Unidade de arredondamento, u Unidadedearredondamento,u majorante do erro relativo (possível de ser cometido) na representação dum número t t x x m b mb m m e t x mb m x x m m max m m max ( e) max max u x m min m Com arredondamento, FP(b,p,q,A) a unidade de arredondamento é metade do valor da unidade de arredondamento com truncatura u b p (,0... 0 ) u (,0...0 ) b b p p Com arredondamento, a unidade de arredondamento é metade da maior distância relativa entre dois números consecutivos (representados nesse sistema)
No exemplo: FP(0,4,,A) e FP(0,4,,T) Unidade de arredondamento, u Com truncatura, FP(b,p,q,T) = FP(0,4,,T) p ub 4 u0 3 0 u,000,00 Nota: Erro relativo obtido na representação de 805,74 em FP(0,4,,T): e = 9, x 0 5 < 0 3 = u Com arredondamento, FP(b,p,q,A) = FP(0,4,,A) u u b 0 0.50 p 4 3,000,00 Nota: Erro relativo obtido na representação de 805,74 em FP(0,4,,A): e = 3, x 0 5 < 0,5 x 0 3 = u
Limite de overflow e limite de underflow Exemplo: FP(0,4,,A) ou FP(0,4,,T) Formato normalizado ( d0 0) x dígitos (base 0) ( 0 ) t mb x ( d0, d d d 3) 0 t t 4 dígitos (da base 0) Mantissa:,000 m 9,999 Expoente: 99 t 99 Limite de overflow maior número representável (maior em módulo): 9,999x0 +99 0 +00 Limite de underflow com excepção do número zero, menor número representável (menor em módulo):,000x0 99 = 0 99 Permindo o formato desnormalizado Limite de underflow gradual : 0,00x0 99 = 0 0 Nota: em underflow gradual há perda de precisão e o erro relativo pode ser superior à unidade de arredondamento
Sistema de ponto flutuante underflow 9,999x0 +99 0 9,999x0 +99 0 99 Limite de 0 99 Limite de underflow overflow
Sinal de um número (base ) Como armazenar o sinal de um número? ) Utilizando um dígito para esse efeito: utilizado para o sinal da mantissa ) Utilizando enviesamento: utilizado para o sinal dos números inteiros Exemplo: Base, número inteiro com 3 bits ) Sem enviesamento, bits para o número + bit para o sinal (0=positivo, =negativo) 0 0 00 000 00 00 0 () (0) (0) (00) (00) (0) (0) ( ) 3 0 0 3 ) Com enviesamento (000) (00) (00) (0) (00) (0) (0) () N e N 0 3 4 5 6 7 N4 4 3 0 3
Norma IEEE754 formatos simples e duplo (base ) bits > 8 3 Formato simples 3 bits = 4 bytes S Expoente Mantissa bits > 5 Formato duplo 64 bits = 8 bytes S Expoente Mantissa 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)
Norma IEEE754 formato simples bits > 8 3 Formato simples 3 bits = 4 bytes S Expoente Mantissa Formato normalizado S x ( ) ( d, d d ) 0 3 4 bits e7 Expoente: (0000000) e(0) e 54 6 e 7 7 Limite de overflow: (,) (,) ( ) 3,4 0 54 7 7 3 7 8 38 Limite de underflow: (,0000) (,0000),0 7 6 6 38 Limite de underflow gradual: (0,000 ),40 3 6 3 6 49 45 Unidade de arredondamento c/ truncatura: ub,0 p 4 3 7 Unidade de arredondamento c/ arredondamento: u b 0,60 p 4 3 7
Formato duplo Norma IEEE754 formato duplo bits > 5 64 bits = 8 bytes S Expoente Mantissa Formato normalizado S x ( ) ( d, d d ) 0 5 53 bits e03 Expoente: (0000000000) e (0) e 046 0 e 03 03 Limite de overflow: (,) ( ),80 03 5 03 04 308 Limite de underflow: (,0000) (,0000),0 03 0 0 308 Limite de underflow gradual: (0,000 ) 4,90 5 0 5 0 074 34 Unidade de arredondamento c/ truncatura: ub,0 p 53 5 6 Unidade de arredondamento c/ arredondamento: u b,0 p 53 5 6
Norma IEEE754 formato simples desnormalizado bits > 8 3 Formato simples 3 bits = 4 bytes S Expoente Mantissa Expoente todo zeros Formato desnormalizado representa zero ou underflow gradual e = (00000000) Formato desnormalizado Exemplos: 4 3 S x ( ) ( 0, d d ) 3 4 bits 00000000 0000 0 x ( ) (0,00 0...0) 6 3 4 6,0 39 6 0 00000000 000 00 x ( ) (0,000 ),40 0 6 3 6 49 45 3 Limite de underflow gradual 0 6 6 0 00000000 000 000 x ( ) (0,0000) 0 0 00000000 000 000 x ( ) (0,0000) 0 0 6 6 0 e 0
Norma IEEE754 formato simples desnormalizado bits > 8 3 Formato simples 3 bits = 4 bytes S Expoente Mantissa Expoente todo uns Formato desnormalizado representa overflow (INF ou NaN) e = () Formato desnormalizado Exemplos: Se m 0 INF Se m0 NaN 0000 0 m 0 NaN 0 000 000 m 0 INF 000 000 m 0 INF
Operações elementares em ponto flutuante (FP) Passos a seguir: ) Decomposição dos operandos nas mantissas e expoentes ) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes 4) Normalização da mantissa 5) Arredondamento da mantissa Exemplos em FP(0,4,,T) Exemplo ) 0 y 3,4 4,3,340 4,30,34 0,043,77 0 0 0 fl( y) y,770
Operações elementares em ponto flutuante (FP) Passos a seguir: ) Decomposição dos operandos nas mantissas e expoentes ) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes 4) Normalização da mantissa 5) Arredondamento da mantissa Exemplos em FP(0,4,,T) Exemplo ) 0 y 47,3,83 4,730,830 4,73 0,083 4,57 0 0 0 fl( y) y 4,50 Nota: se não existirem dígitos de guarda 4,73 0,0 83 4,5 0 0 0 fl( y) y 4,50
Operações elementares em ponto flutuante (FP) Passos a seguir: ) Decomposição dos operandos nas mantissas e expoentes ) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes 4) Normalização da mantissa 5) Arredondamento da mantissa Exemplos em FP(0,4,,T) 0,478,4780,478 Exemplo 3) 0 y 0,7967 0 854,7 8,5470 8,547 0 fl( y) y,790 3
Operações elementares em ponto flutuante (FP) Passos a seguir: ) Decomposição dos operandos nas mantissas e expoentes ) No caso de soma e subtracção, alinhamento das mantissas 3) Operações com mantissas e com expoentes 4) Normalização da mantissa 5) Arredondamento da mantissa Notas: ) 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. ) 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.
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 fl( x) x E E fl( x) x x e x ( e) e E xe x Soma: yx x (x e x têm o mesmo sinal) y fl( xx) x( e) x( e) ( e3) xxexexe3( xx) y arredondamento do argumento 3 E yye x e x e ( x x ) arredondamento do resultado termos de ordem superior E e e u y E u x u x u xx ( u ) E u xx ( u ) y
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 fl( x) x E E fl( x) x x e x ( e) e E xe x Multiplicação: yx x y fl( xx) x( e) x( e) ( e3)... x x exx exx e3xx y arredondamento do argumento Ey yexx exx exx 3 arredondamento do resultado E 3u x x y termos de ordem superior E e e 3u y Analogamente se conclui para a divisão: e 3u
Erros nas operações elementares em ponto flutuante (FP) Subtracção: yx x (x e x têm o mesmo sinal) y fl( xx) x( e) x( e) ( e3) x ( e e ) x ( e e ) 3 3 arredondamento do argumento arredondamento do resultado termos de ordem superior xxexexe3( xx) y 3 E yye x e x e ( x x ) E e x e x e ( x x ) 3 E u x u x u x x ( u ) E E e e u x x y x x x x E u x x ( u ) Se x x for muito pequeno, o erro relativo pode ser muito grande > cancelamento subtractivo erro absoluto pequeno (em relação à grandeza dos argumentos)
Erros nas operações elementares em ponto flutuante (FP) Exemplo de cancelamento subtractivo y,46485,450 Valor exacto: y,46485,450 0,0473 Cálculo em FP(0,4,,A): y,46485,450,460,450,46,45 0,00 0 0 0 fl( y) y 0,000 Erro absoluto: E yy 0,0473 0,000 0,04730,0 E 0,00473 y y E 0,00473 Erro relativo: e e0,3 3% 00 y y 0,0473
Erros nas operações elementares em ponto flutuante (FP) Soma: yx x (x e x têm o mesmo sinal) e u ( u ) x x Subtracção: yx x e u ( u ) x x Multiplicação e divisão: y x x, yx / x e 3 u ( u )
Processos que podem originar acumulação de erros n Somatório: y x i (x i números positivos e negativos) i Algoritmo: Inicialização: s 0 =0 para i= até n fazer s i =s i +x i fim do ciclo i y=s n No caso de os x i possuírem o mesmo sinal é possível estimar um majorante do erro relativo e ( n) u( u ) Notar que a ordem pelo qual o cálculo é efectuado não é indiferente Para minimizar o erro, a variável auxiliar s i 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)
Processos que podem originar acumulação de erros Produto interno (de vectores): s xy i n i x y i Algoritmo: Inicialização: s 0 =0 para i= até n fazer s i =s i +x i. y i fim do ciclo i y=s n No caso dos termos (x i y i ) possuírem o mesmo sinal é possível encontrar um majorante do erro relativo e ( n) u( u ) Tal como no caso do somatório, para minimizar o erro, a variável auxiliar s i pode ser declarada com precisão acrescida
Número de condição Avaliar a propagação de erros: análise directa vs. análise indirecta Análise indirecta número de condição perturbação de x x fx ( ) x fx ( ) situação situação bem condicionada situação fx ( ) situação mal condicionada Dedução de número de condição fx ( ) fx ( ) fx ( ) fx ( ) f'( x) lim f'( x) x x xx xx fx ( ) fx ( ) f'( x) x x fx ( ) fx ( ) xf'( x) x x fx ( ) fx ( ) x e f cond f ( x) e x
Número de condição Ou seja, e cond f( x) e, cond f( x) f x x f'( x) fx ( ) cond f(x) representa o factor de ampliação entre o erro relativo do argumento x eoerrodo valor 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) (valor pequeno) função é bem condicionada Se cond f(x) 0 6 (valor grande (?)) função é mal condicionada Nota : Se uma função for bem condicionada (num ponto), então deverá existir algoritmo que permita calcular (nesse ponto) o valor da função com precisão. Contudo, podemexistir algoritmos que originem imprecisões no cálculo da função.
Número de condição Nota : cond f(x) é grande ou pequeno dependendo do nosso objectivo e da incerteza dos argumentos 3 yy 3 xx Considerar, por hipótese, cond fx ( ) 0 0 y x a) se os erros dos argumentos forem da ordem da representação dos números em computador (por exemplo em formato simples) y 3 7 4 y y 0 0 0 x x 7 u 0 x erro inferior a 0,0% 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 0 4 y 3 4 0 0 0 y y erro inferior a 0% erro grande (?) (depende da aplicação)