Noções sobre Erros em Matemática Computacional
Sumário Representação de Números em Ponto Flutuante Erros em Expressões Definições Úteis
Ponto Flutuante em Computadores
Representação de Números em Ponto Flutuante Um sistema de representação de números em ponto flutuante é definido por: β : base t : número de dígitos da mantissa e: expoente. Onde e [ l, u] e [ 5,5] Seja β=10, t=3 e, quais o maior e o menor números representáveis nesse sistema?
Representação em Ponto Flutuante O menor número, em valor absoluto, representável é: m = E o maior número é: 0,1*10 5 = M = 0,999*10 5 = Considerando o conjunto G abaixo e os números reais são possíveis três situações 10 6 99900 G = { x R m x M}
Situações Possíveis Seja β=2, t=5 e e [ 5,5] x > M : Impossibilidade de representação. Número grande demais. overflow. Ex. 0,100*2 9 x G Número de dígitos t: representação ok. Ex. 0,110* 2 2 Número de dígitos > t: truncagem ou arredondamento Ex. 0,1101111*2 4 x < m : Impossibilidade representação. Número pequeno demais. underflow
Introdução ao Estudo do Erros Define-se como erro absoluto a diferença entre o valor exato (x) e o valor aproximado: EA x = x x Geralmente x não é conhecido, apenas um limite superior e inferior (l,u). Se o valor pertencer ao mesmo intervalo então: EA < l u
Erro Relativo O erro absoluto não leva em consideração a ordem de grandeza do valor x. Para solucionar tal problema utiliza-se o Erro relativo. Define-se como erro relativo (ER x ) como: ER x = x x x
Erros no Arredondamento e Truncamento Considerando um sistema de ponto flutuante com t dígitos, na base 10, podemos escrever x como: x = * 10 e f x *10 + g x onde 0,1 f x <1 e 0 g x <1 e t A parcela g x não pode ser incorporada a mantissa. Então quais as opções? Qual o erro gerado por cada opção?
Erro Absoluto e Relativo em Truncamento No truncamento, g x * 10 e-t é desprezado, e logo: x = * 10 Temos: f x
Erro Absoluto e Relativo no Arredondamento Simétrico Arredondamento Simétrico: Em qualquer caso, pode-se demonstrar que:
Sumário Representação de Números em Ponto Flutuante e Erros Erros em Expressões Definições Úteis
Análise de Erros em Operações Erro em operações podem ser gerado por erros nas parcelas e erros no armazenamento do resultado. Exemplo de erro no resultado (t=4 e base 10):
Análise de Erros em Operações 2 Exemplo 2: Obter x*y Truncamento: Arredondamento:
Análise de Erros em Operações 3 Desconsiderando erros de representação nas parcelas, os erros relativos ficam limitados a: Considerando erro na representação de ambas as parcelas x e y, temos:
Análise de Erros em Operações 4 O erro absoluto na soma é dado por: Erro relativo na soma:
Análise de Erros em Operações 5 Subtração (análogo a soma):
Análise de Erros em Operações 6 Multiplicação Em geral, EA x e EA y serão bem menores que x e y, respectivamente. Então:
Análise de Erros em Operações 7 No caso da divisão, pode-se demonstrar que:
Análise de Erros em Expressões Suponha x,y,z e t representados de forma exata, qual o erro relativo na expressão u= (x+y)z-t. Suponha ainda o uso de arredondamento nos resultados Seja s=(x+y) e RA o erro de arredondamento, então: Seja m= s*z, Logo:
Análise de Erros em Expressões 2 Calculando u=m-t, temos: Então: Logo:
Cancelamento Subtrativo Número próximos em subtrações podem levar a limites elevados para erros relativos
Cancelamento Subtrativo Dados x e y, se z=x-y, então: Se x e y foram arredondados: Se x e y forem próximos, por exemplo: Então:
Sumário Representação de Números em Ponto Flutuante Erros em Expressões Definições Úteis
Precisão da Máquina Chama-se de precisão da máquina (ou epsilon da máquina) o menor número positivo(ε) tal que (1+ε)>1. Tal número depende de: base numérica, dígitos na mantissa e compilador utilizado. Como calcular?
Precisão da Máquina 2 É possível calcular (ε) utilizando o algoritmo: Passo 1: a=1 Passo 2: Enquanto (1+a) >1 faça a= a/2 Passo 3: Faça epsilon=2*a e imprima epsilon
Dígitos significativos Em um sistema de numeração, um dígito é significativo se: for diferente de zero caso seja zero, se não for usado para fixar a vírgula ou preencher o lugar de dígitos descartados Exemplos de dígitos significativos (no sistema decimal): 0,008735: 8, 7, 3 e 5 30457: todos 23000: 2 e 3
Dígito Significativo Exato Um dígito significativo é exato se arredondando-se o número para uma posição imediatamente após a posição do dígito, isso fizer com que o erro absoluto não seja maior que a meia unidade na posição do dígito. Exemplos:
Dígito Significativo Exato - 2 Exemplo: x = 2/3 e p/ 1º. Digito 6 0,66 0,666... = 0,006... < 0,05 p/ 2º. Digito 6 0,666 0,666... = 0,0006... < 0,005 = 5*10-3 p/ 3º. Digito 6 x = 0,66667 0,6666 0,666... = 0,00006... < 0,0005 = 5 *10-4 p/ 4º. Digito 6 0,66667 0,666... = 0,0000033... < 0,00005 = 5 * 10-5 p/ Digito 7 0,666670 0,666... = 0,00000333... < 0,000005 = 5 * 10-6 Todos são dígitos significativos exatos
Dígito Significativo Exato - 3 Exemplo 2: Exemplo: x = 2/3 e p/ 1º. Digito 6 0,66 0,666... = 0,006... < 0,05 p/ 2º. Digito 6 x = 0,666998 0,666 0,666... = 0,0006... < 0,005 p/ 3º. Digito 6 0,6669 0,666... = 0,000233... < 0,0005 p/ Digito 9 0,66699 0,666... = 0,000323.. > 0,00005 (dígito 9 inexato!)
Condicionamento e Estabilidade Numérica Condicionamento: relaciona-se a sensibilidade aos erros nos dados de entrada Um problema é bem condicionado, se pequenos erros nos dados de entrada produzem pequenos erros nos resultados. Um problema é mal condicionado se os erros nos resultados são grandes apesar dos dados de entrada terem pequenos erros de entrada Estabilidade Numérica: Um algoritmo é instável numericamente se pequenos erros em dados intermediários levam a grandes erros nos resultados. Logo, se um problema é mal condicionado qualquer algoritmo será instável para ele
Métricas de condicionamento Há métricas para o condicionamento de sistemas de equações, baseadas em normas de vetores e matrizes (vide Cláudio & Marins) No entanto, estes cálculos podem ser complexos e não evitam o problema...por isso, não iremos detalha-lhos maiores informações podem ser obtidas em (Cláudio & Marins) e (Chapra &Canale) Em sistemas lineares, mostraremos técnicas para minimizar problemas de condicionamento Algoritmos geralmente ficam instáveis ao calcular valores intermediários muito grandes (próximos a M) ou muito pequenos (próximos a m)