Escolar Documentos
Profissional Documentos
Cultura Documentos
Equaes diferenciais
Introduo:
Considere um corpo de massa m e feito de um material cujo calor especfico presso constante seja cp. Este corpo est
inicialmente a uma temperatura T0, e imerso rapidamente em um meio a uma temperatura que est TF oC acima de T0
(TF constante). A rea de troca de calor A, e o coeficiente de troca de calor k. Seja ainda T a diferena entre a
temperatura do corpo e a temperatura inicial T0. Uma variao infinitesimal dT da diferena de temperatura T pode ser
calculada por:
mc p dT Ak T F T dt calor trocado no intervalo de tempo dt.
Reescrevendo a equao:
dT
Ak
TF T
dt
mc p
ou, chamando
T y
Ak
C
mc p
obtemos:
y C T F y
Foi estabelecida uma equao diferencial cuja soluo a diferena de temperatura T do corpo (diferena entre a
temperatura do corpo e a temperatura T0). Esta equao um modelo matemtico do aquecimento do corpo. Observe
que T = y aumenta at que o corpo entre em equilbrio trmico, ou seja, at que T = TF. A varivel T a varivel de
estado e est relacionada com a quantidade de calor acumulada no corpo de massa m.
y f ( y (t ), u (t )) C TF y , e como TF = u = constante:
k1 = h.f ( y(t))
k2 = h.f ( y(t)+k1/2)
k3 = h.f ( y(t)+k2/2)
k4 = h.f ( y(t)+k3)
y(t+h) = y(t)+(k1+2.k2+2.k3+k4)/6
Arquivo numericoE.sce que calcula a soluo da equao diferencial abaixo, usando o mtodo de Euler, e que plota o
grfico de y (t ) em funo de t, e o grfico da soluo exata ye (t) em funo de t.
y (t ) 1 y (t ) / 2
Equao diferencial ordinria linear:
( o modelo desenvolvido na Introduo adotando-se C = 1/2 e TF = 1)
Instante inicial: t = 0
Instante final: tf = 10
ye (t ) 1 e t / 2
Implementao do arquivo numericoE.sce (escrever no editor do Scilab, salvar como numericoE.sce e executar no
Scilab):
// Conjunto de comandos para solucao numerica de equacao diferencial dada pela funcao funcao.sci
// Apagando dados anteriores:
clear
// Carregando a equacao diferencial:
// Carregue a funo usando o comando Load do Scilab
// Instante inicial:
t(1)=0;
// Instante final:
tf=10;
// Condicao inicial:
y(1)=0;
// Valor inicial da solucao exata:
ye(1)=0;
// Passo de integracao (experimente alterar o passo):
h=0.5;
// Calculo de numero de passos):
n=round(tf/h);
// Integracao numerica usando o metodo de Euler:
// Comando for:
for i=1:n
// Vetor de tempo:
t(i+1)=t(i)+h;
// Solucao numerica:
y(i+1)=y(i)+h* funcao(y(i));
// Solucao exata:
ye(i+1)=1-%e^(-t(i+1)/2);
// Termino do comando for:
end
// Plotando solucao numerica y versus vetor de tempo t e solucao exata ye versus vetor de tempo t:
plot2d([t,t],[y,ye],[-1 -2]);
// Colocando uma legenda na parte inferior direito da figura (parametro 4):
legends(["Solucao numerica","Solucao exata"],[-1,-2],4)
// Colocando um titulo na figura e nomeando os eixos:
xtitle("Comparacao entre solucao numerica e solucao exata","Tempo t","Solucao")
// Abrindo uma nova janela de graficos:
set("current_figure",1);
// Desenhando outro grafico com linhas diferentes:
plot2d([t,t],[y,ye],[1 2]);
// Usando a variavel do tipo 'lista':
T=list("Comparacao
entre
solucao
numerica
e
solucao
exata","Tempo
t","Solucao","Solucao
numerica","Solucao exata");
// Colocando uma legenda na parte superior esquerda da figura (parametro 2):
legends([T(4),T(5)],[1,2],2);
// Colocando um titulo na figura e nomeando os eixos:
xtitle(T(1),T(2),T(3));
Observe que a soluo exata dada por meio de uma expresso analtica nem sempre existe ou est disponvel.
Arquivo numericoR.sce que calcula a soluo da equao diferencial abaixo, usando o mtodo de Runge Kutta, e que
plota o grfico de y (t ) em funo de t, e o grfico da soluo exata ye(t) em funo de t.
y (t ) 1 y (t ) / 2
Equao diferencial ordinria linear:
( o modelo desenvolvido na Introduo adotando-se C = 1/2 e TF = 1)
Instante inicial: t = 0
Instante final: tf = 10
t / 2
ye (t ) 1 e
Soluo analtica (exata) da equao diferencial:
Implementao do arquivo numericoR.sce (escrever no editor do Scilab, salvar como numericoR.sce e executar no
Scilab):
// Conjunto de comandos para solucao numerica de equacao diferencial [1-y(i)]/2
// Apagando dados anteriores:
clear
// Instante inicial:
t(1)=0;
// Instante final:
tf=10;
// Condicao inicial:
y(1)=0;
// Valor inicial da solucao exata:
ye(1)=0;
// Passo de integracao (experimente alterar o passo):
h=0.5;
// Calculo de numero de passos):
n=round((tf-t(1))/h);
// Integracao numerica usando o metodo de Runge Kutta:
// Comando for:
for i=1:n
// Vetor de tempo:
t(i+1)=t(i)+h;
// Solucao numerica:
k1=h*(1-(y(i)))/2;
k2=h*(1-(y(i)+k1/2))/2;
k3=h*(1-(y(i)+k2/2))/2;
k4=h*(1-(y(i)+k3))/2;
y(i+1)=y(i)+((k1+2*k2+2*k3+k4)/6);
// Solucao exata:
ye(i+1)=1-%e^(-t(i+1)/2);
// Termino do comando for:
end
// Plotando solucao numerica y versus vetor de tempo t e solucao exata ye versus vetor de tempo t:
plot2d([t,t],[y,ye],[-1 -2]);
// Colocando uma legenda na parte inferior direito da figura (parametro 4):
legends(["Solucao numerica","Solucao exata"],[-1,-2],4)
// Colocando um titulo na figura e nomeando os eixos:
xtitle("Comparacao entre solucao numerica e solucao exata","Tempo t","Solucao")
// Abrindo uma nova janela de graficos:
set("current_figure", 1);
// Aumentando a espessura das linhas:
xset(thickness,2)
// Aumentando o tamanho da fonte:
xset(font size,4)
// Desenhando outro grafico com linhas diferentes:
plot2d([t,t],[y,ye],[1 2]);
// Usando a variavel do tipo 'lista':
T=list("Comparacao
entre
solucao
numerica
e
solucao
exata","Tempo
t","Solucao","Solucao
numerica","Solucao exata");
// Diminuindo a espessura das linhas:
xset(thickness,1)
// Colocando uma legenda na parte superior esquerda da figura (parametro 2):
legends([T(4),T(5)],[1,2],2);
// Colocando um titulo na figura e nomeando os eixos:
xtitle(T(1),T(2),T(3));
// Colocando uma grade no grafico:
xgrid(1)
Observe que, neste segundo exemplo, no definimos a funo que expressa a equao diferencial ( funcao.sci). A
expresso foi colocada diretamente no algoritmo de integrao. No foi necessrio, portanto, carregar uma funo pelo
comando Load do Scilab.
Implemente um programa no Scilab que resolva numericamente a equao diferencial que modela o sistema
abaixo, tanto pelo mtodo de Euler como Runge Kutta.
Reservatrio com gua
Parmetros:
S = 10 m2 - rea da seo transversal (constante)
R = 2108 Pa/(m3/s)2 - parmetro que relaciona vazo com queda
de presso (perda de carga)
= 1000 kg/m3 - massa especfica da gua
G = 10 m/s2 - acelerao da gravidade na superfcie da terra
Qe
V
S
Qs
Variveis:
Qe = 0,010247 m3/s - vazo de entrada
h: nvel do reservatrio [m]
V: volume de gua no reservatrio [m3]
P: presso relativa atmosfrica, no fundo do reservatrio [Pa]
Qs: vazo de sada [m3/s]
Admite-se que a gua seja incompressvel.
P
R
Pela equao da continuidade:
dV
Qe Q s
dt
V Sh
Qs
V Sh
Substituindo:
P RQs2
P
R
Sh Qe
gh
R
1
gh
h
Qe
R
Qe
S1
h1
S2
V1
V2
P1
h2
P2
R1
Qo
R2
g
h1 h2 1
h1 Qe
Ra
S1
h 2
g
h1 h2 g h2 1
Ra
Rs
S2
3 Estude a lista C.