Buscar

Trabalho 2

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.

Continue navegando