Fundamentos IV Introdução a análise de erros Gustavo Vinhal Escola de Ciências Exatas e Computação August 12, 2016
Como aparecem os erros na matemática?
Objetivos da ciência Entender, modelar e simular um fato real
Modelagem matemática Fases da modelagem matemática
Erros intrísicos aos modelos Erros inerentes aos modelos Erros nos instrumentos de medida Erros em medições experimentais Erros de conversão numérica Erros das operações aritméticas
Erros numéricos - erro absoluto Diferença entre o valor exato e o valor aproximado de um número E x = x x Onde, x é o valor exato e x é o valor aproximado
Erros numéricos - Erro relativo Diferença entre o valor exato e o valor aproximado de um número, dividida pelo valor exato R x = x x x = R x x Onde, x é o valor exato e x é o valor aproximado
Exemplo 1 Se x = 5 e x = 4 E x = x x = 5 4 = 1 R x = x x x = 5 4 5 = 1 5 = 0, 2 = 20%
Exemplo 2 Se y = 10000 e ȳ = 9999 E y = y ȳ = 10000 9999 = 1 R y = y ȳ y = 1 10000 = 0, 0001 = 0, 001%
Conclusão O erro relativo é uma medida melhor do erro, pois leva em consideração a ordem de grandeza da quantidade
Erros na resolução do modelo matemático Erro de conversão do sistema decimal (humano) para o sistema binário (computador) No computador existe uma quantidade finita (muito grande) de números As operações aritméticas são realizadas com essa quantidade finita de números O conjunto de números usados pelo computador chama sistema aritmético de ponto flutuante
Sistema aritmético de ponto flutuante Conjunto de números que depende de vários parâmetros β - base do sistema de numeração t - número de algarismos de uma mantissa m - mentor potência de β permitida M - Maior potência de β permitida Denotamos o sistema por F (β, t, m, M)
Quais são os elementos de um sistema aritmético de ponto flutuante?
Os elementos do sistema 0 Números da forma ±(0, d 1 d 2... d t ) β β exp, onde m exp M e β é a base do sistema de numeração Os algarismos d 1 d 2... d t, são números inteiros escolhidos entre os números {0, 1,..., β 1}, com d 1 0 O conjunto {0, 1,..., β 1} é a mantissa
Quantidade de elementos Quantos elementos contém um sistema aritmético de ponto flutuante? 2(β 1)(M m + 1)β t 1 + 1
Exemplo 3 No sistema F (2, 4, 4, 5), temos β = 2, t = 4, m = 4, M = 5 Então F, possui 2 (2 1)(5 ( 4) + 1) 2 4 1 + 1 = 2 1 10 8 + 1 = 161 elementos
Maior número num sistema Qual é o maior número num sistema aritmético de ponto flutuante? β t 1 β t β M Todo número real, com valor maior que este número, é considerado + pelo computador Todo número real, com valor menor que é o oposto deste número, é considerado pelo computador
Exemplo 4 No sistema F (2, 4, 4, 5) O valor do maior elemento é 2 4 1 2 4 2 5 = 30 Nesse sistema, todo número real maior que 30 é tido como + Todo número menor que -30 é tido como
Qual é o menor número num sistema aritmético de ponto flutuante?
Menor número β m 1 Todo número real com valor maior que zero e menor que este número, é considerado zero pelo computador/calculadora Todo número real com valor menor que zero e maior que o oposto deste número, é considerado zero pelo computador
Exemplo 5 No sistema F (2, 4, 4, 5) O valor do menor elemento é 2 4 1 = 1/32 Nesse sistema, todo número real 0 < x < 1/32 é tido como zero Todo número real 1/32 < x < 0 é tido como zero
Diversos sistemas aritméticos de ponto flutuante
Erros de aproximação numérica
Erros de aproximação numérica Truncamento Arredondamento
Truncamento Consiste em aproximar o valor de um número mantendo os k primeiros dígitos na sua representação decimal Se x = 0, d 1 d 2... d k+1 d k+2... 10 n, com d 1 0 Usamos x = 0, d 1 d 2... d k 10 n como valor aproximado de x O erro relativo que se comete não é sempre conhecido, mas pode ser estimado R trunc 10 k+1, no máximo
Exemplo 6 Sabemos que 7 = 2, 6457513110... Assim, 7 = 0, 26457513110 10 1 Truncando com três dígitos 7 0, 264 10 1 Então, 7 = 2, 64 O erro relativo não é maior que 10 3+1 = 10 2 = 0, 01 ou 1%
Arredondamento Consiste em aproximar o valor de um número mantendo os k 1 dígitos na sua representação decimal Mantém-se o dígito d k se o dígito d k+1 é menor do que 5, ou acrescenta em uma unidade se o dígito d k+1 é maior ou igual a 5: Se x = 0, d 1 d 2... d k d k+1 d k+2... 10 n, como d 1 0 Usamos x = 0, d1 d 2... d k 10 n como valor aproximado de x se d k+1 {0, 1, 2, 3, 4} Ou x = 0, d1 d 2... (d k + 1) 10 n como valor aproximado de x se d k+1 {5, 6, 7, 8, 9} O erro relativo desse processo é estimado por R trunc 0, 5 10 k+1
Exemplo 6 Sabemos que 7 = 2, 6457513110... Assim, 7 = 0, 26457513110 10 1 Arrendondando com três dígitos, 7 0, 265 10 1 Então, 7 = 2, 65 O erro relativo não é maior que 0, 5 10 3+1 = 0, 5 10 2 = 0, 005 ou 0, 5%
Outros tipos de erros: perda de significância e propagação de erro
Perda de significância Considere os números p = 3, 1415926536 e q = 3, 1415957341 p e q são números quase iguais com 11 dígitos A diferença p q = 0, 0000030805, produz um número com cinco dígitos decimais de precisão Esse fenômeno é conhecido como perda de significância ou cancelamento subtrativo
Exemplo 7 Compare os resultados do cálculo f (0, 01) e P(0, 01), utilizando seis dígitos de arredondamento, onde f (x) = ex 1 x x 2 e P(x) = 1 2 + x 6 + x 2 24
Cálculos Para f (x) f (0, 01) = e0,01 1 0, 01 1, 010050 1 0, 01 (0, 01) 2 = = 0, 5 0, 01 P(x) é um polinômio de Taylor de grau n = 2. Para f (x) expandindo sobre x = 0, 01 P(0, 01) = 1 2 + 0,01 6 + 0,01 24 = 0, 5 + 0, 001667 + 0, 000004 = 0, 501671 Conclusão: P(0, 01) = 0, 501671 contém menos erro e deveria ter o mesmo resultado nos dois casos, a perda significância com a subtração é o problema
Propagação de erro Suponha que o computador trunca todos os valores numéricos para 4 dígitos a = 2/3 deve ser armazenado como 0,6666 com R a = 0, 0001 Somando a a ele mesmo seis vezes temos 0, 6666 + 0, 6666 = 1, 333 1, 333 + 0, 6666 = 1, 999 1, 999 + 0, 6666 = 2, 665 2, 666 + 0, 6666 = 3, 331 a = 3, 331 + 0, 6666 = 3, 997 Cada vez a soma é truncada para 4 dígitos O valor verdadeiro para 6(2/3)=4 O erro relativo é R a = 4 3,997 4 = 0, 00075
Dicas para evitar grande erros Para diminuir a magnitude dos erros de arredondamento e para reduzir a possibilidade de overflow/underflow Faça o resultado intermediário tão perto de 1 quanto possível nos processos de multiplicação/divisão consecutivos
Usando a regra De acordo com esta regra, ao calcular xy/z, podemos programar a fórmula como: (xy)/z quando x e y na multiplicação são muito diferentes em magnitude x(y/z) quando y e z na divisão são próximos em magnitude (x/z)y quando x e z na divisão são próximos em magnitude
Exercícios 1 Calcule o erro absoluto e o erro relativo nas aproximações de p e p (a) p = π, p = 22/7 (b) p = e 10, p = 22000 2 Execute o cálculo: ( 1 3 3 ) + 3 11 20 (i) exatamente, (ii) usando aritmética com números de três dígitos e o método de truncamento, (iii) usando a aritmética com três dígitos e o método de arredondamento e (iv) calcule os erros relativos dos itens (ii) e (iii)
Exercícios, cont. 3 Seja f (x) = x cos x senx x senx (a) Use aritmética com arredondamento para valores de quatro dígitos para calcular f (0, 1) (b) O valor real é f (0, 1) = 0, 99899998. Encontre o erro relativo para o valor obtido no item (a). 4 Complete o cálculo 1/4 0 e x2 dx = 1/4 0 (1 + x 2 + x 2 2! + x 6 ) dx = p 3! Estabeleça que tipo de erro está presente nessa situação. Compare sua resposta com o valor verdadeiro p = 0, 2553074606