Documente Academic
Documente Profesional
Documente Cultură
Sumrio
Implementao
Concluso
()
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
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.
= -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
= f(vo,to),
Passando para o mtodo analtico temos:
yi = yi-1 + h . v(t)
Sendo u(t) =
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
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
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
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
Problema 1: Misturas
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.