Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFRN Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Representação da Informação e Erros de Arredondamento ECT1303 – Computação Numérica • Manter o telefone celular sempre desligado/silencioso quando estiver em sala de aula; • Nunca atender o celular na sala de aula. 2 Objetivos • Introduzir os conceitos de exatidão e precisão, bem como de algarismos significativos; • Discutir a representação em ponto flutuante nos computadores ; • Definir os conceitos de truncamento e arredondamento; • Analisar os erros decorrentes do armazenamento de números nos computadores. 3 Erros • Solução de problema em engenharia – Modelo matemático – Métodos de resolução do modelo • Se possível, obtemos soluções analíticas • Contudo, as vezes o modelo não possui uma solução analítica ou esta é de dificil solução – Utilizar métodos numéricos (com o possivel auxilio de equipamentos eletrônicos: calculadora, computador) 4 Problema Fisico Modelo Matemático Solução Modelagem Resolução Erros • Portanto, a solução de um determinado problema apresenta erros nas duas fazes: 5 Modelagem Resolução Erros na fase de modelagem • Raramente se tem uma descrição matemática perfeita do sistema físico – A realidade é matemática? – Várias simplificações • Relatividade Geral → Gravitação de Newton • Erros nos dados de entrada • Ex: determinar a altura de um edifício com uma bolinha de metal e um cronometro – Desconsideramos velocidade do vento, resistência do ar, imprecisão do cronometro… 6 Erros na fase de resolução • Dois tipos básicos: 7 Erros de arredondamento Oriundos da forma de representação numérica em computadores (só podem representar quantidades com número finitos de algarismos). Erros de truncamento Resultam do uso de uma aproximação no lugar de um procedimento matemático exato. Algarismos Significativos • Quais as marcações dos ponteiros maiores dos altímetros? 8 Algarismos Significativos Algarismos significativos de um número são aqueles que podem ser usados com confiança. Correspondem ao número de algarismos corretos de uma medida mais um algarismo estimado! 9 Algarismos Significativos • Quais as marcações dos ponteiros maiores dos altímetros? 9,2 6,58 10 Algarismos Significativos • Os zeros nem sempre são contados como algarismos significativos: – Podem indicar somente localização da vírgula! Exemplos: - 0,000561, 0,00561 e 0,0561 têm 3 algarismos significativos - 31.500 pode ter 3, 4 ou 5 algarismos significativos • Para evitar confusão, é usada notação científica. Exemplos: - 5,61x10-1 possui 3 algarismos significativos - 3,150x103 possui 4 algarismos significativos 11 Algarismos Significativos • Duas observações importantes: Algumas grandezas não podem ser representadas exatamente usando um número finito de algarismos significativos: O Engenheiro/Cientista deve saber com quantos algarismos significativos ele deve buscar uma solução numérica para seu problema! 12 Exatidão e Precisão • Ao cobrar pênaltis, um jogador acertou 10 vezes consecutivas o travessão. Ele foi exato, preciso, os dois ou nenhum dos dois? 13 Exatidão e Precisão • Os termos exatidão e precisão relacionados a cálculos e medições: Exatidão (Acurácia) Quão próximo o valor calculado ou medido está do verdadeiro Precisão Quão próximo cálculos ou medições sucessivas estão uma das outras 14 Exatidão e Precisão 15 Representação em Ponto Flutuante • Já foi visto em IF a representação de números inteiros na base 2. E quanto aos números reais? Como o computador armazena o número π? • É necessário saber converter um número real entre bases! Conversões para a base 10: 195210 = (1x10 3 + 9x102 + 5x101 + 2x100)10 23,9610 = (2x10 1 + 3x100 + 9x10-1 + 6x10-2)10 110012 = (1x2 4 + 1x23 + 0x22 + 0x21 + 1x20)10 10,1012 = (1x2 1 + 0x20 + 1x2-1 + 0x2-2 + 1x2-3)10 16 • Conversão da parte fracionária → decimal para binário Considere o número decimal em que deseja-se obter a representação binária Representação em Ponto Flutuante a) Multiplique o número decimal por 2. A parte inteira do resultado é o bit b1. b) Descarte a parte inteira do número real obtido, ficando somente a parte fracionária. c) Repita a) para obter os bits sucessivos b2, b3, ..., até que obtenha parte fracionária nula ou precisão desejada 17 Exemplos Encontrar o valor na base 2 dos seguintes números na base 10: 34 0,75 4,125 3,8 33,023 3,8 não tem representação exata na base 2! Erros computacionais de arredondamento! 18 • Representação em ponto flutuante normalizada: é chamado de mantissa é a base do sistema de numeração é o expoente, inteiro, expresso em decimal e armazenado na base do sistema como inteiro com sinal p é a precisão da representação em que: Representação em Ponto Flutuante 19 • Representação em ponto flutuante normalizada: Representação em Ponto Flutuante Sistemas de Numeração em Ponto Flutuante é a base, p é a precisão, m e M são os valores mínimos e máximos que o expoente pode assumir. 20 Exemplos • Ex1: Represente 31,41510 no sistema F(10,5,-2,2) 31,415 = 0,31415 ∙ 102 m𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 3 1 4 1 5 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = [2] • Ex2: Represente 2910 no sistema F(2,10,-7,7) 2910 = 111012 = 0,11101 ∙ 2 5 = 0,11101 ∙ 21012 m𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 1 1 1 0 1 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = [1 0 1] Se neste caso representarmos a mantissa com 10 dígitos teremos 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑎 = 1 1 1 0 1 0 0 0 0 0 𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 = [1 0 1] Exemplos Encontrar o valor na base 10 dos seguintes números que estão no sistema F(2,3,-3,3): -0,101x22 0,100x2-3 -0,110x2-1 0,111x23 22 Quantos bits são necessários para representação no sistema F(2,3,-3,3), sabendo que um bit é usado como sinal da mantissa e outro como sinal do expoente? Qual o menor número positivo representado no sistema F(2,3,-3,3)? Representação em Ponto Flutuante 0 1 1 1 1 0 0 21 Sinal da mantissa Sinal do expoente expoente mantissa 20 2-1 2-2 2-3 23 Convenção: bit 0 -> + bit 1 -> - Exemplos Quais números podem ser representados no sistema F(2,3,-3,3)? 24 Note que as mantissas possíveis, em módulo, são: 0,100 = 0,510 0,101 = 0,62510 0,110 = 0,7510 0,111 = 0,87510 e que os expoentes variam de -3 a 3: Representação em Ponto Flutuante 25 Representação em Ponto Flutuante – Menor real positivo representado em – Maior real positivo representado 26 Representação em Ponto Flutuante • Números reais máximos e mínimos que podem ser representados usando um sistema: 0 xm -xm xM -xM Intervalo de representação Intervalo de representação underflow overflow overflow 27 Overflow: expoente maior que o expoente máximo Underflow: expoente menor que o expoente mínimo Representação em Ponto Flutuante 0 0,0625 -0,0625 7 -7 Intervalo de representação Intervalo de representação underflow overflow overflow • Observações importantes – Existe um intervalo limitado de quantidades que podem ser representadas num sistema em ponto flutuante! – Existe apenas um número finito de números reais que podem ser representados num determinadosistema. – O intervalo de representação aumenta conforme o módulo dos números cresce. F(2,3,-3,3): 28 Exemplos Represente os números 0,7510 e 1,4510 no sistema F(2,3,-3,3) dos exercícios anteriores. 0,75 x2 1,50 0,50 x2 1,00 0,45 x2 0,90 0,90 x2 1,80 0,80 x2 1,60 0,60 x2 1,20 0,20 x2 0,40 Resolvendo 0,7510 : Parte Fracionária Resolvendo 1,4510: Parte Fracionária O que fazer nesse caso? 29 Truncamento e Arredondamento Truncar Significa abandonar todos os dígitos menos significativos a partir de uma determinada posição. Exemplo: Truncar (1,01110 ...)2 para 3 dígitos significativos. Nesse caso, os dígitos em vermelho, a partir do 4º dígito (incluso), seriam abandonados (1,01110 ... )2 O número após o truncamento será: 1,012 = 0,101x2 1 30 Truncamento e Arredondamento Arredondar Significa truncar todos os dígitos menos significativos a partir de uma determinada posição, de forma a torná-lo mais próximo do número original. Regra para arredondamento em d casas de números representados em binário: - Se bd+1 for 0: x’ já está na forma arredondada - Se bd+1 for 1: adiciona-se 1 bd, tornando x’ = b1b2...(bd+1) Trunca-se x na posição d: x’ = b1b2...bd 31 Truncamento e Arredondamento Exemplo: Arredondar (1,01110 ...)2 para 3 dígitos significativos Nesse caso, os dígitos em vermelho serão excluídos e será adicionado 1 ao dígito em azul, pois o 1º dígito em vermelho é igual a 1 (1,01110 ... )2 O número após o arredondamento será: 1,102 = 0,110x2 1 32 Representação em Ponto Flutuante • Voltando ao exercício: Represente o número 1,4510 no sistema F(2,3,-3,3) Usando truncamento O arredondamento gerou um ERRO menor Usando arredondamento 1,012 = 0,101x2 1 = 1,2510 1,102 = 0,110x2 1 = 1,5010 33 Definições de Erro No sentido estrito, erro verdadeiro (E) é definido como: E = valor verdadeiro - aproximação onde o Valor Verdadeiro = aproximação + E! Define-se: 34 Exemplo Calcular os erros relativos na representação de 1,4510 no sistema F(2,3,-3,3), considerando o truncamento e o arredondamento. Truncamento Arredondamento 35 Arredondamento de números da base 10 Arredondar na base 10 para k casas Exemplo: Arredondar para 3 os números que estão com 5 dígitos significativos: (2,3555)10 - (0,23401x10 3)10 - (0,99144)10 - (0,99971)10 Respostas: 2,36 – 0,234x10 3 – 0,991 – 1,00 36 Epsilon (ε) de um Computador Considere um computador que manipula números reais a partir de um sistema . Qual o erro relativo máximo cometido na representação de um real –xM ≤ x ≤ xM nesse sistema? Vejamos o caso do sistema F(2,3,-3,3) já estudado: Para um mesmo expoente, os incrementos ∆x são constantes! Se definirmos o erro: Então, para cada expoente, Er será máximo quando x for o menor real representado! 0,031250 0,031250 0,031250 0,031250 1,0 1,0 1,0 1,0 37 Exemplo Calcular os erros relativos máximos no sistema F(2,3,-3,3) para os expoentes -2 e 3. Para o expoente -2: Para o expoente 3: Iguais! Coincidência? 38 Epsilon (ε) de um Computador Epsilon (ε) de um sistema em ponto flutuante Representa o maior erro relativo causado pela representação de um número real num sistema em ponto flutuante Para o sistema F(2,3,-3,3): 39 Aritmética Flutuante Os erros de arredondamento causados pela representação em computador tendem a se propagar e, algumas vezes, a se amplificar ao longo de cálculos efetuados. Exemplo com uma mantissa de 4 algarismos: Note uma ligeira perda de precisão com relação ao valor exato desta operação que é 1. 1 3 3 (0,3333100) (0,3000101) 0,9999100 40 Multiplicação e divisão A multiplicação e a divisão são particularmente simples em aritmética flutuante devido à lei dos exponenciais. Exemplo com uma mantissa de 4 algarismos: (0,4035106) (0,1978101) 0,0798123105 0,7981104 41 Adição e subtração É preciso ser prudente com a adição e subtração! Primeiramente, adicionamos zeros à mantissa do número tendo o menor expoente de modo que os dois expoentes sejam iguais. Em seguida, efetuamos a operação normalmente e colocamos o resultado em notação flutuante Exemplo com uma mantissa de 4 algarismos: 0,4035106 0,1978104 0,4035106 0,001978 106 0,405478106 0,4055106 42 Operações de risco Algumas operações são particularmente sensíveis aos erros de arredondamento. Estas operações devem ser evitadas sempre que possível! 43 Operações de risco Adição de números com ordens de grandeza muito diferentes. Exemplo com uma mantissa de 4 algarismos: A lei dos expoentes e a aritmética flutuante fazem com que o número pequeno desapareça completamente frente ao grande. 4000 0,001 0,4000104 0,1000102 0,4000104 0,0000001104 0,4000001104 0,4000104 44 Operações de risco Subtração de números quase iguais. Exemplo com uma mantissa de 10 algarismos: Os quatro zeros no final da mantissa não têm significado e assim perdemos 4 casas decimais. 2- 2 22 10 000,50314200 100000503142,0 10 570,9937303410 990,99378065 98759876 45 Operações de risco Subtração de números quase iguais. Podemos obter um resultado mais preciso? SIM! Nem sempre existe uma maneira trivial de resolver tais erros de aritmética flutuante. 9876 9875 1 9876 9875 0,5031418679104 46 Atividade Considere a função: a) Use o SciLab para calcular o valor de f(x) para x = 10, x = 1000 e x = 100000. b) Use o sistema decimal com 6 algarismos significativos para calcular f(x) para os valores de x indicados na letra (a). Compare os resultados com os valores obtidos na letra (a). c) Transforme f(x) multiplicando a função por . Usando a nova forma, calcule novamente o valor de f(x) para os três valores de x no sistema decimal com 6 algarismos significativos. Compare os resultados com aqueles obtidos na letra (a). f (x) x( x x 1) x x 1 x x 1 47 Atividade Computadores e softwares atuais usam o padrão IEEE 754-2008 para representação em ponto flutuante. Alguns dos sistemas definidos nesse padrão são: Encontre os intervalos de overflow e underflow de cada sistema, assim como o epsilon da máquina. Nome do sistema Especificação Média precisão F(2,11,-14,15) – 16 bits Precisão simples F(2,24,-126,127) – 32 bits Precisão dupla F(2, 53, -1022, 1023) – 64 bits Precisão quádrupla F(2, 113, -16382, 16383) – 128 bits 48
Compartilhar