Método de Runge-Kutta

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Em análise numérica, os métodos de Runge–Kutta formam uma família importante de metódos iterativos implícitos e explícitos para a resolução numérica (aproximação) de soluções de equações diferenciais ordinárias. Estas técnicas foram desenvolvidas por volta de 1900 pelos matemáticos C. Runge e M.W. Kutta.

Veja o artigo sobre métodos numéricos para equações diferenciais ordinárias para maior entendimento e para outros métodos. Veja ainda a lista de métodos Runge-Kutta.

Trata-se de um método por etapas que tem a seguinte expressão genérica:

un+1=un+Δti=1ebiki,

onde

ki=F(un+Δtj=ieaijkj;tn+ciΔt) i=1,...,e

com aij,bi,ci constantes próprias do esquema numérico. Os esquemas Runge-Kutta podem ser explícitos ou implícitos dependendo das constantes aij do esquema. Se esta matriz é triangular inferior com todos os elementos da diagonal principal iguais a zero; quer dizer, aij=0 para j=i,...,e, os esquemas são explícitos.

O método de runge-kutta é muitas vezes confundido com o metodo "predictor-corrector"sendo este o resultado da junção do método dos trapézios e do método de Euler.

O método Runge–Kutta clássico de quarta ordem

Um membro da família de métodos Runge–Kutta é usado com tanta frequência que costuma receber o nome de "RK4" ou simplesmente "o método Runge–Kutta".

Seja um problema de valor inicial (PVI) especificado como segue:

y=f(t,y),y(t0)=y0.

Então o método RK4 para este problema é dado pelas seguintes equações:

yn+1=yn+h6(k1+2k2+2k3+k4)tn+1=tn+h

onde yn+1 é a aproximação por RK4 de y(tn+1), e

k1=f(tn,yn)k2=f(tn+h2,yn+h2k1)k3=f(tn+h2,yn+h2k2)k4=f(tn+h,yn+hk3)

Então, o próximo valor (yn+1) é determinado pelo valor atual (yn) somado com o produto do tamanho do intervalo (h) e uma inclinação estimada. A inclinação é uma média ponderada de inclinações:

  • k1 é a inclinação no início do intervalo;
  • k2 é a inclinação no ponto médio do intervalo, usando a inclinação k1 para determinar o valor de y no ponto tn + h/2 através do método de Euler;
  • k3 é novamente a inclinação no ponto médio do intervalo, mas agora usando a inclinação k2 para determinar o valor de y;
  • k4 é a inclinação no final do intervalo, com seu valor y determinado usando k3.

Ao fazer a média das quatro inclinações, um peso maior é dado para as inclinações no ponto médio:

inclinação=k1+2k2+2k3+k46.

O método RK4 é um método de quarta ordem, significando que o erro por passo é da ordem de h5, enquanto o erro total acumulado tem ordem h4.

Note que as fórmulas acima são válidas tanto para funções escalares quanto para funções vetoriais (ou seja, quando y pode ser um vetor e f um operador). Por exemplo, pode-se integrar a equação de Schrödinger usando o operador Hamiltoniano como função f.

Métodos Runge–Kutta explícitos

A família de métodos Runge–Kutta explícitos é uma generalização do método RK4 mencionado acima.

Ela é dada por yn+1=yn+hi=1sbiki, onde k1=f(tn,yn), k2=f(tn+c2h,yn+a21hk1), k3=f(tn+c3h,yn+a31hk1+a32hk2), ks=f(tn+csh,yn+as1hk1+as2hk2++as,s1hks1).

(Nota: as equações acima têm definições diferentes em diferentes textos, apesar de equivalentes).

Para especificar um método em particular, é necessário fornecer o inteiro s (número de estágios), e os coeficiêntes aij (para 1 ≤ j <is), bi (para i = 1, 2, ..., s) e ci (para i = 2, 3, ..., s). Esses dados são geralmente dispostos de forma mnemônica, conhecida como matriz de Butcher (de John Charles Butcher):

0
c2 a21
c3 a31 a32
cs as1 as2 as,s1
b1 b2 bs1 bs

O método Runge–Kutta é consistente se j=1i1aij=ci para i=2,,s.

Existem ainda exigências extras se for imposto que o método tenha certa ordem p, significando que o erro de truncamento é O(hp+1). Tais condições podem ser deduzida da própria definição de erro de truncamento. Por exemplo, um método de 2 estágios tem ordem 2 se b1 + b2 = 1, b2c2 = 1/2, e b2a21 = 1/2.

Exemplos

O método RK4 se enquadra nesta categoria. Seu tableau é:

0
1/2 1/2
1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6

No entanto, o método Runge–Kutta mais simples é o (forward) Euler, dado pela fórmula yn+1=yn+hf(tn,yn). Este é o único método Runge–Kutta explícito de um estágio que é consistente. A tableau correspondente é:

0
1

Um exemplo de um método de segunda ordem com dois estágios é o método do ponto médio (midpoint method, em inglês) yn+1=yn+hf(tn+h2,yn+h2f(tn,yn)). A tableau correspondente é:

0
1/2 1/2
0 1

Note que este método do 'ponto médio' não é o método RK2 ótimo. Uma alternativa é fornecida pelo método de Heun, onde os 1/2's da tableau acima são simplesmente substituídos por 1's. Caso se queira minimizar o erro de truncamento, o método abaixo deve ser utilizado (Atkinson p. 423). Outros métodos importantes são Fehlberg, Cash-Karp e Dormand-Prince. Leia ainda, o artigo sobre tamanho de passo Adaptativo.

Uso

O que segue é um exemplo de uso de um método Runge–Kutta explícito de dois estágios:

0
2/3 2/3
1/4 3/4

para resolver o problema de valor inicial y=(tany)+1,y(1)=1, t[1,1.1] com tamanho de passo h=0.025.

A tableau acima gera as seguintes equações equivalentes que definem o método: k1=yn k2=yn+2/3hf(tn,k1) yn+1=yn+h(1/4f(tn,k1)+3/4f(tn+2/3h,k2))

t0=1
y0=1
t1=1.025
k1=y0=1 f(t0,k1)=2.557407725 k2=y0+2/3hf(t0,k1)=1.042623462
y1=y0+h(1/4*f(t0,k1)+3/4*f(t0+2/3h,k2))=1.066869388
t2=1.05
k1=y1=1.066869388 f(t1,k1)=2.813524695 k2=y1+2/3hf(t1,k1)=1.113761467
y2=y1+h(1/4*f(t1,k1)+3/4*f(t1+2/3h,k2))=1.141332181
t3=1.075
k1=y2=1.141332181 f(t2,k1)=3.183536647 k2=y2+2/3hf(t2,k1)=1.194391125
y3=y2+h(1/4*f(t2,k1)+3/4*f(t2+2/3h,k2))=1.227417567
t4=1.1
k1=y3=1.227417567 f(t3,k1)=3.796866512 k2=y3+2/3hf(t3,k1)=1.290698676
y4=y3+h(1/4*f(t3,k1)+3/4*f(t3+2/3h,k2))=1.335079087

As soluções numéricas correspondem aos valores sublinhados. Note que f(ti,k1) foi calculado evitando refazer os cálculos em yis.

Ligações externas

Referências gerais

Predefinição:Equações diferenciais