Teoria de Erros
Transcrição
Teoria de Erros
Teoria de Erros Métodos Numéricos e Estatı́sticos Parte I-Métodos Numéricos Teoria de Erros Luı́sa Morgado Lic. Eng. Biomédica e Bioengenharia-2009/2010 Luı́sa Morgado Teoria de Erros Teoria de Erros O que é a Análise Numérica? Ramo da Matemática dedicado ao estudo e desenvolvimento de métodos (métodos numéricos) para a resolução de problemas demasiado complicados ou impossı́veis do ponto de vista analı́tico. Exemplo Todos sabemos imediatamente determinar as raı́zes da equação x 2 − 2x + 1 = 0. E da equação lnx + x + 1 = 0? R1 0 2xdx = 1 mas como determinar uma primitiva de Luı́sa Morgado Teoria de Erros R 2 e x dx? Teoria de Erros Quando recorremos a uma calculadora ou a um computador para resolver numericamente um dado problema matemático, dois tipos de erro podem surgir: Erros de arredondamento: as máquinas, de capacidade limitada, não conseguem representar todos os números reais; Erros de truncatura: surgem sempre que se substitui um problema contı́nuo por um discreto, ou quando se substitui um processo de cálculo com um número infinito de operações, por outro com um número finito. Luı́sa Morgado Teoria de Erros Teoria de Erros Representação de números inteiros Um inteiro N 6= 0 com n + 1 dı́gitos é representado na base decimal, univocamente, por N = ± (dn dn−1 . . . d1 d0 )10 = dn × 10n + dn−1 × 10n−1 + · · · + d1 × 101 + d0 × 100 , sendo di um inteiro tal que 0 ≤ di < 10, i = 0, 1, . . . , n, dn 6= 0. Exemplo 483 = 4 × 102 + 8 × 101 + 3 × 100 = (483)10 . Se um número inteiro, N 6= 0 está representado numa outra base b, b ≥ 2 que não a decimal, então N = ± (dn dn−1 . . . d1 d0 )b = ±dn × b n + dn−1 × b n−1 + · · · + d1 × b 1 + d0 × b 0 , com 0 ≤ di < b, i = 0, 1, . . . , n, dn 6= 0 e em que as operações no segundo membro são efectuadas na base 10. Luı́sa Morgado Teoria de Erros Teoria de Erros Mudança de base Mudança da base b para a base 10: É imediata. Exemplo 4 3 2 1 0 (10110)2 = 1 × 2 + 0 × 2 + 1 × 2 + 1 × 2 + 0 × 2 = 22. Luı́sa Morgado Teoria de Erros Teoria de Erros Mudança de base Mudança da base 10 para a base b: Sendo b ≥ 2, N d0 = ±dn × b n−1 + dn−1 × b n−2 + · · · + d1 + , b b | {z } |{z} Quociente Resto i.e., o digito de menor ordem, d0 na representação de N na base b, é o resto da divisão de N por b. Dividindo o quociente da divisão de N por b, novamente por b, obtemos o dı́gito d1 que será o resto daı́ resultante, e assim sucessivamente, até efectuarmos a n-ésima divisão cujo quociente é dn . Exemplo 22 22 0 |{z} |2 11 1 |{z} d0 d1 |2 5 1 |{z} |2 2 |2 0 |{z} 1 |{z} d3 d4 (22)10 = (10110)2 . d2 Luı́sa Morgado Teoria de Erros Teoria de Erros Representação de números reais A representação de um número x ∈ R na base 10 é dada por x = ± (dn dn−1 . . . d1 d0 .d−1 d−2 . . . d−k )10 , e deve ser interpretada por x = ±dn × 10n + · · · + d1 × 101 + d0 × 100 + d−1 × 10−1 + . . . + d−k × 10−k , onde 0 ≤ di < 10, i = 0, . . . , n e 0 ≤ d−j < 10, j = 1, . . . , k. Analogamente, a representação do real x na base b, b ≥ 2 é definida por x = ± (dn dn−1 . . . d1 d0 .d−1 d−2 . . . d−k )b = ±dn × b n + · · · + d1 × b 1 + d0 × b 0 + d−1 × b −1 + . . . + d−k × b −k , onde 0 ≤ di < b, i = 0, . . . , n e 0 ≤ d−j < b, j = 1, . . . , k. Os dı́gitos dn · · · d1 d0 constituem a parte inteira e os dı́gitos d−1 . . . d−k a parte fraccionária da representação de x na base b. Luı́sa Morgado Teoria de Erros Teoria de Erros Mudança da base b para a base 10 Imediata de acordo com a igualdade anterior! Exemplo (11001.01)2 4 3 2 1 0 = 1 × 2 + 1 × 2 + 0 × 2 + 0 × 2 + 1 × 10 + 0 × 2 = 25.25. −1 +1×2 −2 Seja x um número real representado na base 10. Suponhamos que pretendemos representá-lo noutra base que não a decimal. Como a conversão da parte inteira, segue as mesmas regras da mudança de base de um número inteiro, vamos admitir que x é um número real com parte inteira igual a zero. Luı́sa Morgado Teoria de Erros Teoria de Erros Mudança da base 10 para a base b Seja x = ± (.d−1 d−2 . . . d−k )b = ±d−1 × b −1 + . . . + d−k × b −k . Como bx = ± d−1 + d−2 × b −1 . . . + d−k × b −k+1 , |{z} | {z } parte inteira parte fraccionária donde d−1 é a parte inteira do resultado. Se multiplicarmos a parte fraccionária de bx por b, obtemos o dı́gito d−2 e assim sucessivamente. Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo Representemos o número 22.8125 na base binária (base 2). Vimos anteriormente que 22 = (10110)2 . Representemos então 0.8125 na base 2. cálculo cálculo cálculo cálculo de de de de d−1 d−2 d−3 d−4 0.8125 × 2 = 1.6250 0.6250 × 2 = 1.2500 0.2500 × 2 = 0.5000 0.5000 × 2 = 1.0000 Como no último cálculo, a parte fraccionária é zero, a representação é finita. Assim, 0.8125 = (.1101)2 e portanto 22.8125 = (10110.1101)2 . Luı́sa Morgado Teoria de Erros Teoria de Erros Notação cientı́fica ou de vı́rgula flutuante Nas aplicações cientı́ficas, há a necessidade de recorrer a números muito grandes e a números muito pequenos, cuja representação obriga a um grande número de dı́gitos, a maioria dos quais são zero. Em notação de vı́rgula flutuante, um número real x, na base b, com t dı́gitos, pode ser representado por: x = ±(.d1 d2 . . . dt )b b e , di ∈ {0, 1, . . . , b − 1}, onde b é a base, (.d1 d2 . . . dt ) é a mantissa, o expoente, e, é um inteiro tal que L < e < U, com L e U valores inteiros. Esta representação diz-se normalizada quando d1 6= 0. Luı́sa Morgado Teoria de Erros Teoria de Erros As representações binária e hexadecimal são as mais utilizadas para fins computacionais; Numa representação normalizada, a mantissa é um número que pertence ao intervalo [b −1 , 1 − b −t ]; O sistema de representação de números reais em vı́rgula flutuante, é então caracterizado por quatro parâmetros 1 2 3 a base b; o número t de dı́gitos na mantissa; o domı́nio de variação do expoente, i.e., L e U; resumidamente F (b, t, L, U); O maior número em valor absoluto de F (b, t, L, U) é B = 1 − 5−t b U . Reais não pertencentes ao intervalo [−B, B] não poderão ser exactamente representados no sistema de representação F (b, t, L, U); A gama de valores b, t, L e U possı́vel de representar varia muito consoante a máquina em questão. Luı́sa Morgado Teoria de Erros Teoria de Erros Todo o real x admite a forma normalizada x = ±0.a1 a2 . . . at at+1 . . . × b e . A sua representação em F (b, t, L, U) faz-se por arredondamento, que pode ser efectuado por uma de duas maneiras: arredondamento por corte: x ' x̄ = ±0.a1 a2 . . . at × b e ; arredondamento simétrico: soma-se 12 b e−t a x e em seguida arredonda-se por corte, para t dı́gitos. Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo No sistema de vı́rgula flutuante F (10, 7, −99, 99) 1 O número π não possui uma representação exacta, pois π = 3, 14159265 . . . = 0, 314159265 . . . × 101 . Para o representarmos aproximadamente neste sistema de vı́rgula flutuante, obterı́amos π ' 0, 3141592 × 101 (arredondamento por corte); π ' 0, 3141593 × 101 (arredondamento simétrico); 2 O número 0.5 × 10100 não pode ser representado pois o seu expoente 100 > 99 −→ Overflow; 3 O número 0.5 × 10−100 não pode ser representado pois o seu expoente −100 < −99 −→ Underflow; Luı́sa Morgado Teoria de Erros Teoria de Erros Valores aproximados e erros Os erros podem expressar-se em termos absolutos ou relativos. Seja x uma quantidade exacta e x̄ um valor aproximado de x. A ex̄ = x − x̄ chama-se erro (cometido na aproximação de x por x̄); 4x̄ = |ex̄ | = |x − x̄| chama-se erro absoluto; a rx̄ = |ex̄ | |x| = 4x̄ |x| chama-se erro relativo. 1 No caso em que ex̄ > 0 ⇔ x > x̄ diz-se que a aproximação é por defeito; no caso em que ex̄ < 0 ⇔ x < x̄ diz-se que a aproximação é por excesso; 2 Usualmente, na prática x é uma quantidade desconhecida e assim sendo, é ηx̄ comum fazer-se rx̄ ≈ |x̄| , onde ηx̄ é um majorante do erro absoluto. Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo 1 Seja x = 0.555 e x̄ = 0.55. Então 4x̄ rx̄ 2 = |x − x̄| = |0.555 − 0.55| = 0.005; 0.005 4x̄ = ' 0.009 = 0.9%; = x 0.555 Sendo y = 400.65 e ȳ = 400.6 um valor aproximado de y , então 4ȳ rȳ = |y − ȳ | = |400.675 − 400.67| = 0.005; 4ȳ 0.005 = = ' 0.00001 = 0.001%; y 400.675 Tal como este exemplo ilustra, o erro relativo fornece mais informação acerca da aproximação cometida, pois como se pode ver, embora os erros absolutos sejam iguais, no segundo caso, o erro relativo é significativamente menor. Luı́sa Morgado Teoria de Erros Teoria de Erros Casas decimais correctas e algarismos significativos Daqui em diante, salvo indicação em contrário, consideramos todas as quantidades representadas na base 10 na notação normalizada. Seja x uma quantidade exacta e x̄ um valor aproximado de x. Dizemos que x̄ tem k casas decimais correctas sse 4x̄ = |x − x̄| ≤ 0.5 × 10−k ; Dizemos que x̄ tem k algarismos significativos correctos sse rx̄ ≤ 0.5 × 101−k . Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo A aproximação x̄ = 3.14 para x = π tem 2 casas decimais correctas e 3 algarismos significativos correctos, pois 4x̄ rx̄ = |x − x̄| = 0.001592 . . . = 0.1592 . . . × 10−2 < 0.5 × 10−2 = 0.000506 . . . = 0.0506 . . . × 10−2 < 0.5 × 101−3 ; Mostre que o valor aproximado 0.0498 para e −3 tem 4 casas decimais correctas e 3 algarismos significativos correctos. Luı́sa Morgado Teoria de Erros Teoria de Erros Propagação de erros Experimente numa máquina de calcular, extrair 3 vezes a raı́z quadrada de 40 e de seguida, elevar 3 vezes o resultado obtido ao quadrado. A grande maioria da calculadoras devolve um resultado diferente de 40!! Problema de propagação de erros: Se tivermos um valor x̄ que aproxima x, ao calcularmos a imagem por uma função f , vamos obter uma valor aproximado f (x̄) diferente de f (x). De que forma o erro é propagado ao efectuarmos o cálculo de uma função (ou operação) f num valor aproximado de x, x̄? Luı́sa Morgado Teoria de Erros Teoria de Erros Seja x̄ um valor aproximado de x. Pela fórmula de Taylor: f (x) = f (x̄) + f 0 (ξ)(x − x̄), ξ ∈ I{x,x̄} ( intervalo aberto de extremos x e x̄) 0 − x̄}) ⇔ 4f (x̄) = |f 0 (ξ)|4x̄ . ⇔ f (x) − f (x̄) = f (ξ)(x| {z {z } | ex̄ ef (x̄) E quando f (x) 6= 0, temos para o erro relativo 4f (x̄) f 0 (ξ) = 4x̄ ⇔ rf (x̄) = f 0 (ξ) x rx̄ f (x) f (x) |{z} f (x) xrx̄ Supondo x e x̄ muito próximos, é legı́timo considerar f 0 (ξ) ' f 0 (x), obtendo 4f (x̄) ' f 0 (x) 4x̄ 0 xf (x) |rx̄ | rf (x̄) ' f (x) Luı́sa Morgado Teoria de Erros Teoria de Erros Ao valor cond(f (x)) = xf 0 (x) , f (x) dá-se o nome de número de condição de f em x. Quando o número de condição de uma função f é muito elevado numa vizinhança de x, então o erro relativo de f (x̄) será muito grande mesmo que o erro relativo de x̄ seja pequeno. Luı́sa Morgado Teoria de Erros Teoria de Erros Fórmulas de propagação do erro (absoluto e relativo) Seja f = f (x1 , x2 , . . . , xn ) e consideremos que x̄ = (x̄1 , x̄2 , . . . , x̄n ) é um valor aproximado de x = (x1 , x2 , . . . , xn ). Seguindo os mesmos passos, i.e, começando por utilizar a fórmula de Taylor (para funções de duas ou mais variáveis), obterı́amos: 4f (x̄) rf (x̄) n X ∂f . ∂xk (x) 4x¯k k=1 ∂f n xk X ∂xk (x) . |rx¯k | f (x) k=1 | {z } números de condição Nota: Na prática, usualmente, a quantidade x é desconhecida e por isso é comum nas fórmulas acima substituir x por x̄. Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo Sejam x̄ e ȳ valores aproximados de x e y , respectivamente. Considere-se a diferença entre x e y : D = f (x, y ) = x − y , e suponhamos que determinamos uma aproximação de D calculada a partir dos valores aproximados x̄ e ȳ . Determinemos um majorante do erro relativo associado a esta aproximação. Pela fórmula de propagação do erro relativo, temos rD̄ ≤ ȳ rȳ 4x̄ + 4ȳ x̄rx̄ + ≤ |x̄ − ȳ | |x̄ − ȳ | |x̄ − ȳ | Luı́sa Morgado Teoria de Erros Teoria de Erros Sempre que x̄ e ȳ são números muito próximos, o valor |x̄ − ȳ | torna-se muito pequeno e consequentemente, o erro relativo vem demasiado grande (ou seja, a precisão do resultado é muito baixa). Ao efeito causado pela perda de algarismos significativos quando se subtraiem quantidades muito próximas, dá-se o nome de cancelamento subtractivo. Vejamos um exemplo: Luı́sa Morgado Teoria de Erros Teoria de Erros Exemplo Dada a função: f (x) = cos x − 1 , x2 2 sabe-se que para valores de x próximos de zero f (x) ≈ − 12 + x24 . Numa calculadora, obteve-se f (10−16 ) = 0. Como se explica este resultado? Isto ocorre porque para valores de x próximos de zero, cos x é aproximadamente 1, pelo que cos x − 1 é aproximadamente zero, o que resulta num erro relativo terrivelmente grande. Isto acontece sempre que se subtraem quantidades muito próximas para a precisão da máquina. Para evitar este tipo de problemas e neste caso em particular, podemos: 1 efectuar o desenvolvimento em série de Taylor da função cos x; 2 notar que f (x) = cos x − 1 cos2 x − 1 sin2 x = 2 =− 2 . Se 2 x x (cos x + 1) x (cos x + 1) calcularmos, na mesma calculadora, f (10−16 ) usando esta última expressão obtemos f (10−16 ) = −0.5. Luı́sa Morgado Teoria de Erros Teoria de Erros Seja x̄ = (x̄1 , x̄2 , . . . , x̄n ) um valor aproximado de x = (x1 , x2 , . . . , xn ). Suponhamos que queremos calcular um valor aproximado de f (x), através de f (x̄). Qual a precisão a considerar para os valores aproximados de x̄1 , x̄2 , . . . , x̄n , por forma a que o valor de f (x̄), seja obtido com um erro que em valor absoluto não exceda uma quantidade η > 0, previamente fixada. Pela fórmula de propagação do erro absoluto pretendemos que: ∂f ∂f (x̄1 , x̄2 , . . . , x̄n ) |∆x̄1 |+. . .+ (x̄1 , x̄2 , . . . , x̄n ) |∆x̄n | ≤ η |∆f (x̄1 , x̄2 , . . . , x̄n )| ≤ ∂x̄1 ∂x̄n O problema apresentado desta forma é indeterminado. Na prática, para o resolver, usa-se um dos dois princı́pios que se seguem: → Princı́pio dos erros iguais: Utiliza-se quando todas as quantidades têm as mesmas unidades e quando os erros são da mesma natureza e ordem de grandeza 1 , supondo: k = |∆x̄1 | = . . . = |∆x̄n |. → Princı́pio dos efeitos iguais: Supõe-se ∂f ∂f ∂x̄ (x̄1 , x̄2 , . . . , x̄n ) |∆x̄1 | = . . . = ∂x̄ (x̄1 , x̄2 , . . . , x̄n ) |∆x̄n | = k. n 1 1 Dois números não nulos y e z, dizem-se da mesma ordem de grandeza e escreve-se |y | ≈ |z| se |y | 0.1 < |z| ≤ 1. Luı́sa Morgado Teoria de Erros Teoria de Erros Condicionamento e estabilidade A equação quadrática x2 − 1 1 x+ =0 3 36 tem as raı́zes reais são x1 = x2 = 1/6. Se escrevermos esta mesma equação utilizando aritmética finita usando 6 c.d.c nas aproximações, obtemos a seguinte equação x 2 − 0.333333 + 0.027778 = 0 que não tem raı́zes reais. Um problema tal como este, em que pequenas alterações nos dados produzem grandes variações no resultado final, diz-se um problema mal condicionado. Se tal não ocorre, o problema diz-se bem condicionado. No caso do cálculo de uma função, o mau condicionamento do problema corresponde ao facto de f ter um número de condição elevado. Ao usarmos um método numérico para a resolução de um problema mal condicionado, devemos ter em atenção as aproximações cometidas ao longo da sua execução. Tal está relacionado com a noção de estabilidade de um método numérico. Dizemos que um método numérico é estável se a acumulação de erros durante a sua execução não tem influência significativa no resultado. Quando tal não acontece, o método diz-se instável. Luı́sa Morgado Teoria de Erros Teoria de Erros A explosão do Ariane 5 No dia 4 de Junho de 1996, 40 segundos após o seu lançamento, no centro espacial da Guiana Francesa, o foguetão Ariane 5 explodiu. Após o inquérito realizado, concluiu-se que a causa do fracasso era um erro de software no sistema de referência inercial. Concretamente, um número em vı́rgula flutuante com 64 bits (relativo à velocidade horizontal do foguetão em relação à plataforma de lançamento) foi convertido num inteiro de 16 bits. Esta conversão falhou, pois o número era superior a 32767, o maior inteiro representável num sistema de 16 bits. Luı́sa Morgado Teoria de Erros