0 оценок0% нашли этот документ полезным (0 голосов)
20 просмотров21 страница
O documento discute erros numéricos em computação. Primeiro, explica que erros podem ocorrer devido à representação finita de números irracionais e com muitos dígitos em computadores. Em seguida, descreve os modelos de ponto fixo e ponto flutuante para representação de números. Por fim, discute a propagação de erros em operações aritméticas com ponto flutuante.
O documento discute erros numéricos em computação. Primeiro, explica que erros podem ocorrer devido à representação finita de números irracionais e com muitos dígitos em computadores. Em seguida, descreve os modelos de ponto fixo e ponto flutuante para representação de números. Por fim, discute a propagação de erros em operações aritméticas com ponto flutuante.
O documento discute erros numéricos em computação. Primeiro, explica que erros podem ocorrer devido à representação finita de números irracionais e com muitos dígitos em computadores. Em seguida, descreve os modelos de ponto fixo e ponto flutuante para representação de números. Por fim, discute a propagação de erros em operações aritméticas com ponto flutuante.
afr@ufpa.br Noções Básicas sobre Erros ■ Representação de Números ► Não é raro ter situações onde os resultados finais estejam distantes do resultado esperado ► Isto pode ocorrer mesmo que todos os cálculos estejam feitos corretamente Noções Básicas sobre Erros ■ Representação de Números ► Tais erros podem ser causados também pela limitação do computador em representar e operar certos números ► Exemplo: O cálculo da área A de uma circunferência de 100m de raio pode nos levar aos seguintes resultados: a) A = 31400 m2 b) A = 31416 m2 c) A = 31415.92654 m2 ► Qual a razão disso? Noções Básicas sobre Erros ■ Representação de Números ► Como pi é um número irracional, não é possível representá-lo com um número finito de dígitos ► Logo, um computador terá sempre um erro de precisão ao representar um número irracional ► Porém, esse problema de precisão não ocorre apenas com números irracionais Noções Básicas sobre Erros ■ Representação de Números ► Existe imprecisão ao manipular números com muitos dígitos, mesmo que sejam racionais ► Esta imprecisão depende ● Da base ● Do número máximo de dígitos usados na representação ► Um computador opera, geralmente, na base binária Noções Básicas sobre Erros ■ Representação de Números ► Um número pode ter representação finita na base decimal, porém infinita na base binária ► Exemplo: (0.125)10 = (0.00011001100110011...)2 ► Isso mostra que um computador que opera no sistema binário irá armazenar uma aproximação do número 0.125 Noções Básicas sobre Erros ■ Representação de Números ► Ponto Fixo: ● Convenciona-se um número de bytes para a parte inteira e para a parte decimal ● Ex.: Cada número é representado por 2 bytes – Definindo 1 byte para os inteiros – Poderíamos representar inteiros de -127 a 127 – Poderíamos representar a parte fracionária até 1/255 Noções Básicas sobre Erros ■ Representação de Números ► Ponto Flutuante: ● Neste modelo, quebramos o número em: – Mantissa – Expoente ● Exemplo com 2 bytes: – 11 bits para mantissa – 5 bits para expoente – Podemos representar inteiros de -1024 a +1023 – A menor parte fracionária seria 10 -16 Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► O número real r será representado por e ±(0. d 1 d 2 ... d t ) x B ● B é a base de operação ● t é o número de dígitos da mantissa ● e é o expoente Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo ● Considere uma máquina onde: B= 10; t = 3; – 5 <= e <= 5 ● O menor número representado nessa máquina é: 0.100 x 10ˆ-5 ● O maior número é: 0.999 x 10ˆ5 ● Ao tentar representar um número fora do intervalo de expoente, ocorre overflow ou underflow Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Em qualquer máquina, apenas um subconjunto dos reais são representados com exatidão ► Portanto, a maioria dos números reais são representados através de truncamento ou arredondamento ► Erro absoluto = |x – x’|, onde x é o valor exato e x’é o valor aproximado Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de truncamento ● Seja B = 10; t = 4; – 1 <= e <= 3 ● Como ficaria a representação do número 234.57? ------------------------------------------------------------------ Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de truncamento ● Seja B = 10; t = 4; – 1 <= e <= 3 ● Como ficaria a representação do número 234.57? ------------------------------------------------------------------ ● Como o max de dígitos é 4, ao fazer truncamento: x=0.23457 * 10ˆ3 x=0.2345 * 10ˆ3 (truncado) ● O erro absoluto de truncamento = 0.07 Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Técnica de Arredondamento Simétrico ● Se o valor do algarismo que fica na t+1-ésima casa decimal for menor do que 5, despreza-se os algarismos restantes após t+1 ● Se for maior ou igual a 5, soma-se 1 ao algarismo na t- ésima casa decimal e desprezam-se os algarismos restantes Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de Arredondamento ● Seja B = 10; t = 3; – 4<= e <=4 ● x = 1.25 ● x = 10.053 ● x = – 238.15 ● x = 2.71828 ● Quais os arredondamentos destes números? Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de Arredondamento ● Seja B = 10; t = 3; – 4<= e <=4 ● x = 1.25 x’= 0.125 * 10ˆ1 ● x = 10.053 x’= 0.101 * 10ˆ2 ● x = – 238.15 x’= – 0.238 * 10ˆ3 ● x = 2.71828 x’= 0.272 * 10ˆ1 Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de Arredondamento ● Seja B = 10; t = 3; – 4<= e <=4 ● x = 1.25 x’= 0.125 * 10ˆ1 ● x = 10.053 x’= 0.101 * 10ˆ2 ● x = – 238.15 x’= – 0.238 * 10ˆ3 ● x = 2.71828 x’= 0.272 * 10ˆ1 ● Quais os erros absolutos de arredondamento? Noções Básicas sobre Erros ■ Aritmética de ponto flutuante ► Exemplo de Arredondamento ● Seja B = 10; t = 3; – 4<= e <=4 ● x = 1.25 ; x’= 0.125 * 10ˆ1 |x – x’| = 0 ● x = 10.053; x’= 0.101 * 10ˆ2 Erro |x – x’| = 0.047 ● x = – 238.15; x’= – 0.238 * 10ˆ3 |x – x’| = 0.15 ● x = 2.71828; x’= 0.272 * 10ˆ1 |x – x’| = 0.00172 Noções Básicas sobre Erros ■ Propagação de erros com ponto-flutuante ► Ao realizar uma operação aritmética, poderá ser gerado um erro ► Exemplo: Obter (i) x + y; (ii) x * y Dados: x = 0.937 * 10ˆ4; y = 0.1272 * 10ˆ2 B = 10; t =4
Noções Básicas sobre Erros ■ Exercício 1: Represente os seguintes números usando ponto-flutuante. Caso possível, aplique o truncamento e o arredondamento e encontre o erro absoluto. ■ Dados: B=10; t = 3; – 3<= e <=3 a) 235.89 c) 0.00001 b) -1282 d) 0.021 Bibliografia ■ Cap. 1