Você está na página 1de 8

Apostila 2- Computação

Prof. Jason
Integração Numérica
• Algumas Integrais são difíceis para calcular
analíticamente
• Para resolver estes problemas - Métodos
Numéricos
• Substitui-se Integrais complexas por outras
mais simples
Regra do Trapézio
• Substitui a área que representa a integral pela
área do trapézio.
Regra do Trapézio
• O erro deste método é grande quando o intervalo d
integração é grande

f(x1)

f(xo)

h= b-a
h
IT [ f ( x0 ) f ( x1 )]
2
Regra dos trapézios Repetidos
• Usa-se uma subdivisão no intervalo de integração,
aplicando a regra do trapézio repetidas vezes

h'

h'
IT [ f ( x0 ) 2[ f ( x1 ) f ( x2 ) ...] f ( xn )
2
Exemplo 2
• Calcule a Integral usando Trapézios repetidos

1
x
I e dx
0
• Usando 5 subintervalos

h'
program trapezio !.....Integração numérica
ya=exp(a)
ya1=exp(a1)
!..........Entrada de variáveis...................
ya2=exp(a2)
ya3=exp(a3)
implicit none
ya4=exp(a4)
double precision:: a,a1,a2,a3,a4,b,h,h_linha,ya,ya1,ya2,ya3,ya4,yb
yb=exp(b)
double precision:: s,erro,solution_analitica
integer::sub_intervalo
s=(h_linha/2)*(ya+2*ya1+2*ya2+2*ya3+2*ya4+yb)
erro=1.d0-(s/solution_analitica)
!..........Dados de variáveis...................
write(*,*)'s=',s
a=0.d0
write(*,*)'erro=',100*abs(erro)
a1=0.2d0
a2=0.4d0
a3=0.6d0
end program
a4=0.8d0
b=1.d0

solution_analitica=1.7182d0

!..........Cálculos...................
h=b-a
h'
sub_intervalo=5
h_linha=(h/sub_intervalo)

h'
IT [ f ( x0 ) 2[ f ( x1 ) f ( x2 ) ...] f ( xn )
program trapezio !.....Integração numérica
!..........Entrada de variáveis...................
implicit none
double precision:: a,a1,a2,a3,a4,a5,a6,a7,a8,a9,
b,h,h_linha,ya,ya1,ya2,ya3,
ya4,ya5,ya6,ya7,ya8,ya9,yb
double precision:: s,erro,solution_analitica
ya=(2*(a)**(2))*((((a)**(3))+1)**(0.5))
integer::sub_intervalo ya1=(2*(a1)**(2))*((((a1)**(3))+1)**(0.5))
!..........Dados de variáveis................... ya2=(2*(a2)**(2))*((((a2)**(3))+1)**(0.5))
a=0.d0 ya3=(2*(a3)**(2))*((((a3)**(3))+1)**(0.5))
a1=0.2d0 ya4=(2*(a4)**(2))*((((a4)**(3))+1)**(0.5))
a2=0.4d0 ya5=(2*(a5)**(2))*((((a5)**(3))+1)**(0.5))
a3=0.6d0 ya6=(2*(a6)**(2))*((((a6)**(3))+1)**(0.5))
a4=0.8d0 ya7=(2*(a7)**(2))*((((a7)**(3))+1)**(0.5))
ya8=(2*(a8)**(2))*((((a8)**(3))+1)**(0.5))
a5=1.0d0
ya9=(2*(a9)**(2))*((((a9)**(3))+1)**(0.5))
a6=1.2d0
a7=1.4d0 yb=(2*(b)**(2))*((((b)**(3))+1)**(0.5))
a8=1.6d0
a9=1.8d0
b=2.0d0 s=(h_linha/2)*(ya+2*ya1+2*ya2+2*ya3+2*ya4+2
solution_analitica=11.5 *ya5+2*ya6+2*ya7+2*ya8+2*ya9+yb)
!..........Cálculos................... erro=1.d0-(s/solution_analitica)
write(*,*)'s=',s,yb
h=b-a
write(*,*)'erro=',100*abs(erro)
sub_intervalo=10
h_linha=(h/sub_intervalo) end program

Você também pode gostar