Sunteți pe pagina 1din 11

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE CINCIAS AMBIENTAIS E DESENVOLVIMENTO SUSTENTVEL- (ICADS) COLEGIADO DE FSICA DISCIPLINA: CLCULO NUMRICO

Gustavo Xavier Antunes Petronilo

Trabalho Clculo Numrico: Mtodo de Euler


Professor: Kennedy Morais Fernandes

Barreiras-Ba, 14 de maro de 2012.

Sumrio

Resoluo por mtodo analtico

Problema 1:Misturas. Problema 2: Lanamento Vertical Problema 3: Lei Stefan-Boltzmann

1.1 1.2 1.3

Aproximao por mtodos numricos

Implementao

Resultados, tabelas, grficos

Concluso

Resoluo por mtodo analtico


Problema 1: Misturas Considere um tanque, no instante t=0, contm Qo=50 lb de sal dissolvido em 100 gal (cerca de 455 l). Suponha que gua contendo lb (cerca de 113 g) de sal por galo entrando no tanque a uma taxa de de 3 gales por minuto e que o liquido, bem misturado, est saindo do a mesma taxa. Vamos supor que o sal no criado nem destrudo no tanque. Portanto, as variaes na quantidade de sal devem-se ,apenas, ao fluxo de entrada e sada no tanque. Ento temos que:

= taxa de entrada taxa de sada


A taxa de entrada a concentrao vezes a taxa de fluxo de entrada,

()
A taxa de sada a concentrao de sal do tanque vezes o fluxo de sada, 3Q(t)/100 Assim a equao diferencial que governa esse processo

= Logo, o fator integrante e


3t/100

e a soluo geral Q(t) = 25+ce


-3t/100

Onde c uma constante arbitrria. Para satisfazer a condio inicial precisamos escolher c = Qo-25. Portanto a soluo do problema de valor inicial
-0.03t

Q(t) = 25+25e

Problema 2: Lanamento Vertical Considere o movimento a uma dimenso que se obtm quando se arremessa um objeto na vertical para cima num instante inicial com uma velocidade v0. A fora (acelerao) constante (no depende da posio, velocidade ou tempo) e neste caso existe resoluo analtica da 2 Lei de Newton. A posio em funo do tempo dada por:

y(t) = y + vo t + at2
Consideraremos y0=0 e v0=25 m/s. A acelerao da gravidade constante e igual a 9,8m/s2.

y(t) = 25t 4,9t2


Problema 3: Lei Stefan-Boltzmann A transferncia de calor de um corpo para um ambiente que o rodeia por radiao, segundo a lei de Stefan-Boltzmann, descrita pela equao diferencial

= -a(u4-T4) (i)
Onde u(t) a temperatura absoluta do corpo no instante t, T a temperatura absoluta do ambiente e a uma constante que depende dos parmetros fsicos do corpo. No entanto, se u muito maior que T, ento as solues da EQ.(i) podem ser bem aproximadas pelas solues da equao mais simples

= -au4

(ii)

Supondo que um corpo com a temperatura inicial de 2000K est imerso em um meio ambiente temperatura de 300K e que a= 2,0*10-12K-3s-1, a soluo da equao u(t) = 2000/(1+0,048t)1/3

Aproximao por mtodo numrico


Problema 1: Misturas
Sendo Q(t) =

f(to,Qo) e Qo= 0, to =0 pelo mtodo de Euler temos:

Qi= Qi-1 + h . f(to,Qo)

Problema 2: Lanamento Vertical. Sendo to e vo conhecidos podemos calcular:

= f(vo,to),
Passando para o mtodo analtico temos:

yi = yi-1 + h . v(t)

Problema 3: Lei Stefan-Boltzmann

Sendo u(t) =

f(to,uo) e uo= 0, to =0 pelo mtodo de Euler temos:

ui= ui-1 + h . f(to,uo)

Implementao
Problema 1: Misturas
Algoritmo 1: funo dq(t) real t dq = - 3Q/100 Retorna dq(t) fim funo Algoritmo 2: programa principal Real qo,h,t,to,q,tf,dq,q_exato Inteiro i,n Leia tf to0 qo50 n(tf-to)/h tto q qo

Imprima i,t,q Para(i1, in,i=i+1) faa qq+h*dq(t) tt+h Imprima i,t,q Fim Fortran: program misturas implicit none real qo,h,t,to,q,tf,dq,q_exato integer i,n,resultados resultados = 200 open(unit = resultados, file ='resultados_misturas.txt') print*,"Digite a diferena em minutos" read*, tf qo=50 to=0 h=0.001 n=(tf-to)/h t=to q=qo write(resultados,*)i,t,q,q_exato(t) write(*,*)i,t,q,q_exato(t) do i=1,n,1 q=q+h*dq(t) t=t+h write(resultados,*)i,t,q,q_exato(t) write(*,*)i,t,q,q_exato(t) end do close(resultados) call system('pause') end !!!!!!!!!!!!!!!!!!!!!!! function dq(t) real dq,t dq=(3/4.)-(50*3.)/100. return end !!!!!!!!!!!!!!!!!!!!!!! function q_exato(t) real q_exato,t q_exato= 25+(25*exp(-0.03*t)) return end

Problema 2: Lanamento Vertical


Algoritmo 1: funo v(t) real t vvo +9,8*t Retorna v(t) fim funo

Algoritmo 2: programa principal Real yo,vo,h,t,to,y,tf,v,y_exato Inteiro i,n tf 5.1 i0 n(tf-to)/h tto z zo Imprima i,t,y Para(i1, i n, i=i+1) faa yy+h*v(t) tt+h Imprima i,t,y Fim Fortran: program lancamento_vertical implicit none real yo,vo,h,t,to,y,tf,v,y_exato integer i,n,resultados resultados = 100 open(unit = resultados, file ='resultados_lancamento.txt') tf=5.1 yo=0 vo=25 to=0 h=0.1 n=(tf-to)/h t=to y=yo write(resultados,*)i,t,y,y_exato(t) write(*,*)i,t,y,y_exato(t) do i=1,n,1 y=y+h*v(t) t=t+h write(resultados,*)i,t,y,y_exato(t) write(*,*)i,t,y,y_exato(t) end do close(resultados) call system('pause') end !!!!!!!!!!!!!!!!!!!!!!! function v(t) real v,t,vo vo=25 v=vo-9.8*t return end !!!!!!!!!!!!!!!!!!!!!!! function y_exato(t) real y_exato,t y_exato=25*t-4.9*t**2 return end

Problema 3: Lei Stefan-Boltzmann


Algoritmo 1: Funo du(t) real t du= -a*u**(4) Retorna du(t) fim funo

Algoritmo 2: programa principal real a,uo,h,t,to,u,tf,du,u_exato Inteiro i,n Leia tf to0 uo2000 n(tf-to)/h tto u uo Imprima i,t,q Para(i1, in,i=i+1) faa uu+h*du(t) tt+h Imprima i,t,u Fim Fortran:

program lei_de_stefan_boltzmann implicit none real a,uo,h,t,to,u,tf,du,u_exato integer i,n,resultados resultados = 200 open(unit = resultados, file ='resultados_rad.txt') print*,"Digite a diferena em minutos" read*, tf uo=2000. to=0 h=0.1

a=2.0e-12 n=(tf-to)/h t=to u=uo write(resultados,*)i,t,u,u_exato(t) write(*,*)i,t,u,u_exato(t) do i=1,n,1 u=u+h*du(t) t=t+h write(resultados,*)i,t,u,u_exato(t) write(*,*)i,t,u,u_exato(t) end do

close(resultados) call system('pause') end

return end

!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!! function du(t) real du,t,a,u a=2.0e-12 u=2000. du= -a*u**(4) u_exato=2000./((1+0.048*t)**(1/3)) return end function u_exato(t) real u_exato,t

Resultados, tabelas e grficos

Problema 1: Misturas

ti 1.0 2.0 17.0 20.0

h=0.1 49.324993 48.574986 37.324871 35.074848

h=0.01 49.250031 48.500061 37.258018 35.000610

h=0.001 49.248505 48.497761 37.226833 34.970844

exato 49.334030 49.261147 40.057484 38.761497

Problema 2: Lanamento Vertical

ti 1.0 3.0 4.0 5.0

h=0.1 20.589998 32.369995 23.560005 4.9500227

h=0.01 20.149002 31.047.029 21.796059 2.9840016

h=0.001 20.104942 30.923.361 21.620186 2.5264883

exato 20.100002 30.900.002 21.600021 2.5000548

Problema 3: Lei Stefan-Boltzmann

ti 1.0 2.0 20.0 30.0

h=0.1 1968.0054 1936.0107 1360.4274 1040.1611

h=0.05 1967.9932 1935.9863 1359.8633 1039.7949

h=0.01 1968.0176 1936.0671 1360.3835 1040.5593

exato 1968.9872 1939.8129 1598.2528 1485.5880

Concluso
Neste trabalho usamos o mtodo nmerico de Euler para nos aproximarmos das solues exatas das equaes. Vimos que o mtodo de Euler bem estvel, e quando fazemos o passo h tender a zero, seu valor se torna mais perto do exato. Muitas vezes precisamos de um h relativamente pequeno, como nos casos dos exemplos 1 e 3 que mesmo com o h= 0.01 ainda no se aproximaram o suficiente da soluo exata, em outras como no caso 2 um h de apenas 0.01 j o suficente para termos uma boas aproximao.

S-ar putea să vă placă și