Capítulo 04 Erros de arredondamento e Truncamento (Parcial)
Objetivos do capítulo Entender a diferença entre acurácia e precisão. Aprender como quantificar o erro. Aprender a usar estimativas de erros para decidir quando encerrar um cálculo iterativo.
Acurácia x Precisão Acurácia se refere a quão próximo o valor calculado ou medido está do valor verdadeiro. Precisão se refere a quão próximo os valores individuais calculados ou medidos estão uns dos outros. a) Inacurado e impreciso. b) Acurado e impreciso. c) Inacurado e preciso. d) Acurado e preciso
Definição de Erro Verdadeiro Erros numéricos são causados pelo uso de aproximações para representar operações e quantidades matemáticas exatas. E valor verdadeiro-aproximação t O t vem do inglês true = verdadeiro. O erro verdadeiro normalmente é expresso como um valor absoluto e referido com erro absoluto.
Definição de Erro O Erro verdadeiro não leva em conta a ordem de grandeza do valor que está sendo examinado. Podemos definir então o erro relativo percentual verdadeiro. t valor verdadeiro-aproximação 100% valor verdadeiro
Exemplo Considere que você tenha a tarefa de medir os comprimentos de uma ponte e de um rebite e que obteve 9.999 cm e 9 cm, respectivamente. Se os valores verdadeiros forem 10.000 cm e 10 cm, respectivamente, o erro verdadeiro em ambos os casos é 1 cm. Calculando o erro relativo temos: 10.000-9.999 t 100% 0,01% 10.000 10-9 100% 10% t 10
Erro aproximado Em situações do mundo real, o valor verdadeiro dificilmente é conhecido, por isso, o cálculo do erro verdadeiro fica prejudicado. Um dos desafios dos Métodos é determinar estimativas de erro quando se desconhece o valor verdadeiro. Grande parte dos métodos numéricos utilizam uma abordagem iterativa para calcular as respostas. Isto é, uma aproximação atual é feira com base em uma aproximação anterior. Assim, podemos definir nosso erro aproximado como: a aproximação atual - aproximação anterior aproximação atual 100%
Erro tolerado Os sinais nas equações anteriores podem ser positivos ou negativos dependendo se a aproximação é maior ou menor que a aproximação anterior. Ao realizar cálculos não há preocupações com o sinal do erro. Estamos interessados em saber se o erro aproximado absoluto é menor que um percentual de tolerância pré-estabelecido ε s Isto é, estamos interessados em saber se: a Esta relação é chamada de critério de parada. s
Critério de Parada Se o critério de parada for satisfeito, supõe-se que o resultado esteja dentro do nível aceitável pré-estabelecido ε s. a É conveniente relacionar esses erros ao número de algarismos significativos da aproximação. Para ter certeza que o resultado aproximado está correto até pelo menos n algarismos significativos usamos o critério a seguir: s Exemplo: Se desejamos 4 algarismos significativos devemos ter tolerância dada por: (0,510 24)% (0,510 2)% 0,005% s s (0,5102n)%
Critério de Parada Se o critério de parada for satisfeito, supõe-se que o resultado esteja dentro do nível aceitável pré-estabelecido ε s. a É conveniente relacionar esses erros ao número de algarismos significativos da aproximação. Para ter certeza que o resultado aproximado está correto até pelo menos n algarismos significativos usamos o critério a seguir: s Exemplo: Se desejamos 4 algarismos significativos devemos ter tolerância dada por: (0,510 24)% (0,510 2)% 0,005% s s (0,5102n)%
Exemplo : Estimativa de Erro 2 3 x x x x e 1 x... 2 3! n! Vamos usar a série de Maclaurim para aproximar valores para a função exponencial para x=0,5. Conforme mais termos forem adicionados a sequência, a estimativa se tornará cada vez mais próxima do valor verdadeiro de exp(x). e x = 1 Começaremos com e depois de adicionar cada novo termo vamos calcular o erro verdadeiro percentual e o erro relativo percentual estimado. Adicionaremos termos até que o valor absoluto do erro relativo percentual estimado esteja dentro do critério pré-estabelecido. a s n
Exemplo : Estimativa de Erro 2 3 n x x x x e 1 x... 2 3! n! Vamos adotar o critério de erro que garante o resultado correto até pelo menos três algarismos significativo. s (0,5 1023 )% 0,05% Observe que o valor verdadeiro de calculado através do MATLAB é: exp(0.5) = 1.648721270700128 Olhando para a série acima, podemos adotar como uma primeira aproximação como 1. e 0,5 1 e 0,5
Exemplo : Estimativa de Erro 2 3 x x x x e 1 x... 2 3! n! n Estimativa 02 Estimativa 03 ex 1 xe0.5 1 0.5 1.5 t a 2 0.5 0,52 ex 1 x x e 10.5 1.625 1,6487211,5 x 100% 9,02% 1,648721 1,5 1 x 100% 33,3% 0,05% 1,5 t a 2 1,6487211,625 x 100% 1,44% 1,648721 1,6251,5 x 100% 7,69% 0,05% 1,625 2
Exemplo : Estimativa de Erro 2 3 x x x x e 1 x... 2 3! n! n Estimativa 02 Estimativa 03 ex 1 xe0.5 1 0.5 1.5 t a 2 0.5 0,52 ex 1 x x e 10.5 1.625 1,6487211,5 x 100% 9,02% 1,648721 1,5 1 x 100% 33,3% 0,05% 1,5 t a 2 1,6487211,625 x 100% 1,44% 1,648721 1,6251,5 x 100% 7,69% 0,05% 1,625 2
Exemplo : Estimativa de Erro Resumindo... 2 3 x x x x e 1 x... 2 3! n! n Termos Resultados Erro Verdadeiro(%) Erro Aproximado(%) 1 1 39,3 2 1,5 9,02 33,3 3 1,625 1,44 7,69 4 1,645833333 0,175 1,27 5 1,648437500 0,0172 0,158 6 1,648697917 0,00142 0,0158 < 0,05
Estimativa de Erro - Algoritmo 2 3 x x x x e 1 x... 2 3! n! A implementação computacional envolve laços. A maior parte das soluções iterativas envolvem laços condicionais ( while ). O processo é repetido até que o erro aproximado fique abaixo de um critério de parada (es). Sempre devemos fornecer um número máximo de iterações (maxit) para não corrermos o risco de loop infinito. n
Estimativa de Erro Algoritmo (I) function [ fx, ea, it ] = MetodoIteracao( x, es, maxit ) % Série de Maclaurin da função exponencial % [ fx, ea, iter ] = MetIt( x, es, maxit ) % Entradas: % x : valor no qual a série é avaliada % es : Critério de parada ( opcional com padrão = 0.0001) % maxit : Número máximo de iterações ( opcional com padrão = 50) % Saída: % fx : valor estimado. % ea : erro relativo aproximado (%) % it: número de iterações % padrões
Estimativa de Erro Algoritmo (II) function [ fx, ea, it ] = MetodoIteracao( x, es, maxit ) if nargin < 2 es = 0.0001; end if nargin < 3 maxiteracoes= 50; end it = 1; solucao =1; ea = 100; while (ea > es) && (it < maxit) solucaoanterior = solucao; solucao = solucao + x^it/factorial(it); if solucao ~= 0 ea = abs( (solucao - solucaoanterior)/solucao)*100; end it = it + 1; end fx = solucao; end
Exercício 01 O método babilônico, um antigo sistema para aproximação de raiz quadrada de qualquer número positivo a, pode ser formulado como: x x 2 Escreva uma função para implementar esse algoritmo, com base no exemplo apresentado anteriormente. a x
Exercício 01 (Continuação) function [fx,ea,iter] = RaizQuadrada(a,es,maxit) % Entrada: % a = value a ser calculado a raiz % es = criterio de parada (padrão = 0.0001) % maxit = número max iterações (padrão = 50) % output: % fx = valor estimado % ea = erro relativo aproximado (%) % iter = número de iterações >> [fx,ea,iter] = RaizQuadrada(2) fx = 1.414213562373095 ea = 1.127797413072556e-10 iter = 6
Exercício 02 A expansão em série de Maclaurin para cos(x) é dada por: 2 4 6 8 cos x x x x x 1... 2 4! 6! 8! Começando com uma versão mais simples, cos(x)=1, some termos um a um para estimar cos(x). Depois que cada novo termo for somado, calcule os erros relativos percentuais verdadeiro e aproximado. Some termos até que o valor absoluto da estimativa aproximada de erro fique abaixo de um critério de erro. Use valores padrões caso não sejam informados o critério de erro e o número máximo de iterações. Teste a função para pi/4 e es=0.001. Monte uma tabela com os resultados obtidos.
Exercício 02 ( Continuação) function McCosseno(a,es,maxit) % Entrada: % a = value a ser calculado o cosseno % es = criterio de parada (padrão = 0.0001) % maxit = número max iterações (padrão = 50) >> McCosseno(pi/4) ************************************************************** Iteração Solução Erro V Erro A 1 1.0000000 41.421356 100.000000 2 0.6915749 2.196545 44.597506 3 0.7074292 0.045598 2.241121 4 0.7074256 0.045090 0.000508 5 0.7074256 0.045090 0.000000 *****************************************************************
Erros de Arredondamento Tipos de Erros Os erros de arredondamento devem-se ao fato de que os computadores digitais não podem representar algumas quantidades de forma exata levando a resultados errados. Os erros de arredondamento estão relacionados à maneira como os números são armazenados no computador. Erros de Truncamento Os erros de truncamento resultam do uso de aproximação no lugar de um procedimento matemático exato. Por exemplo, no capítulo 1 aproximamos a derivada da velocidade do saltador de bungee jumping. dv v v ti 1 v t dt t t i