Baixe o app para aproveitar ainda mais
Prévia do material em texto
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA (Real Academia de Artilharia Fortificação e Desenho – 1792) CÁLCULO NUMÉRICO PROPAGAÇÃO DE ERROS FABRICIO DA SILVA COSTA HEITOR MATOS MAGNANI LUCAS PINHEIRO SAURIN VICTOR VILLAS BÔAS CHAVES TURMA C - 2º ANO PROF CEL DIEGUEZ RIO DE JANEIRO 14 DE AGOSTO DE 2013 1 SUMÁRIO 1 INTRODUÇÃO ...........................................................................................02 1.1 Erros.........................................................................................................02 1.2 Propagação de erros.................................................................................03 2 IMPLEMENTAÇÃO DO CÓDIGO .........................................................04 3 RESULTADOS………………………...……………………….................05 4 CONCLUSÃO..............................................................................................06 REFERÊNCIAS BIBLIOGRÁFICAS......................................................07 2 1 INTRODUÇÃO 1.1 ERROS Sejam Ve o valor exato de um cálculo e Va seu valor aproximado obtido através de um método numérico. Definem-se os seguintes tipos de erro: a) Erro absoluto: (1.1.1) b) Erro relativo: (1.1.2) c) Erro percentual: (1.1.3) Como geralmente se tem o valor de Va, e não de Ve, a seguinte forma de se calcular o erro relativo é mais usual: (1.1.4) Os erros cometidos em cálculos computacionais são classificados da seguinte forma: a) erros inerentes, ocorridos na fase de levantamento e/ou introdução de dados devido a enganos pessoais ou falhas nas aferições, simplificações ou arredondamentos; b) erros de truncamento, que ocorrem devido à paralisação de procedimentos numéricos infinitos em determinado termo, transformando a soma numa soma finita; c) erros de arredondamento, que ocorrem devido à capacidade limitada do computador para representar números de ponto flutuante. 3 1.2 PROPAGAÇÃO DE ERROS Quando se trabalha com processos de cálculo, são realizadas operações, geralmente numerosas, através das quais os erros se propagam. O objetivo deste trabalho é analisar a propagação de erros ao se calcular o seno, o cosseno e a tangente de . Para isso, as operações indicadas na Tabela 1 foram tomadas como referência para se encontrar os valores exatos e aproximados desejados. Tomaram- se os valores n = 10 e n = 20 para os somatórios, comparando-se os resultados assim obtidos. Tabela 1 – Valores exatos e aproximados utilizados As operações responsáveis pela propagação dos erros no caso estudado são o quociente e a aplicação das funções seno, cosseno e tangente. Para o primeiro, as seguintes fórmulas de propagação são válidas: Erro absoluto: Ex/y = ̅ ̅ ̅ , (1.2.1) onde Ex e Ey são os respectivos erros absolutos e ̅ e ̅ são os valores aproximados; 4 Erro relativo: Erx/y = Erx – Ery, (1.2.2) Onde Erx e Ery representam os respectivos erros relativos. Os erros esperados para o trabalho em questão são o erro de truncamento, devido à utilização das expansões de Taylor, e o erro de arredondamento devido ao fato de os cálculos terem sido feitos através da implementação de um algoritmo em linguagem de programação C, utilizando-se o software CodeBlocks (como já dito, a capacidade de armazenar números em ponto flutuante é limitada). O código utilizado e os resultados obtidos são mostrados a seguir. 2 IMPLEMENTAÇÃO DO CÓDIGO #include <stdio.h> #include <math.h> #define pi 4*atan(1) //Valor esperado de "pi" #define e exp(1) //Valor esperado de "e" int main() { float pi2, e2, termo, Sen, Cos, Tan, x; int n, i; printf("Digite o valor de n:\n"); scanf("%d", &n); //Cálculo do valor aproximado de pi (pi2): for(pi2=0,i=0; i<=n; i++) pi2+= (i%2==0) ? (4.0/(2*i+1)) : (-4.0)/(2*i+1); //Cálculo do valor aproximado de e (e2): for(i=1,termo=1,e2=0; i<=n; i++) { e2+=termo; termo*=1.0/i; } x = pi2/e2; //Cálculo do sen(pi2/e2) aproximado (Sen): for(i=1, termo=x, Sen=0; i<(n+1); i++) { Sen+=termo; termo*=(-1)*x*x/(2*i+1)/(2*i); } 5 //Cálculo do cos(pi2/e2) aproximado (Cos): for( i=1, termo=1.0, Cos=0; i<(n+1); i++) { Cos+=termo; termo*=(-1)*x*x/(2*i)/(2*i-1); } Tan = Sen/Cos; printf(" Valor exato Valor aproximado Erro absoluto Erro relativo\n"); printf("pi %.15f %.15f %.15f %.15f\n",pi, pi2, pi - pi2, (pi-pi2)/pi2); printf("e %.15f %.15f %.15f %.15f\n",e, e2, e - e2, (e-e2)/e2); printf("sen(pi/e) %.15f %.15f %.15f %.15f\n",sin(pi/e), Sen, sin(pi/e) - Sen, (sin(pi/e)-Sen)/Sen); printf("cos(pi/e) %.15f %.15f %.15f %.15f\n",cos(pi/e), Cos, cos(pi/e) - Cos, (cos(pi/e)-Cos)/Cos); printf("tan(pi/e) %.15f %.15f %.15f %.15f\n",tan(pi/e), Tan, tan(pi/e) - Tan, (tan(pi/e)-Tan)/Tan); return 0; } 3 RESULTADOS Os resultados obtidos com a implementação do programa podem ser vistos nas tabelas abaixo. Embora a estrutura de dados utilizada tenha uma precisão de sete casas decimais, os resultados são apresentados com 15 casas decimais. Tabela 2 – Resultados obtidos para n = 10 6 Tabela 3 – Resultados obtidos para n = 20 4 CONCLUSÃO Utilizando a expansão de Taylor com 10 termos, obtemos os valores aproximados de e , respectivamente, 2.7182815 e 3.2323160. Seus respectivos erros absolutos foram de 0.0000003 e -0.0907233. Para os valores de e , foram obtidos valores aproximados de 0.9280351 e 0.3724927, cujos erros absolutos são - 0.0129466 e 0.0307603. Através da equação de propagação de erro no quociente entre os valores aproximados de e (equação 1.2.1), o valor esperado de erro no cálculo de é de -0.2404970. O valor aproximado encontrado para a tangente é de 2.4914183, cujo erro absoluto corresponde a -0.2221521, próximo do previsto pela teoria dos erros. Com a expansão de Taylor estendida a 20 termos, os valores aproximados de e foram de 2.7182817 e 3.1891849, respetivamente. Os erros absolutos são 0.0000000 e -0.0475922, visivelmente menores que na expansão com 10 termos. Os valores aproximados para e foram de 0.9220081 e 0.3871704 com erros absolutos de -0.0069196 e 0.0160825. Utilizandoa equação de propagação de erro, o valor de erro absoluto esperado para é de -0.1167922. O valor aproximado para a tangente foi calculado em 2.3814008, cujo erro absoluto foi de -0.1121347, muito próximo ao valor previsto. 7 REFERÊNCIAS BIBLIOGRÁFICAS DIEGUEZ, José Paulo P. Métodos de Cálculo Numérico. Rio de Janeiro: Instituto Militar de Engenharia, 2005.
Compartilhar