Cálculo Numérico Erros em processamento Numéricos Agenda • • • • • • • • Introdução a Erros Mudança de Base Erros de representação Erro de arredondamento Erro de absoluto Erro relativo Erro de truncamento Propagação do Erro prof. Daniel Oliveira Erros • Fase da modelagem do modelo matemático • Fase de resolução do modelo matemático – Modelo exato (erros inerentes dos equipamentos de cálculo) – Modelo aproximado (além dos erros dos equipamentos, erro da aproximação do modelo) prof. Daniel Oliveira Erros Erros Problema Real Erros Solução para o modelo matemático Modelo Matemático Fase de Resolução Fase de Modelagem prof. Daniel Oliveira Mudança de base • Mudança de base – Representação interna de números pelos computadores – Mudança de base pode gerar erros devido a limitação da representação numérica do equipamento prof. Daniel Oliveira Mudança de base • Dados um número real N é sempre possível representá-lo em qualquer base b: m Nb ai b i i n ai {0,1, 2, 3,..., (b 1)}, n, m I prof. Daniel Oliveira Mudança de base • Base binária m Nb ai 2 , ai {0,1} i i n prof. Daniel Oliveira Mudança de base • Exemplo / Base Binária (1011)2 1 20 1 21 0 22 1 23 (11)10 2 1 (111.01)2 1 2 0 2 1 2 1 2 1 2 (7, 25)10 0 prof. Daniel Oliveira 1 2 Mudança de base • Exemplo / Base Decimal (231)10 1100 3 101 2 102 2 1 (231.35)2 5 10 3 10 110 3 10 2 10 prof. Daniel Oliveira 0 1 2 Mudança de base • Conversão de Decimal para binário – Dividir o número na base decimal sucessivamente por 2 – Armazenar o algoritmo de resto (r), até que o quociente da divisão seja igual a 1 – O binário é formado pelo quociente 1 e pelos coeficientes do resto da divisão, a partir do mais significativo (rn-1) para o menos significativo (rn) prof. Daniel Oliveira Mudança de base • Exemplo (25)10 1 20 0 21 0 22 1 23 1 24 (11001)2 25/2 = 12 resto = 1 12/2 = 06 resto = 0 11001 06/2 = 03 resto = 0 03/2 = 01 resto = 1 1/2 = 00 resto = 1 prof. Daniel Oliveira Mudança de base • Exemplo Qual seria a representação do número 11 em binário ? prof. Daniel Oliveira Mudança de base • Base decimal fracionário para binário a) Multiplica-se o número fracionário por 2 b) Do resultado do passo a, a parte inteira é o primeiro digito binário c) Do resultado do passo b, a parte fracionária é multiplicada novamente por 2 d) O processo continua até que a parte fracionária seja nula prof. Daniel Oliveira Mudança de base • Exemplo (0.1875)10 (0.0011)2 0 21 0 22 1 23 1 24 ( 3 )10 16 0.1875 x 2 = 0.375 → Parte Inteira = 0 e parte fracionária = 0.375 0.375 x 2 = 0.750 → Parte Inteira = 0 e parte fracionária = 0.75 0.75 x 2 = 1.5 → Parte Inteira = 1 e parte fracionária = 0.5 0.5 x 2 = 1.0 → Parte Inteira = 1 e parte fracionária = 0 0.0011 prof. Daniel Oliveira Mudança de base • Exemplo (13.25)10 (13)10 (0.25)10 (1101)2 (0.01)2 (1101.01)2 (0.2)10 (0.2)10 (0.001100110011...)2 0.2 é uma dizima periódica de período (0.0011). Este número não pode ser representado de forma exata em binário. Apenas é possível uma representação aproximada, ou seja, temos ERRO prof. Daniel Oliveira Erros de representação • Os computadores armazenam os números com uma quantidade limitada de algarismos • Os números são armazenados com um indicador de sinal e um número fixo e limitado de dígitos significativos. prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • Número nesse sistema é caracterizado por: – Um número é caracterizado por um base b – Um número de dígitos significativos n – Um expoente exp n mb exp m é a mantissa do número, b ≥ 2 é base e exp é o expoente da base prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • Condições para este sistema: – m = ±0.d1,d2,d3,..,dn – n é o número máximo de dígitos da mantissa. – d1,d2,d3,..,dn – são os dígitos significativos da mantissa – 1≤d1 ≤(b-1) – 1≤di ≤(b-1); i=2,3,...,n – expmin ≤ exp ≤ expmax prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • A união de todos os números de pontos flutuante, juntamente com a representação do zero constitui o sistema de ponto flutuante normalizado – SPF(b,n,expmin,expmax) • Representação do zero: zero : 0.000...0b N vezes prof. Daniel Oliveira expmin Erros de representação Sistema de Ponto Flutuante Normalizado • O menor número positivo representado menor (0.100...0)b N-1 vezes prof. Daniel Oliveira expmin Erros de representação Sistema de Ponto Flutuante Normalizado • O número máximo de mantissas possíveis: mantissas (b 1)b prof. Daniel Oliveira n 1 Erros de representação Sistema de Ponto Flutuante Normalizado • O número máximo de expoentes possíveis: exp possiveis expmax expmin 1 prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • O número de elementos positivos representáveis: NR mantissas exp possiveis prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • O número de elementos representáveis: NRt 2 NR 1 prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • Exemplo – seja o sistema de ponto flutuante SPF(3,2,-1,2): 1 0.10 3 1 0.22 32 8 (3 1)321 6 Menor inteiro representado 9 2 (1) 1 4 6 4 24 Maior inteiro representado Máximo de mantissas positivas possíveis Máximo de expoentes possíveis Número máximo de reais positivos representados prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • Se x pertence a um SPF então (-x) também pertencerá • Considerando o zero é tem sua própria representação em um SPF, então: 1 1 R x; x [ ,8] [8, ] {0} 9 9 Qualquer número real que não pertence a R não poderá ser representado nesse SPF prof. Daniel Oliveira Erros de representação Sistema de Ponto Flutuante Normalizado • Erro de underflow ocorre quando tentamos representar um número muito pequeno para o SPF 1 1 Under x; x [ , 0] [0, ] 9 9 • Erro de overflow ocorre quando tentamos representar um número muito grande para o SPF Over x; x [, 8] [8, ] prof. Daniel Oliveira Erro de arredondamento • Quando não for possível representar de forma exata um número em um SPF o mesmo é aproximado (nra) • Esta aproximação é o arredondamento do real nr prof. Daniel Oliveira Erro de arredondamento • Um número real é arredondado na posição k se todos os dígitos de ordem maior do k do forem descartados de acordo com os critérios: – O dígito k é somado com um se o de ordem (k+1) for maior que a metade da base. Caso contrário, o número nr é representado com os k dígitos iniciais. – Se o dígito de ordem (k+1) for igual a metade da base e o de ordem k é par, então o número nr é representado com k dígitos, e se o dígito de ordem k é impar, então o de ordem k é acrescido de uma unidade. – O arredondamento por corte considera que, para obter um número com k dígitos, simplesmente trunca-se na posição k. prof. Daniel Oliveira Erro absoluto • Definido como: Eabs aex aaprox Sendo aex o valor exato da grandeza e aaprox o valor aproximado da grandeza. prof. Daniel Oliveira Erro absoluto • O valor exato da grandeza muitas vezes é desconhecidos • Assim, trabalha-se com limitante para o erro : Eabs aex aaprox aex aaprox prof. Daniel Oliveira Erro Relativo • Definido como: Erel aex aaprox E aex aex Sendo aex o valor exato da grandeza e aaprox o valor aproximado da grandeza. prof. Daniel Oliveira Erro relativo • Como na maioria das vezes não temos o valor exato, utilizamos um limitante superior para o erro relativo aaprox Aonde δ é um limitante conhecido prof. Daniel Oliveira Erro relativo • No erro absoluto não é levado em conta a grandeza dos números envolvidos • No erro relativo a grandeza do número é considerada prof. Daniel Oliveira Erro relativo • Qual valor é mais preciso? – Seja o valor exato aex = 2345.713 e o valor aproximado aaprox = 2345.000 então temos: Eabs = 0.713 e Erel = 0.00030396 – Seja o valor exato aex = 1.713 e o valor aproximado aaprox = 1.000 então temos: Eabs = 0.713 e Erel = 0.416229 prof. Daniel Oliveira Erro de truncamento • Como foi visto, os sistema computacionais tem uma limitação para a representação de números. • Se considerarmos apenas um número finito de termos, dizemos que estamos cometendo um erro de truncamento prof. Daniel Oliveira Erro de truncamento • Seja a representação de ex: 2 3 x x ex 1 x 2! 3! xn n! Supondo que podemos representar apenas os 4 primeiros termos: 2 3 x x 1 3 2 e 1 x ( x 3x 6 x 6) 2! 3! 6 n x erro n4 n! x prof. Daniel Oliveira