Método de Runge-Kutta 2ª e 4ª ordem

De Física Computacional
Revisão de 20h20min de 15 de março de 2022 por Jhordan (discussão | contribs) (Criou página com '= Runge-Kutta 2ª ordem = No método explícito de euler tínhamos: <math display="block">\begin{align} y_{n+1} & =y_{n}+f\left(t_{n},y_{n}\right)\Delta t\end{align}</math>...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Runge-Kutta 2ª ordem

No método explícito de euler tínhamos:

yn+1=yn+f(tn,yn)Δt

Sendo dydt=f(t,y). Podemos reescrever como:

yn+1=yn+ak1

Onde a=1 e k1=f(tn,yn)Δt. Agor se supormos uma solução:

yn+1=yn+ak1+bk2(1) Com o termo adicional dependendo de uma posição genérica yn+cf(tn,yn)Δt em um tempo genérico t+dΔt, isto é k2=f(tn+dΔt,yn+cf(tn,yn)Δt)Δt. Usando o fato de que k1=f(tn,yn)Δt, podemos escrever então que:

  • k1=f(tn,yn)Δt
  • k2=f(tn+dΔt,yn+ck1)Δt

Agora lembrando a expansão em série de taylor que também vimos no método explícito e Euler:

y(t+Δt)=y(t)+y(t)Δt+y(t)Δt22+n=3y(n)(t)Δtnn!

Abrindo a segunda derivada, temos:

y(t)=d2dt2y(t)=ddtf(t,y)=ft+fydydt=ft+f(t,y)fy

Substituindo então, e escrevendo apenas 𝒪(Δ3)=n=3y(n)(t)Δtnn!, temos a seguinte expansão em série de Taylor:

y(t+Δt)=y(t)+y(t)Δt+(ft+f(t,y)fy)Δt22+𝒪(Δ3)(2)

Vamos expandir k2. Uma expansão de Taylor de primeira ordem para uma função de 2 variáveis em torno de (a,b) é dado por[1]:

f(x,y)f(a,b)+fx(a,b)(xa)+fy(a,b)(yb)

Onde fa denota a derivada da função f na variável a. Para o nosso caso, temos então para uma expansão em torno de (x,y):

f(x+Δx,y+Δy)f(x,y)+fx(x,y)Δx+fy(x,y)Δy

Expandindo então k2 em torno de (tn,yn) temos:

k2[f(tn,yn)+dΔttf(tn,yn)+ck1yf(tn,yn)]Δt

Aqui podemos notar que Δt multiplica a expansão da função, então quando desprezamos os termos de segunda ordem da expansão de f(x+Δx,y+Δy), deprezamos os termos de terceira ordem de k2. Substituindo então o k2aproximado e k1 na equação 1, temos:

yn+1=yn+af(tn,yn)Δt+b[f(tn,yn)+dΔttf(tn,yn)+cf(tn,yn)Δtyf(tn,yn)]Δt

Manipulando:

yn+1=yn+(a+b)f(tn,yn)Δt+[2bdtf(tn,yn)+2bcf(tn,yn)yf(tn,yn)]Δt22(3)

Comparando a aproximação 3 com a expansão 2 temos a seguinte relação:

a+b=1bd=12bc=12 Diferentes conjuntos de valore satisfazem este sistema. O método do ponto médio é obtido se ecolhermos: d=c=12, b=1 e a=1:

  • k2=f(tn+Δt2,yn+k12)Δt

Então:

yn+1=yn+f(tn+Δt2,yn+f(tn,yn)Δt2)Δt

O método de Heun é obtido se for escolhido a=b=12 e c=d=1:

  • k1=f(tn,yn)Δt
  • k2=f(tn+Δt,yn+k1Δt)Δt

yn+1=yn+(k1+k2)12

Uma observação, é que o erro global no algoritmo de Runge-Kutta de segunda ordem é .

Exemplo


Runge-Kutta 4ª ordem

Exemplo


Principais materiais utilizados

  1. Runge-Kutta Methods (Michael Zeltkevic, Instituto de Tecnologia de Massachusetts)
  2. Second Order Runge-Kutta (Erik Cheever, Swarthmore)

Citações