Professional Documents
Culture Documents
T3 Integrao Numrica
Grupo n .....
Este trabalho tem como objetivo comparar os mtodos de integrao numrica: Regra dos Trapzios e Regra de Simpson. A partir dos algoritmos apresentados a seguir, o grupo ir comparar a integral analtica ( Ia ) de uma funo polinomial p x), aos ( resultados aproximados encontrados atravs das Regras dos Trapzios ( It ) e Simpson ( Is ). Estes algoritmos devem ser implementados em linguagem de programao Fortran e os resultados numricos comparados aos obtidos atravs do programa Maple (ver exemplo integracao.mws). O grau e os coeficientes do polinmio, o intervalo e o nmero de pontos de integrao sero lidos em um arquivo de entrada (pol*.1) e os resultados gravados em um arquivo de sada (trap*.2 ou simp*.2). A defesa deste trabalho ser realizada pelo grupo formado, no mximo, por trs alunos, em ..../..../2008. Nesta data, ser aplicado um Teste Prtico, visando avaliar o conhecimento e participao do grupo na realizao das tarefas propostas neste trabalho.
Algoritmo - Regra dos Trapzios
Abrir arquivo de entrada pol01.1 Abrir arquivo de sada trap01.2 Ler ngrau (grau do polinmio) Ler a(ngrau+1) coeficientes do polinmio Ler xa e xb (intervalo de integrao) Calcular x_Int_A = xIa(xb) - xIa(xa) (Integral Analtica) Ler npi (nmero de pontos de integrao) Calcular ni = npi-1 (nmero de intervalos de integrao) Calcular Deltax = xb-xa Calcular h = Deltax/ni xIt = 0.d0 (Integral de Trapzios) x0 = xa Faa i = 1,ni x1 = x0+h xIt = xIt + h/2*(fx(x0)+fx(x1)) x0 = x1 Fim faa Calcular ep = 100 * abs(x_Int_A-xIt)/abs(x_Int_A) (Erro Percentual) Imprimir npi,x_Int_A,xIt,ep Fim
Ler npi (nmero de pontos de integrao) Calcular ni = npi-1 (nmero de intervalos de integrao) Calcular Deltax = xb - xa Calcular h=Deltax/ni xIs=0.d0 (Integral de Simpson) x0=xa Faa i=1,ni/2 x1=x0+h X2=x1+h xIs = xIs + h/3 * (fx(x0) + 4*fx(x1) + fx(x2)) x0=x2 Fim faa Calcular ep = 100 * abs(x_Int_A - xIs) / abs(x_Int_A) Imprimir npi,x_Int_A,xIs,ep Fim
Integral analtica: Ia =
p(x) dx = 81.6
1
Resultados:
npi 5 15 25 35 45 55 65
Pasta 564
2/3
10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 5 10 15 20 25 30 35 40 45 50 55 60 65 E%(It) E%(Is)
> with(student); [ D, Diff , Doubleint , Int , Limit , Lineint , Product , Sum, Tripleint , changevar , completesquare , distance , equate , integrand , intercept , intparts , leftbox , leftsum , makeproc , middlebox , middlesum , midpoint , powsubs, rightbox , rightsum , showtangent , simpson, slope , summand, trapezoid ] > f:=x^4-2*x^3+x^2-3*x+2;
f := x 4 2 x 3 + x 2 3 x + 2
> evalf(int(f,x=1..4));
81.60000000
> evalf(trapezoid(f,x=1..4,4));
89.44335938
> evalf(simpson(f,x=1..4,4));
81.72656250
> evalf(simpson(f,x=1..4,24));
81.60009767
> evalf(simpson(f,x=1..4,44));
81.60000864
> evalf(simpson(f,x=1..4,64));
81.60000193
Pasta 564 Prof Natalia Silveira 3/3