190 likes | 362 Views
Aritmética do computador e erros. Introdução. Associado a uma representação especifica é necessário definir uma aritmética adaptada. E igualmente necessária de definir métodos para medir e administrar os erros de aproximação. Origem dos erros. Erros iniciais
E N D
Introdução • Associado a uma representação especifica é necessário definir uma aritmética adaptada. • E igualmente necessária de definir métodos para medir e administrar os erros de aproximação.
Origem dos erros • Erros iniciais • Problema mal condicionado, medidas aproximativas, modelo simplificado • Erros de arredondamento • Representação finita de números reais • Erros de truncamento • Método numérico de determinação de um valor
Erros iniciais • Problema mal condicionado: noção formalizada pelo matemático Hadamard (1902*). • O princípio é que um problema bem posto é um problema que tem uma solução única e cujo pequenas perturbações nos dados provoquam pequenas perturbações nos resultados. (*)Hadamard Jacques, Sur les problemes aux dérivées partielles et leur signification physique, 1902
Erros de aproximação • O computador representa os números de uma forma finita e aproximativa: • Precisa de forma de gerenciar o infinitamente pequeno e o infinitamente grande, • Precisa de minimizar e medir os erros de aproximação. Os números representados pelo computador não são distribuídos de forma homogênea dentro do conjunto de números reais.
Erros de truncamento • São os erros consecutivos ao truncamento de processos infinito para a determinação de valores: • Exemplo: exponencial de x O erro de truncamento é provocada quando ex é aproximado por exemplo com:
Comentários • Mais que o erro cometido, precisamos da precisão de um resultado. • Especificar o erro rigorosamente é na maioria dos casos impossível • as exigências matemáticas sobre as funções, formulas, etc, envolvidas para poder determinar o erro são difícil a satisfazer). • Algoritmos numéricos em geral não são acompanhados de gerenciamento de erro • O usuário deve determinar o nível de qualidade de um resultado
Administrar o erro • Comparação de resultados obtidos com diversas precisões (float, double, extended): os primeiros algarismos idênticos são considerados como dando o melhor resultado. • Esse método não funciona !
Administrar o erro • Exemplo de não funcionamento do método de comparasão: Considera a função seguinte: • Temos f(77617,33096)=-1.18059e+021 com float • Temos f(77617,33096)=-1.1805916207174e+021 com double (testes efetuados com Visual C++ e pentium) Quando o resultado é:
Calculadora • Esse método de limitação dos erros não funciona sempre, mas tem um certo domínio de validade. • As calculadoras usam esse método e calculam com mais algarismo que os algarismos do “display”, arredondando os resultados calculados.
Acompanhamento do erro • Existem vários modelos de acompanhamento do erro. O computador, na medida dos cálculos, determina a precisão deles: “self-validated computation”. A precisão de um cálculo é conhecido no final desse cálculo.
Acompanhamento do erro • Existem diversos métodos de acompanhamento: • Métodos baseados sobre estatísticas. • Métodos baseados sobre intervalos: determinar o intervalo que contem o resultado exato, em geral em função do intervalo que contem os dados de entrada.
Medida de erros • Erro absoluto: diferencia entre o valor exato e o valor aproximado: • Erro relativo: valor absoluto dividido pelo valor exato: • Porcentagem: Erro relativo x 100
Intervalo de confiança • Em certas situações, o fato que um dado esta num intervalo é baseado sobre probabilidade. Os intervalos de erros são acompanhados de valor de probabilidades. • Exemplo: Se x é dentro do intervalo [-1,1] com a probabilidade 0,95 e y é dentro do intervalo [4,6] com a probabilidade 0,8; x+y é dentro do intervalo [3,7] com a probabilidade minimal: 0,95+0,8-1=0,75. Em geral,
Adição de números • Adição de dois positivos: • Determinaçaõ de Xe-Ye e shift right de 1,Xm de Xe-Ye para alignar as mantissas: • Adição de 1,Ym e • Shift right ou left do resultado para chegar a uma forma 1,M com aumento ou diminução do exponente (n), • resultado:
Over-underflow • Os números manipulados • grande de mais para ser representados provocam um overflow. • pequeno de mais para ser representados provocam um underflow. • Os sistemas têm feedback diferentes em caso de over ou underflow. Certos param a execução, certos dão uma mensagem e outros representam o número de uma forma especifica.
Condicionamento de algoritmos • Para poder controlar mais precisão dos calculo, os algoritmos podem ser adaptados: • Se várias formulas permitem a determinação de um resultado, nem todas tem a mesma eficiência com os números do computador. • No caso de algoritmos iterativos, os passos de iteração podem ser escolhidos de tal forma de ser representáveis em binário.
Condicionamento de algoritmos • Com a representação usada pelo computador em geral a soma de um número muito grande é pouco significativa: • Exemplo: resolução de uma equação do segundo grau. • Se b é muito grande em relação com a e c, é mais calcular x2 e x1 em função de x2:
Condicionamento de algoritmos • No caso de iteração, temos sempre tendência a usar um passo formado por uma potencia de 10: 0,1; 0,01; etc • No caso da representação binária, essa tendência é pouca relevante. E melhor usar potencia de 2: 0,24;0,125, etc.