Вы находитесь на странице: 1из 3

CEFET-RJ Clculo Numrico (Laboratrio) Prof Natalia Silveira 2008/2

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

Algoritmo - Regra de Simpson


Abrir arquivo de entrada pol01.1 Abrir arquivo de sada simp0l.2 Ler ngrau (grau do polinmio) Ler a(ngrau+1) coeficientes do polinmio Ler xa e xb (intervalo de integrao) Calcular x_Int_A (Soluo Analtica) Pasta 564 Prof Natalia Silveira 1/3

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

Algoritmo Funo xIa (Integral Analtica):


Funo xIa(x,a,ngrau) xIa=0 Faa i=1,ngrau+1 xIa = xIa + a(i)*x**(i) / i Fim faa Fim

Algoritmo Funo fx (Funo Polinomial):


Funo fx(x,a,ngrau) fx=0 Faa i=1,ngrau+1 fx = fx + a(i)*x**(i-1) Fim faa Fim

Exemplo analisado: ( Polinmio: p x) = x4 2x3 + x2 3x + 2

Integral analtica: Ia =

p(x) dx = 81.6
1

Resultados:

npi 5 15 25 35 45 55 65

It 89.44335938 82.24264629 81.81872559 81.70899048 81.66508048 81.64320892 81.63076124

E%(It) 9.61196002E+00 7.87556732E-01 2.68046061E-01 1.33566763E-01 7.97554945E-02 5.29521127E-02 3.76975931E-02

Is 81.72656250 81.60084340 81.60009766 81.60002425 81.60000864 81.60000381 81.60000193

E%(Is) 1.55101103E-01 1.03357670E-03 1.19676800E-04 2.97125000E-05 1.05936000E-05 4.66960000E-06 2.36670000E-06

Tabela 1 Resultados encontrados para integral de p(x).

Pasta 564

Prof Natalia Silveira

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)

Grfico 1 E% x npi (Trapzios e Simpson). Integrao.mws:

> 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(trapezoid(f,x=1..4,24)); 81.81872559 > evalf(trapezoid(f,x=1..4,44)); 81.66508050 > 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