Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Dr. Alexandre Passito passito@icomp.ufam.edu.br 1 Parte do material cedido pela Prof. Fabíola Guerra / Arilo Neto – DCC/UFAM. } Sistemas de Numeração } Conversão de Sistemas e Base } Representação em Ponto Flutuante } Erros Numéricos 2 3 } Representação não posicional ◦ romanos MDCCCXLIX e MMCXXIV Como seria MDCCCXLIX + MMCXXIV ? } Representação semi-posicional ◦ hebraicos 1= א (aleph), 2= ב (beth), 10= י (yod), 100= ק(kuph), 11= ℵ 101 ,י= ℵ9+6( וט=15 ק) 4 } Alemão ◦ Vinte e um = ein-und-zwanzig } Francês ◦ Noventa = quatre-vingt-dix deux 5 } Representação posicional ◦ Base decimal (10) 10 dígitos disponíveis [0,1,2, ... ,9] “Posição” indica potência positiva de 10 5432 = 5x103 + 4x102 + 3x101 + 2x100 6 } Representação de inteiros ◦ Base binária (2) 2 “bits” disponíveis [0,1] “Posição” indica potência positiva de 2 Exemplo: 11, 101, 1001000 1011 na base 2 = 1x23 + 0x22 + 1x21 + 1x20 = 8+0+2+1 = 11 na base decimal 7 } Representação de números fracionários ◦ Base decimal (10) “Posição” da parte inteira indica potência positiva de 10 Potência negativa de 10 para parte fracionária 54,32 = 5x101 + 4x100 + 3x10-1 + 2x10-2 8 } Representação de números fracionários ◦ Base binária (2) “Posição” da parte inteira indica potência positiva de 2 Potência negativa de 2 para parte fracionária 10,11 na base 2 = 1x21 + 0x20 + 1x2-1 + 1x2-2 = 2+0+1/2+1/4 = 2,75 na base decimal 9 } Maior interesse em decimal (10) ◦ Nossa anatomia e cultura e binário (2) ◦ Uso nos computadores } Outros sistemas: ◦ Octal (8), {0,1,2, ... , 7} ◦ Hexadecimal (16), {0,1,2, ... , 9, A,B,C,D,E,F} ◦ Dodecimal (relógio, calendário) 10 Decimal Binário Octal Hexadecimal 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F ... ... ... ... 11 12 } Uma caixa alienígena com o número 25 gravado na tampa foi entregue a um grupo de c ient i s tas . Ao abr i rem a ca ixa , encontraram 17 objetos. Considerando que o alienígena tem um formato humanoide, quantos dedos ele tem nas duas mãos? 13 } 1710 = 25b } 17 = 2xb1 + 5xb0 } 17 = 2b + 5 } b = (17-5)/2 = 6 14 } Binário para decimal ◦ Já visto! ◦ Multiplicar o bit pela potência de 2 começando em 0 (da direita pra esquerda) ◦ Ex: 1012 = 1 x 22 + 0 x 21 + 1 x 20 = 510 } Exercício: Converter para decimal os números binários: ◦ 112 ◦ 10102 ◦ 100101102 ◦ 101,012 ◦ 11,112 15 } Inteiro decimal para binário ◦ Divisão inteira (do quociente) sucessiva por 2, até que resto seja = 0 ou 1 ◦ Binário = composição do último quociente (Bit Mais Significativo – BMS) com restos (primeiro resto é bit menos significativo – bms) Em inglês, Most Significant Bit – MSB e Least Significat Bit – LSB, respectivamente. D 2 b1 D1 2 b2 D2 2 b3 D3 ... Dm-1 2 bn 1 bin = 1 bn ... b3 b2 b1 16 } Exemplo: Converter 25 decimal para binário ◦ 25 / 2 = 12 (quociente) e resto 1=bms ◦ 12 / 2 = 6 (quociente) e resto 0 ◦ 6 / 2 = 3 (quociente) e resto 0 ◦ 3 / 2 = 1 (último quociente=BMS) e resto 1 } Binário = BMS ... bms = 1 1 0 0 1 = 1x24 + 1x24 + 0x22 + 0x21 + 1x20 = 16 + 8 + 0 + 0 + 1 = 25 decimal 17 } Procedimentos básicos: - divisão - polinômio - agrupamento de bits HEXADECIMAL DECIMAL OCTADECIMAL BINÁRIO divisão divisão agrupamento 4 bits polinômio divisão polinômio polinômio agrupamento 3 bits 18 19 a) (1011110010100111)2 = ( ? )16 b) (A79E)16 = ( ? )2 20 Conversão octal hexadecimal } Não é realizada diretamente não há relação de potências entre as bases oito e dezesseis. } Semelhante à conversão entre duas bases quaisquer base intermediária (base binária) } Conversão em duas etapas: 1 - número: base octal (hexadecimal) binária 2 - resultado intermediário: binária hexadecimal (octal) 21 } Operação inversa: mult ip l icar parte fracionária por 2 até que parte fracionária do resultado seja 0 (zero) } Bits da parte fracionária derivados das partes inteiras das multiplicações } Bit imediatamente à direita da vírgula = Parte inteira da primeira multiplicação 22 } Exemplo: converter 0,625 decimal para binário ◦ 0,625 x 2 = 1,25 logo a primeira casa fracionária é 1 ; nova fração (resto) é 0,25 (1,25-1=0,25) ◦ 0,25 x 2 = 0,5 segunda casa é 0 ; resto é 0,5 ◦ 0,5 x 2 = 1,0 terceira casa é 1 ; resto é zero. ◦ Resultado: 0,62510 = 0,1012 23 } Exemplo: converter 0,4 decimal para binário ◦ 0,4 x 2 = 0,8 logo a primeira casa fracionária é 0 ; nova fração (resto) é 0,8 ◦ 0,8 x 2 = 1,6 segunda casa é 1 ; resto é 0,6 (1,6 – 1) ◦ 0,6 x 2 = 1,2 terceira casa é 1 ; resto é 0,2 (1,2 – 1). ◦ 0,2 x 2 = 0,4 quarta casa é 0 ; resto é 0,4. e então começa uma dízima periódica... ◦ 0,410 = 0,011001100110....2 24 } Para converter um número com parte inteira e parte fracionária, fazer a conversão de cada parte, separadamente. 25 (8,375)10 = ( ? )2 26 } Operações com Números Binários ◦ Soma de Números Binários 0 + 0 = 0 0 + 1 = 1 1 + 1 = 10 ◦ Exemplos: Efetuar as seguintes somas 11002 + 1112 10111112 + 12 27 } Operações com Números Binários ◦ Exemplos: Efetuar as seguintes somas 1 1 1 0 0 + 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 + 1 1 1 0 0 0 0 0 28 } Operações com Números Binários ◦ Subtração de Números Binários 0 - 0 = 0 0 - 1 = 1 (e vai 1* para ser subtraído no dígito seguinte) 1 - 0 = 1 1 - 1 = 0 ◦ Exemplo: Efetuar a seguinte subtração 11011102 - 101112 29 } Operações com Números Binários ◦ Exemplo: Efetuar a seguinte subtração * * * * 1 1 0 1 1 1 0 - 1 0 1 1 1 1 0 1 0 1 1 1 Explicando: Quando temos 0 menos 1, precisamos "pedir emprestado" do elemento vizinho. Esse empréstimo vem valendo 2 (dois), pelo fato de ser um número binário. Então, no caso da coluna 0 - 1 = 1, porque na verdade a operação feita foi 2 - 1 = 1. Esse processo se repete e o elemento que cedeu o "empréstimo" e valia 1 passa a valer 0. Os asteriscos marcam os elementos que "emprestaram" para seus vizinhos. Perceba, que, logicamente, quando o valor for zero, ele não pode "emprestar" para ninguém, então o "pedido" passa para o próximo elemento e esse zero recebe o valor de 1. 30 } Operações com Números Binários ◦ Multiplicação de Números Binários Similar a multiplicação de números decimais com diferenças na hora de somar os termos resultantes da multiplicação ◦ Exemplos: Efetuar as seguintes multiplicações 10112 x 10102 1112 x 1112 31 } Operações com Números Binários ◦ Exemplos: Efetuar as seguintes multiplicações 1112 x 1112 = 4910 1 1 1 x 1 1 1 1 1 1 + 1 1 1 - 1 0 1 0 1 + 1 1 1 - - 1 1 0 0 0 1 32 } Operações com Números Binários ◦ Exemplos: Efetuar as seguintes multiplicações 10112 x 10102 = 11010 1 0 1 1 x 1 0 1 0 1 0 0 0 0 + 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 33 } Operações com Números Binários ◦ Divisão de Números Binários Similar à divisão de números decimais. É o reverso da multiplicação. Deve-se observar somente a regra para subtração entre binários. ◦ Exemplo: Efetuar a seguinte divisão 1000112 ÷ 1012 34 } Operações com Números Binários ◦ Exemplo: Efetuar a seguinte divisão 1000112 ÷ 1012 = 710 1 0 0 0’ 1’ 1’ / 1 0 1 - 1 0 1 1 1 1 à 710 0 1 1 0 1 1 1 - 1 0 1 0 1 0 0 1 0 1 - 1 0 1 0 0 0 35 } Operações com Números Hexadecimais ◦ Soma de Números Hexadecimais Processo semelhante ao da aritmética binária, com exceção que, neste caso, tem-se 16 algarismos disponíveis. Ocorrerá “vai 1” quando a soma de 2 algarismos for igual ou ultrapassar o valor da base (16). ◦ Subtração de Números Hexadecimais Mesma regra: o empréstimo quando ocorrer será de 16. ◦ Exemplos: 3A943B16 + 23B7D516 4C7BE816 + 1E927A16 36 } Operações com Números Hexadecimais ◦ Exemplos: Efetuar a seguinte soma 3 (16) B (16) D (16) 4 C 7 B E 8 - 1 E 9 2 7 A 2 D E 9 6 E 1 1 1 3 A 9 4 3 B + 2 3 B 7 D 5 5 E 4 C 1 0 37 38 } Representação pode variar (“flutuar”) a posição da vírgula, ajustando potência da base. ◦ 54,32 = 54,32 x 100 = 5,432 x 101 = 0,5432 x 102 = 5432,0 x 10-2 ◦ Forma normalizada usa um único dígito antes da vírgula, diferente de zero Exemplo: 5,432 x 101 39 } No sistema binário: ◦ 110101 = 110,101x23 = 1,10101x25 = 0,0110101x27 ◦ No caso dos números serem armazenados em um computador, os expoentes serão também gravados na base dois Como 310 = 112 e 7=1112 110,101 x (10)11 = 1,10101x(10)101 = 0,0110101x(10)111 ◦ Na representação normalizada, há apenas um “1” antes da vírgula Exemplo: 1,10101x(10)101 40 } Algumas definições: ◦ No número 1,10101x(10)101 , tomado como referência: 1,10101 = significando (ou “mantissa”) 101 = expoente } Observação: ◦ Quando usada em temas que envolvem computador, a base binária não precisa ser explicitada (o computador usa sempre esta) ◦ O “1” antes da vírgula, na representação normalizada – se esta for adotada –, também pode ficar implícito, economizando um bit (“bit escondido”). 41 } Representação genérica: ±d0,d1d2...dtx(b)exp , t é o número de dígitos da mantissa d1d2...dt = mantissa, com 0 ≤di ≤ (b-1) exp = expoente (inteiro com sinal) b = base } Observação: ◦ A base não precisa ser explicitada (mas pode) 42 } Represente os seguintes números em notação de ponto flutuante ◦ 4,32 ◦ 0,064 ◦ 371 ◦ 1234 ◦ 0,00183 ◦ 0,00000012 ◦ 10101012(versão normalizada) 43 } Na organização/arquitetura do computador, definir: ◦ Número de bits da mantissa (precisão, p) ◦ Número de bits do expoente ◦ Um bit de sinal (“0” para + e “1” para -) para o número (geralmente o primeiro, da esquerda) 44 } Ilustração } Sinal do número: 0 = + e 1 = - } Expoentes: 8 combinações possíveis ◦ 000 e 111 – especiais (ver adiante) ◦ 011 (310) = expoente zero ◦ 001 e 010 = expoente –2 e –1 (abaixo de zero) ◦ 100, 101 e 110 = expoentes 1, 2 e 3 (acima zero) ◦ OBS: Não podem seguir aritmética normal! Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Expoente (+/-) Significando Sinal 45 000 (especial) 001 (2-2) 010 (2-1) 011 (2 0) 100 (2 1) 101 (2 2) 110 (2 3) 111 (especial) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Expoente (+/-) Sinal 0 = + 1 = - 1,0000 1,0001 .... .... 1,1111 1 = bit escondido Significando 46 } Ainda os expoentes na ilustração... ◦ Maior número positivo é (lembre do bit escondido) 0 110 1111 = + 23 x 1,1111 = 1111,1 = 15,5 decimal ◦ Menor número positivo é (lembre do bit escondido) 0 001 0000 = + 2-2 x 1,0000 = 0,012 ou 0,25 decimal 47 } Combinações especiais dos expoentes na ilustração... ◦ 000 – representação NÃO normalizada Significando passa a ser 0,_ _ _ ... Expoente (000) = -2 Menor número positivo passa a ser 0 000 0001 = 2-2 x 0,0001 = 2-6 = 0,015625 48 } Ainda as combinações especiais... ◦ Normalização não permite representar zero! ◦ 000 – representação NÃO normalizada 00000000 = + 0 decimal 10000000 = - 0 decimal São iguais em comparações 49 } Ainda as combinações especiais... ◦ 111 – representações de infinito 0 111 0000 = + infinito 1 111 0000 = - infinito 1 111 1000 = indeterminação Outras combinações 1 111 1_ _ _ = Not A Number (NANs) 50 } Considere o seguinte computador hipotético com dois dígitos (p=mantissa=2), base B=2 (binário) e expoente na faixa -1 ≤ e ≤ 2. } Como o número é normalizado, isto é, d1 ≠ 0, qual é o menor número positivo que pode ser representado neste computador? E qual é o maior? 51 } Quais são os número positivos que podem ser representados neste computador? .102 x 2-1 = (1x2-1 + 0x2-2) x 2-1 = 1/4 .112 x 2-1 = (1x2-1 + 1x2-2) x 2-1 = 3/8 .102 x 20 = (1x2-1 + 0x2-2) x 20 = 1/2 .112 x 20 = (1x2-1 + 1x2-2) x 20 = 3/4 .102 x 21 = (1x2-1 + 0x2-2) x 21 = 1 .112 x 21 = (1x2-1 + 1x2-2) x 21 = 3/2 .102 x 22 = (1x2-1 + 0x2-2) x 22 = 2 .112 x 22 = (1x2-1 + 1x2-2) x 22 = 3 52 } Quais são os número positivos que podem ser representados neste computador? } Quais são os problemas desta representação? ◦ Como seriam armazenados neste computador hipotético os números 0,610 e 0,710 ? 53 } Outros problemas com armazenamento de números. ◦ Números decimais com um número INFINITO de dígitos terão uma representação binária também com número infinito de dígitos, tendo que ser arredondados para poder ser convertidos. 54 } Outros problemas com armazenamento de número. ◦ Qual a representação binária para o número 0,410? ◦ 0,410 = 0,01100110... 2 ◦ Números decimais com um número FINITO de dígitos poderão ter uma representação binária com número infinito de dígitos, tendo que ser arredondados para poder ser armazenado. 55 } A forma de representação de ponto flutuante depende do fabricante do computador. A maioria segue o padrão estabelecido pelo IEEE (Institute of Electrical and Electronics Engineers) 56 } O padrão IEEE 754 para ponto (vírgula) flutuante é a representação mais comum para números reais em computadores de hoje, incluindo PC's compatíveis com Intel, Macintosh, e a maioria das plataformas Unix/ Linux. 57 } O padrão (ou norma) IEEE 754 define dois formatos básicos para os números em ponto flutuante: ◦ o formato ou precisão simples, com 32 bits; e, ◦ o duplo com 64 bits. 58 Sinal Expoente(+/-) Significando Simples (32bits) 1 [bit31] 8 [bits30-23] 23 [bits22-00] Dupla (64 bits) 1 [bit63] 11 [bits62-52] 52 [bits51-00] n Sinal: 0 = + e 1 = - n Combinações Sinal + Expoente + Significando 59 } Expoentes na precisão simples c/256 combinações ◦ 1111 1111 sinal=1 e significando = 0...0 : -infinito sinal=0 e significando = 0...0 : +infinito sinal=1 e significando =10...0: indeterminado c/outras combinações: NAN 60 } Expoentes na precisão simples c/256 combinações ◦ 0111 1111 (12710) = expoente zero (bias = polarização) ◦ 0000 0001 = menor expoente = –126 (abaixo de um) ◦ 1111 1110 = maior expoente = +127 (acima de um) ◦ 0000 0000 = zero (não normalizado) sinal=1 e significando = 0...0 : -zero sinal=0 e significando = 0...0 :+zero 61 } Expoentes na precisão simples c/256 combinações (0) 0000 0000 (especial) (1) 0000 0001 (2-126) menor expoente .............. 0111 1100 (125) 0111 1101 (2-2) (126) 0111 1110 (2-1) (127) 0111 1111 (20) (128) 1000 0000 (21) (129) 1000 0001 (22) 1000 0010 ............. (254) 1111 1110 (2127) maior expoente (255) 1111 1111 (especial) 62 } Menor número positivo (lembre do bit escondido e não normalizada) ◦ 0 00000000 00….01 = 2-126 x 2-23 = 2-149 } Maior número positivo (lembre do bit escondido) ◦ 0 1111110 11...11 = 2127 x (2-2-23) } A faixa de números negativos é: ◦ de –(2-2-23) x 2127 a –2-149 63 } No formato (precisão) duplo: ◦ o menor expoen te é r ep resen tado po r 00000000001, valendo -1022, ◦ o m a i o r e x p o e n t e é r e p r e s e n t a d o p o r 11111111110, valendo +1023. ◦ Em ambos os casos, o expoente vale o número representado em binário menos 1023 (este é o valor da bias = zero). 64 Verifique: } Menor número positivo (lembre do bit escondido e não normalizada) ◦ 0 00000000000 00….01 = 2-1022 x 2-52 = 2-1074 } Maior número positivo (lembre do bit escondido) ◦ 0 1111110 11...11 = 21023 x (2-2-52) } A faixa de números negativos é: ◦ de –(2-2-52) x 21023 a –2-1074 65 } Expoentes na precisão dupla c/2048 combinações (0) 00000000000 (especial) (1) 00000000001 (2-1022) menor expoente .............. 01111111100 01111111101 (2-2) (1022) 01111111110 (2-1) (1023) 01111111111 (20) (1024 10000000000 (21) 10000000001 (22) 10000000010 ............. (2046) 11111111110 (21023) maior expoente (2047) 11111111111 (especial) 66 Propriedade Precisão Simples Dupla Comprimento total 32 64 bits na mantissa 23 52 bits no expoente 8 11 base 2 2 expoente máximo 127 1023 expoente mínimo -126 -1022 maior número ≈3,40 x1038 ≈1,80 x10308 menor número ≈1,18 x10-38 ≈2,23 x10-308 67 } Número finito de bits na representação implica em “truncamento” (ou arredondamento) do número real a ser representado. } Truncamento introduz erro na representação. } Casos especiais: ◦ Overflow: número a representar é maior que maior número possível de ser representado ◦ Underflow: número a representar é menor que menor número possível de ser representado 68 } A forma normalizada do número N é 1,n x 2e ◦ Supõe-se que e esteja dentro dos limites dessa representação (ou ocorreria overflow). ◦ Se n não couber no número de bits da representação (precisão) do significando, p, haverá truncamento, introduzindo erro. 69 } Operações com ponto flutuante ◦ Considere o seguinte computador hipotético com dois dígitos (p=2), base B=10 e expoente na faixa -4 ≤ e ≤ 5. Logo temos ±.d1d2 x 10e. } Represente os seguintes números neste computador ◦ 4,32 ◦ 0,064 ◦ 371 ◦ 1234 ◦ 0,00183 ◦ 0,00000012 ◦ 123456 sinal expoente mantissa 70 } O erro está sempre presente em cálculos devido à limitação das máquinas. } É necessário se ter uma estimativa desse erro de modo a se ter alguma confiança nos cálculos ou nas medidas. } Conceitos: ◦ Erro Absoluto ◦ Erro Relativo ◦ Precisão 71 } Erro absoluto ◦ Definição: Seja X o valor exato de uma medida e X’ um valor aproximado. ERRO ABSOLUTO referente à medida X (EAX) é a diferença entre os valores exato e aproximado. Isto é: EAX = |X – X’|. ◦ Em geral, apenas o valor aproximado X’ é conhecido. Neste caso utiliza-se uma estimativa para o módulo do erro absoluto tendo por base um limite superior. Exemplo: √2 ∈ [1,411, 1,412]. à |EAX| = |√2 – X| < 0,001, onde 0,001 é a amplitude do intervalo [1,411, 1,412]. 72 } Erro Relativo ◦ Definição: define-se o erro relativo de uma grandeza X, a razão entre o erro absoluto e o valor exato usado para essa grandeza. Isto é, ERx = EAx/X. 73 } Conhecidos os erros em dois números, é possível determinar o erro de uma operação entre eles, como adição, subtração, multiplicação e divisão. ◦ Erro depende de método / procedimentos empregados 74 } Procedimento básico para operações com ponto flutuante ◦ Soma e Subtração: alinhar as casas decimais para o maior expoente e somar as mantissas ◦ Multiplicação: multiplicar as mantissas e somar os expoentes. ◦ Divisão; dividir as mantissas e subtrair os expoentes. ◦ Normalizar o resultado 75 } Efetuar as seguintes operações de ponto flutuante e calcular os erros absoluto e relativo para cada uma delas. Identificar se em algum dos casos ocorre overflow ou underflow. ◦ Considere o seguinte computador hipotético com dois dígitos (p=2), base B=10 e expoente na faixa -5 ≤ e ≤ 5. Logo temos ±.d1d2 x 10e. 76 } Considere que nas operações de soma e subtração você tem 4 dígitos para armazenar temporariamente os números APÓS a conversão de base. 77 } Exemplo: ◦ 342 + 92,53 = 0,3420x103 + 0,9253x102 ◦ = 0,3420x103 + 0,092x103 = 0,43453 x103 Opções para armazenar ◦ Arredondar para cima: 0,44 x103 ◦ Arredondar para baixo: 0,43x103 ◦ Truncar: 0,43x103 78 } C o n s i d e r e q u e n a s o p e r a ç õ e s d e multiplicação e divisão você tem: ◦ 4 (2p) dígitos para efetuar as operações 79 } Exemplos ◦ 32 x 0,05 = 0,32x102 x 0,5x10-1 = (0,32x0,5) x 102+(-1) = 0,16 x 101 Opções para armazenar ◦ Arredondar para cima: 0,18 x101 ◦ Arredondar para baixo: 0,17x101 ◦ Truncar: 0,16x101 80 Existência Tipos Propagação 81 } Representação de números em um sistema computacional ◦ Todo esse processo de conversão é uma fonte de erros que pode afetar o resultado final dos cálculos. 82 Os dados de entrada são enviados ao computador pelo usuário no sistema decimal Toda a informação é convertida para o sistema binário Todas as operações são efetuadas no sistema binário Os resultados finais são convertidos para o sistema decimal e transmitidos ao usuário } Erro Inerente ◦ Erro sempre presente nas soluções numéricas devido à incerteza sobre o valor real ◦ Ex. 01: Representação intervalar de dados (50,3 ± 0,2) cm (1,57 ± 0,003) ml (110,276 ± 1,04) Kg 83 } Erro de Truncamento ◦ Erro proveniente da limitação do número de iterações dos métodos numéricos durante a determinação de um valor de interesse ◦ Número de iterações Teórico ð Infinito ou muito grande Prático ð Limitado por restrições associadas à capacidade de processamento/ armazenamento do sistema 84 } Erro de Representação ◦ Aproximação do valor de um número real para sua representação com um número finito de dígitos. 85 } Erro de Representação x Erro de truncamento ◦ Erro de Representação Associada à conversão numérica entre bases (representação humana e de máquina) ou à realização de operações aritméticas ◦ Erro de Truncamento Associada à quantidade de informação que a máquina pode conter sob a forma de um número 86 } Representação dos números reais com um número finito de dígitos (aproximação) ◦ Ex. 02: Cálculo da área de uma circunferência de raio 100 m (área = π x raio2 ) ◦ Possíveis resultados: 1. A = 31400 m2 2. A = 31416 m2 3. A = 31414,92654 m2 87 Erro de Representaçãoπ não tem representação finita - 3,14 (1), 3,1416 (2) e 3,141592654 (3) } Representação dos números reais com um número finito de dígitos (aproximação) ◦ Dependência da representação numérica da máquina utilizada 88 Um número pode ter representação finita (exata) em uma base e não finita em outra Erro de Representação Operações com dados imprecisos ou incertos acarretam a propagação do erro. (0,1)10 = (0,00011001100110011...)2 Ex. 03: Cálculo de usando uma calculadora e um computador, para xi = 0,5 e xi = 0,1 89 ∑ = = 3000 1i ixS xi Calculadora Computador 0,5 S= 1500 S= 1500 0,1 S= 300 S=300,00909424 (precisão simples) S=299,999999999999720 (precisão dupla) Ex. 04: Programa simples na Linguagem C que soma números fracionários void main( ) { int i; float soma = 0; for (i=1;i<=10000;i++); soma = soma + .0001; printf (“Soma = %10.7f”, soma); } A saída será o número 1.0000535, ao invés do número exato 1. O pequeno erro na representação do número decimal 0,0001 em binário se propagará pela soma, comprometendo o resultado final. 90 } Exatidão (Acurácia) x Precisão (I) ◦ Uso incorreto como sinônimos na linguagem cotidiana (e mesmo em linguagem técnica) Exatidão ð Grau de concordância entre o resultado de uma medição e um valor verdadeiro do mensurando Exatidão é um conceito qualitativo Precisão ð Grau de concordância entre resultados de medição obtidos sob as mesmas condições (repetitividade) Precisão é um conceito quantitativo 91 92 Precisão Ex at id ão (A cu rá ci a) } Exatidão (Acurácia) x Precisão (I) } Absoluto ◦ Diferença entre o valor exato de um número e o seu valor aproximado 93 xxEAx −= } Relativo ◦ Razão entre o erro absoluto e o valor aproximado 94 x )x(xERx − = Erro Percentualx = ERx x 100% } Precisão ◦ Uma medida Y tem maior precisão que outra medida X se o valor absoluto (sem sinal) do erro relativo da medida Y for menor que o erro relativo da medida X. 95 } Erro Absoluto - Considerações I ◦ EAx só poderá ser determinado se x for conhecido com exatidão ◦ Na prática, costuma-se trabalhar com um limitante superior para o erro, ao invés do próprio erro (|E | < ε, onde ε é o limitante) Ex. 05: Para π ∈ [3,14, ..., 3,15] 96 01,0EA <π−π=π } Erro Absoluto - Considerações II Ex. 05: Sejam a = 3876,373 e b = 1,373 Considerando-se a parte inteira de a (a’) o erro absoluto será: EAa = |a - a'|= 0,373 e a parte inteira de b, b’, o erro absoluto será: EAb = |b - b'|= 0,373 97 } Erro Absoluto - Considerações III ◦ Obviamente, o resultado do erro absoluto é o mesmo nos dois casos ◦ Entretanto, o peso da aproximação em b é maior do que em a 98 } Erro Relativo - Consideração O erro relativo, entretanto, pode traduzir perfeitamente este fato, pois: 99 4 a 100,0000963876 0,373ER −≤≅= 0 b 1050,3731 0,373ER ×≤≅= Ex. 06: Cálculo do erro relativo considerando- se os números ā = 2112,9, ē = 5,3 e | EA| < 0,1 |ERa| = |a - ā|/|ā| = 0,1/2112,9 ≅ 4,7 x 10-5 |ERe| = |e - ē|/|ē| = 0,1/5,3 ≅ 0,02 Conclusão: a é representado com maior precisão que e 100 } Arredondamento } Truncamento 101 Quanto menor for o erro, maior será a precisão do resultado da operação. } Arredondamento Ex. 07: Cálculo de utilizando uma calculadora digital Valor apresentado: 1,4142136 Valor real: 1,41421356... ◦ Inexistência de forma de representação de números irracionais com uma quantidade finita de algarismos Apresentação de uma aproximação do número pela calculadora Erro de arredondamento 102 2 } Truncamento ◦ Associação ao método de aproximação empregado para o cálculo de uma função exata, a partir do uso de fórmulas aproximada. ◦ Ex. 08: Cálculo do valor de ex e partir da série Impossibilidade de determinação do valor exato da função 103 ... 4! x 3! x 2! x x1e 432 x +++++= } Representação genérica: ±d0,d1d2...dtx(b)exp , t é o número de dígitos da mantissa d1d2...dt = mantissa, com 0 ≤di ≤ (b-1) exp = expoente (inteiro com sinal) b = base do sistema 104 } Ex. Representação de números em um sistema de três dígitos, b=10, l= -4 e u=4. 105 X Arredondamento Truncamento 1,25 0,125 x 10 0,125 x 10 10,053 0,101 x 102 0,100 x 102 2,71828 0,272 x 10 0,271 x 10 0,000007 Expoente < -4 Idem 718235,82 Expoente > 4 Idem } Sistema de aritmética de ponto flutuante de 4 dígitos, precisão dupla Ex. 09: Seja x = 0,937 x 104 e y = 0,1272 x 102. Calcular x + y ◦ Alinhamento dos pontos decimais antes da soma x = 0,937 x 104 e y = 0,001272 x 104, x+y = 0,938272 x 104 ◦ Resultado com 4 dígitos Arredondamento : x+y = 0,9383 x 104 Truncamento: x+y = 0,9382 x 104 106 Ex. 10: Seja x = 0,937 x 104 e y = 0,1272 x 102. Calcular x.y. x.y = (0,937 x 104) x (0,1272 x 102) x.y = (0,937 x 0,1272) x 106 x.y = 0,1191864 x 106 ◦ Resultado com 4 dígitos Arredondamento: x.y = 0,1192 x106 Truncamento: x.y = 0,1191 x106 107 } Considerações ◦ Ainda que as parcelas ou fatores de uma operação possam ser representados exatamente no sistema, não se pode esperar que o resultado armazenado seja exato. ◦ x e y tinham representação exata, mas os resultados x+y e x.y tiveram representação aproximada. 108 } Propagação dos Erros: ◦ Durante as operações aritméticas de um método, os erros dos operandos produzem um erro no resultado da operação ◦ Propagação ao longo do processo ◦ Determinação do erro no resultado final obtido 109 Ex. 11: Suponha-se que as operações a seguir sejam processadas em uma máquina com 4 dígitos significativos e fazendo-se: x1 = 0,3491x104 e x2 = 0,2345x100, tem-se: (x2 + x1) − x1 = = (0,2345x100 + 0,3491x104) − 0,3491x104 = 0,3491x104 − 0,3491x104 = 0,0000 x2 + (x1 − x1) = = 0,2345x100 + (0,3491x104 − 0,3491x104) = 0,2345 + 0,0000 = 0,2345 110 } Os dois resultados são diferentes, quando não deveriam ser, pois a adição é uma operação distributiva. (x2 + x1) − x1 = 0,0000 e x2 + (x1 − x1) = 0,2345 ! Causa da diferença ð arredondamento feito na adição (x2 + x1), cujo resultado tem 8 dígitos ! A máquina só armazena 4 dígitos (desprezando os menos significativos) 111
Compartilhar