FIS045
Métodos Computacionais em física
Cap 6: Equações diferenciais
Prof. Gustavo Guerrero (sala 4120)
e-mail para enviar as listas de exercicios:
s045.ufmg@gmail.com
Universidade Federal de Minas Gerais
2017
Introdução
Equações diferenciais são ubicuas na ciência e são as ferramentas pelas quais tentamos expresar as leis de movimento da natureza.
Nesse capitulo vamos revisar os métodos mais usados na resolução de equações e sistemas de equações diferenciais ordinarias ODE. Vamos estudar varias aplicações físicas desses métodos: o lançamento do projetil, de uma particula carregada, o pendulo clásico e a estrutura de estrelas (incluindo estrelas de neutrons.
EDO
A ordem de uma EDO se refer a ordem da derivda no lado esquerdo da equação, e.g.,
dy
dt = f (t, y )
é uma equação de primeira ordem com f sendo uma função arbitraria. Uma equação de segunda ordem é:
d2y dt2 = f (t,
dy dt, y ), cujo exemplo clásico é a segunda lei de Newton:
md
2x
dt2 = −kx .
Em muitos casos é possível escrever uma equação de segunda ordem como duas EDO de primeira ordem, e.x., para a equação acima:
mdv
dt = −kx , dx dt = v .
Já que varias equações podem ser resolvidas simulataneamente, é comum utilizar criar um vetor y para denir tais variáveis. Por exemplo
x (t) = y(1)(t) , v (t) = y(2)(t) y(1)(t) dt = y (2)(t) , y(2)(t) dt = − k my (1)(t) .
Para que o sistema de equações seja bem determinado, precisamos, para o exemplo anterior, conhecer as condiçoes iniciais y(1)(0) e y(2)(0).
Quando as equaçoes não evoluem no tempo mas queremos determinar a distribuição no espaço de uma determinada quantidade, precisamos condiçoes de contorno.
Métodos de diferenças nitas
Supondo que temos a condição inicial dada por:y0= y (t = t0)
Estamos interessados em resolver uma EDO no intervalo [a, b], usando N pasos temporais. Denimos nosso intervalo: h = b−a
Podemos evaluar o valor seguinte da função y em: y1= y (t1= t0+ h) ,
e assim sucesivamente. Se a função é suave podemos usar um valor de h constante. Caso contrario podemos adaptar h em diferentes regioes do dominio [a, b]. Para o caso de h xo:
yi +1= y (t = ti+ h) = y (ti) + h∆(ti, yi(ti)) + O(hp+1) ,
onde O(hp+1)representa o erro de truncamento. Para determinar ∆,
expandimos a função y em serie de Taylor:
∆(ti, yi(ti)) = (y0(ti) + ... + y(p)(ti)
hp+1
p! ) . Denindo: y0(t
i) = f (ti, yi), e truncando ∆ na primeira derivada, temos:
yi +1= yi+ h f (ti, yi) + O(h2) ,
Que com ti +1= ti+ h, forma o algoritmo conhecido como método de
Euler. A cada paso temos um erro de truncamento de ordem O(h2),
levando a um erro global de NO(h2) ' O(h). Aumentar N
arbitrariamente pode ajudar más podemos entrar em problemas de roundo.
Se incluimos a segunda derivada no calculo de ∆ temos: ∆(ti, yi(ti)) = f (ti) + h 2 df (ti, yi) dt + O(h 3)
a segunda derivada pode se escrever como: y00= f0= df dt = ∂f ∂t + ∂f ∂y ∂y ∂y = ∂f ∂t + ∂f ∂yf o que leva a yi +1= yi+ hf (ti) + h2 2 ∂f ∂t + ∂f ∂yf + O(h3) , com um erro local de O(h3)e um erro global de O(h2). Podemos
aprimorar o método tomando a derivada até uma ordem arbitraria, mas calcular numericamente derivadas de alta ordem não é recomendável.
Métodos Runge-Kutta
Os métodos Runge-Kutta também são baseados em expansões de Taylor, não entanto levam a melhores algoritmos para a solução de EDOs. A losofía básica desses métodos é o calculo de um paso intermediario no cálculo de yi +1. Consideremos as denições seguintes:
,
Consideremos inicialmente o método de segunda ordem: RK2.
Expandimos f (t, y) arredor do centro do intervalo de integração [ti, ti +1],
ou seja, em ti +1/2= ti +h/2. Usando a formula da integral no ponto
médio, y(ti+ h/2) temos:
portanto,
No entanto, o valor de yi +1/2ainda é desconhecido. Usamos o método
de Euler para aproximar yi +1/2, o que leva a:
O método mais usado é o método deRunge-Kutta de 4a ordem, RK4. Começamos novamente com a equação:
Mas nao calculamos a integral calculando o ponto médio mas a formula de Simpson:
Substituindo temos:
De onde yi +1/2e yi +1são ainda desconhecidos. Podemos dividir a seguir
a avaliação do ponto médio em dois passos:
Algoritmo RK4:
I Computamos primeiro: k1= hf (ti, yi)(parando aqui teriamos o
metodo de Euler)
I calculamos a inclinação no ponto médio usando o método de Euler:
k2= hf (ti+ h/2, yi+ k1/2).
I A inclinação corrigida é usada para calcular a inclinação de yi +1/2
calculando
k3= hf (ti+ h/2, yi+ k2/2).
I Com a última inclinação podemos preveer o valar de yi +1 usando
k4= hf (ti+ h, yi+ k3).
A última conta é
yi +1= yi+
1
Lançamento do projetil
Vamos estudar numericamente o movimento parabólico de um
projetil. Inicialmente sem os efeitos das forças inerciais (de Coriolis,
especialmente). Asumimos que a escala do movimento é menor que
a curvatura da terra, assim, podemos considerar um sistema plano.
Vamos considerar que z aponta na direção vertical (perpendicular à
terra), y aponta para o este e x aponta para o sul. Em esse
sistema, teriamos
ω = (−ω
cos λ, 0, ωsinλ)
v = (v
0,x, v
0,y, v
0,z)
Onde, v
0=
5000 km/h, λ é a latitude de lançamento e o projetil e
lançado com um angulo α. E nossas equaçoes de movimento
seriam:
d
2x
dt
2=
0 ,
d
2y
dt
2=
0 ,
d
2z
dt
2= −g
Movimento de uma particula carregada
Vamos estudar numericamente o movimento helicoidal de uma
particula carregada. A equação de movimento é
m
a = qE + qv × B
Consideramos inicialmente E = 0, e um campo na direção vertical
B
z=
3. Similarmente consideramos um vetor velocidade inicial
v = (0, 1, 1)
Método de Runge-Kutta adaptativo
Métodos adaptativos são usados quando a função varia suavemente em algumas regiões, mas rápidamente em outras. Normalmente esses métodos combinan algoritmos Runge-Kutta de ordens diferentes. Por exemplo, assuma que a solução exata é ˜y, usamos um RK de ordem M. Fazemos uma simulação com h (com solução y1) e outra com h/2 (com
solução y2).
A solução do caso (1) é ˜
y = y1+ ChM+1+ O(hM+2), onde C é uma constante, e para o caso (2)
˜
y = y2+2C(h/2)M+1+ O(hM+2), A diferença entre as duas soluções é:
|y1− y2| = ChM+1 1 − 1 2M , logo C = |y1− y2| (1 − 2M)hM+1.
Reescrevendo a solução exata em termos de uma quantidade E: ˜
y = y2+ E + O(hM+2), onde, E = |y1− y2| 2M−1 .
Se usarmos um RK de quarta ordem temos: ˜
y = y2+ E + O(h6), com, E =|y1− y2| 15 .
O método com h/2 resulta sendo uma ordem de grandeça mais preciso que o RK4, porem é ineciente e requer muitos cálculos. Podemos comparar E alguma precisão desejada, e.x., ζ = 10−8 e nos perguntar:
Para um dado yi e ti qual é maior ˜h que leva a um erro menor que ζ?, i.e.,
C ˜h ≤ ζ
O que leva a: ˜h h !M+1 |y1− y2| 1 − 2−M ≤ ζ, ou˜h = h ζ E 1/M+1
Usando essa equação podemos criar um algoritmo da seguinte forma:
I Se as duas soluções y1e y2são proximas, mantenha o valor de h. I Se E > ζ, precisamos diminuir o valor de h no passo seguinte. I Se E < ζ, precisamos aumentar o valor de h no passo seguinte.
Implementar tal algoritmo requer um grande numero de calculos. Não entanto é possível diminur os calculos combinando RK de diferentes ordens.
O métodoRunge-Kutta-Fehlberg (RKF45) combina RK de 4a e 5a ordem. Evalua a função f (a inclinação) de tal forma que as funções k0s
O método requer avaliar 6 valores:
As aproximações de 4a e 5a ordem são dadas por:
E o passo ótimo, αh é determinado por: α =
ζh
2|zk+1− yk+1|
1/4 .
Onde ζ a precisão desejada. Mais detalhes dobre o método podem ser encontrados em: J. Butcher, Numerical Methods for Ordinary Dierential equations (Wiley, 2008).
Método preditor-corretor (PC)
É um método apropriado para problemas que requerem alta precisão de funções suaves e com equações complicadas no lado direito da equação. Contrario aos métodos de RK que usam unicamente o passo anterior, yn,
para calcular o passo seguinte, yn+1, os métodos PC, usam passos
anteriores: yn−2, yn−1, junto com yn, para calcular yn+1.
O PC mais polular é o esquema deAdams-Bashforth-Moulton, que possui boas propriedades de estabilidade. A parte Adams-Bashforth, em um esquema de ordem 3, é o predictor:
Que faz uma previsão de yn+1, baseado em inclinações em yn−1, yn−2e
yn. A parte Adams-Moulton é o corretor:
Utiliza a y0
n+1 para corrigir o valor de yn+1.
QBO's, um oscilador forçado
As QBO's são um fenômeno atmosférico caracterizado pela aparição de ventos na região tropical. O interessante é que esses ventos mudam de direção de este para leste a cada dois anos. O padrão é tão preciso que as QBO's são chamadas o heartbeat of earth. Até que em 2016 ...
QBO's, um oscilador forçado
Exercícios
1. Considere novamente o problema do tiro parabólico. Inclua no modelo duas novas forças: (a) a força de Coriolis FC =2m(v × ω),
e (b) uma força de atrito da forma Ff == −km|v |n|v |v , (c) as duas
forças operando conjuntamente. Note que a força de atrito não é uma força básica da natureza, mas um modelo simples de um fenômeno complexo. A equação acima é uma possível forma de estudar esse fenômeno que considera que o atrito depende da velocidade a uma potencia n. O fator −v/|v| corresponde ao fato do atrito ser sempre oposto ao movimento. Experimentos mostram que n = n(v), o qual deveria ser considerado em um modelo mais preciso. No seu modelo experimente com n = 1 e n = 2. Note que no seu sistema agora terá que resolver 6 equações.
2. Faça uma animação 3D de seus resultados, usando Python o Gnuplot, tanto para os casos que consideram unicamente a força de Coriolis quanto para os que consideram Coriolis e atrito. Considere que o foguete sai em direção sul, a uma latitude de 30o e com uma