Matemática Computacional
 
Resumo da matéria [Versão 3.1]


[Capítulo 1] [Capítulo 2] [Capítulo 3] [Capítulo 4] [Capítulo 5]

Capítulo V
 
Métodos Numéricos para EDO's

Começamos por apresentar uma breve introdução

Equações Diferenciais Ordinárias (EDO's)

O estudo de equações diferenciais é iniciado com Euler, sendo o caso mais simples, de equações diferenciais ordinárias, sistematizado por Cauchy e também por Picard. É no final do séc. XIX, com Runge (ver também Kutta) que o estudo de métodos numéricos é desenvolvido, levando aos métodos de Runge-Kutta e depois já no início do séc.XX aos métodos de Adams Adams.
Encontrar métodos eficazes para a solução de grandes sistemas de EDO's é ainda um problema actual, com dificuldades ao nível da estabilidade do métodos.

 
O estudo de EDO's pode ser concentrado no caso de sistemas de EDO's de 1ª ordem, no problema de Cauchy:
  
x'(t) = f(t, x(t))
 
x(t0) = x0
  
em que x e f são funções escalares ou vectoriais.
A incógnita é a função x que será diferenciável, e está definida num instante inicial t0 onde se conhece o seu valor x0. O objectivo será determinar a função x(t) para t > t0.
 
A primeira observação que fazemos, é que esta atribuição no instante inicial permite conhecer também a derivada nesse mesmo instante inicial t0, pois
x'(t0) = f(t0,x(t0)) = f(t0,x0).
Sendo possível obter x''(t), x'''(t), ... a partir da expressão de x'(t) é então intuitivo que será possível obter todas as derivadas em t0.
Isto significa que, enquanto a solução x for uma função analítica em torno de t0, é possível obter o seu desenvolvimento de Taylor, a partir do cálculo das derivadas nesse ponto inicial. Este é o argumento inicial de Cauchy para a existência e unicidade de solução (local).
 
Exemplo:
  
x'(t) = x(t)2
 
x(0) = a
  
Neste caso f(t,x) = x2, e t0=0, x0=a.
Reparamos que
x''(t) = 2x'(t)x(t)= 2x(t)3; ...; x(k)(t) = k! x(t)k+1
ou seja, a expansão de Taylor de x em t0=0, dá
x(t) =  

k=0
x(k)(0) tk/k! =  

k=0
x(0)k+1 tk = a  

k=0
(a t)k =   a
1 − a t
quando t < 1/a. É fácil confirmar que é solução, e a sua construção pode mostrar que é única.
Mais importante é notar que esta solução Explode quando t=1/a.
Ou seja, ainda que f seja analítica, a solução x pode estar definida apenas num pequeno intervalo, próximo do instante inicial.
Por outro lado, a função f pode não ser analítica, e por isso é conveniente estabelecer um resultado mais geral de existência e unicidade local:
 
Teorema: Seja (t0,x0)∈ D, em que D é um domínio onde f é contínua e Lipschitziana na segunda variável, ou seja, existe L>0:
|f(t,x) − f(t,y)| ≤ L|x − y|, ∀ (t,x),(t,y)∈ D.
Então existe uma vizinhança de t0 onde a solução x, do problema de Cauchy, existe e é única.
 
dem: Resulta do teorema do ponto de fixo em espaços funcionais (espaços de Banach, eg. [1])
Convém apenas referir que a condição Lipschitz pode ser simplificada, no caso de funções diferenciáveis, para
|∂2 f(t,x)| ≤ L, ∀ (t,x)∈ D
Observações: (dependência numa só das variáveis)
Há dois casos de EDO's que podem ser tratados como problemas de integração:
(1) Trivialmente, quando f(t,x) = f(t), ou seja, a função só depende de t, então a solução reduz-se ao integral
x'(t) = f(t) ⇒ x(t) = [t0,t] f(t) dt
e basta aplicar a primitivação ou regras de quadratura.
(2) Quando f(t,x)=f(x), a equação diferencial x'(t) = f(x(t)) diz-se autónoma, e a solução também pode ser obtida por primitivação.
Com efeito, sendo G= 1/f temos
x'(s) = f(x(s)) ⇔ x'(s)G'(x(s)) = 1 ⇒ [t0,t] x'(s)G'(x(s)) ds = t − t0
e como (G(x(s)))' = x'(s)G'(x(s)), obtemos
G(x(t)) − G(x0) = t − t0 ,
uma equação não linear, que define implicitamente o valor de x(t).
 
Exemplo: Retomando o exemplo anterior, x'(t) = x(t)2, temos
G(x)= x-2 dx = -x-1
e assim
-x(t)-1 + a-1 = t − 0 ⇒ x(t) =   a
1 − a t
obtendo por outra forma a solução encontrada pela expansão em série de Taylor.

 
Observações: (EDO's de Ordem Superior e Sistemas)
Quando as equações diferenciais ordinárias são de ordem superior à primeira, é possível reduzir o problema a um sistema de EDO's de primeira ordem.
Se tivermos
u(p) = F ( t, u(t), u'(t), ⋯, u(p-1)(t) )
definimos uma variável vectorial
x = (x0, x1, ⋯, xp-1) := (u, u', ⋯, u(p-1))
que tem os valores atribuídos inicialmente pelos dados de Cauchy
x(t0) = ( u(t0), u'(t0), ⋯, u(p-1)(t0) )
A EDO é então reescrita em termos de um sistema usando essa mudança.
x0'(t) = x1(t)
x1'(t) = x2(t)
xp-2'(t) = xp-1(t)
xp-1'(t) = F ( t, x0(t), x1(t), ⋯, xp-1(t) )
ou ainda, abreviadamente
x'(t) = F( t, x(t) ).
 
Exemplo: quando os coeficientes são constantes, a equação
u'''(t) = a u(t) + b u'(t) + c u''(t)
pode escrever-se num sistema
x0'(t) = x1(t)
x1'(t) = x2(t)
x2'(t) = a x0(t) + b x1(t) + c x2(t)
que neste caso (simples) é mesmo um sistema linear
x'(t) =
x0'(t)
x1'(t)
x2'(t)
=
  0    1    0  
  0    0    1  
  a    b    c  
x0(t)
x1(t)
x2(t)
= M x(t)
e a sua solução é dada através de uma exponencial matricial
x(t) = x(0) eMt.
A exponencial matricial pode ser definida pelos valores próprios...
Nesse caso isso é fácil de obter pois a matriz M tem na última linha os coeficientes que definem o polinómio característico.
Os valores próprios serão as (3) raízes complexas λk desse polinómio
λ3 = a + bλ + cλ2.
Assim, quando a matriz é diagonalizável, podemos mesmo obter
u(t) = C1 e1 + C2 e2 + C3 e3
em que os coeficientes Ck são obtidos a partir dos dados iniciais de Cauchy.

Métodos de Taylor e Runge-Kutta

No que se segue iremos formular os métodos em termos escalares, mas a sua aplicação a sistemas é exactamente igual, encarando x e f como vectores.
 
Iremos começar por abordar métodos que podem ser deduzidos por expansões em série de Taylor − por isso são denominados Métodos de Taylor.
A partir dos métodos de Taylor deduzimos uma variante − os Métodos de Runge-Kutta − que evitam o cálculo de derivadas para ordens p>1.

Método de Euler

Começamos por introduzir o método numérico mais simples, que pode ser deduzido pela aproximação de Taylor de 1ª ordem (x ∈ C2)
x(t+h) = x(t) + h x'(t) + x''(ξ)/2 h2 = x(t) + h f(t,x(t)) + O(h2).
Isto significa que é possível prever a evolução num instante posterior, se desprezarmos o termo O(h2), o que é aceitável para valores h pequenos.
 
Dessa forma, quando queremos avaliar a solução num tempo T podemos subdividir a distância usando um espaçamento constante
h=(T-t0)/N,
para um certo N, definindo pontos intermédios de cálculo
t0, t1 = t0 + h, ⋯, tN=t0 + N h = T.
Sendo conhecido o valor x0=x(t0), podemos aplicar sucessivamente a aproximação de 1ª ordem,
x(tm+1) ≈ x(tm) + h f(tm, x(tm))
e assim definir o Método de Euler
Dado x0, iteramos:
xm+1 = xm + h fm
abreviando-se fm = f(tm, xm).
Cada valor xm é uma aproximação de x(tm), sendo claro que xN será a aproximação final de x(T).
 
Exemplo: Consideremos a EDO x'(t)=x(t) com x(0)=1.
É bem conhecido que x(t)=et é a sua solução única.
Supondo que pretendemos aproximar x(T)=eT num instante fixo T=N h, usando o Método de Euler, obtemos o seguinte:
x0=1; xm+1 = xm + xm h ⇒ xm=(1+h)m
Portanto, como h=T/N reencontramos uma aproximação clássica:
xN = (1 + T/N)N → eT (quando N→∞, ou h → 0).

Outros Métodos de Taylor

O Método de Euler é um caso particular de métodos que se baseiam na expansão em série de Taylor.
Considerando uma expansão de 2ª ordem (x ∈ C3)
x(t+h) = x(t) + h x'(t) + x''(t)/2 h2 + O(h3).
Podemos desprezar o termo O(h3), obtendo uma aproximação melhor, de segunda ordem.
No entanto, se a substituição x'(t)=f(t,x(t)) é imediata, o cálculo de x''(t) envolve já uma derivação adicional.
Isso pode ser feito recorrendo directamente à derivação da expressão x'(t), e procedendo à eventual substituição de x'(t) e depois dos valores t por tm e x(t) por xm.
Abreviadamente, o Método de Taylor de ordem 2 fica
Dado x0, iteramos:
xm+1 = xm + h fm +  1/2 h2 [x''(t)]|t=tm; x(t)=xm .
 
Exemplo: Consideremos a aplicação do Método de Taylor de ordem 2 à equação
x'(t)= -t x(t), com x(0)=1.
Como x''(t)= -x(t) − t x'(t) = (t2 − 1)x(t), obtemos
xm+1 = xm + h (-tmxm) +  1/2 h2 (tm2 − 1)xm ,
fazendo as substituições indicadas.

 
O cálculo de x''(t) pode ainda ser obtido pela regra em cadeia, recorrendo às derivadas parciais
x''(t) = d/dt f(t,x(t)) = ∂1f(t,x(t)) + f(t,x(t)) ∂2f(t,x(t)).
e no ponto t_m, abreviamos a notação
[x''(t)]m = (∂1f)m + fm (∂2f)m.
No entanto, este termo requer o cálculo prévio de derivadas, que pode ser dispensado usando uma técnica que leva aos métodos de Runge-Kutta.

Métodos de Runge-Kutta

Os métodos de Runge-Kutta de ordem p partem de um método de Taylor de ordem p, procurando substituir as derivadas parciais por outras avaliações pontuais de f.
No caso mais simples, o método de Euler, com p=1 não há derivação a realizar, e por isso também pode ser encarado como um Runge-Kutta trivial, de ordem 1.
 
Podemos escrever os métodos de Taylor de ordem 2 na forma
xm+1 = xm + h Φm ,
com Φm = fm +  h/2  ( (∂1f)m + fm (∂2f)m )
e a ideia será substituir as derivadas no cálculo de Φm.
Consideramos a expansão de Taylor de f em duas variáveis,
f(t+H1, x+H2) = f(t,x) + ∂1f(t,x)H1 + ∂2f(t,x)H2 +O(H1H2).
Podendo desprezar o termo O(H1H2), obtemos a aproximação
f(tm+H1, xm+H2) ≈ fm + (∂1f)mH1 + (∂2f)mH2.
Quando H1h/2 , H2= fm h/2 , temos
f(tmh/2 , xm+fm h/2 ) ≈ Φm ,
com um erro de O(h2).
Substituindo Φm obtemos assim um Método de Runge-Kutta de ordem 2 (do ponto-médio)
Dado x0, iteramos:
xm+1 = xm + h f ( tmh/2 , xm + fm h/2  ) .
  • Métodos de Runge-Kutta de ordem 2 (caso geral)
    Variando um parâmetro θ≠ 0, e combinando com fm, obtemos
    (1-θ) fm+ θ f(tm+H1, xm+H2) ≈ fm + θ ( (∂1f)mH1 + (∂2f)mH2 ) ,
    resultando noutras aproximações para Φm:
    (1-θ) fm+ θ f(tm+H1, xm+H2) ≈ Φm ,
    quando θ H1h/2 , θ H2= fm h/2 .
    Obtemos assim uma forma geral
    xm+1 = xm + (1-θ) h fm + θ f ( tm +  h/  , xm + fm h/   )
    que podemos concretizar:
    • O caso θ = 1 já foi visto (ponto-médio);
    • O caso θ = 1/2 também é conhecido como método de Heun:
      xm+1 = xm +  1/2 h fm +  1/2 f ( tm + h, xm + fmh )
    • Nota: estes métodos também são por vezes designados como métodos de Euler modificados.
      Cada passo necessita de 2 cálculos da função f.
  • Métodos de Runge-Kutta de ordem 3
    Tal como no caso anterior são obtidos a partir do Método de Taylor de ordem 3, e cada passo necessita de 3 cálculos da função f. Não são tão utilizados como os de ordem 2 ou 4.
  • Métodos de Runge-Kutta de ordem 4
    Tal como no caso anterior são obtidos a partir do Método de Taylor de ordem 4, e exigem 4 cálculos da função f.
    O exemplo mais conhecido é
    xm+1 = xm + (Fh1 + 2Fh2 + 2Fh3 + Fh4)/6,
    definindo recursivamente:
      Fh1 = h fm
      Fh2 = h f ( tm +  h/2 , xm + Fh1/2 )
      Fh3 = h f ( tm +  h/2 , xm + Fh2/2 )
      Fh4 = h f ( tm + h , xm + Fh3 )
  • Métodos de Runge-Kutta de ordem ≥ 5
    Raramente são utilizados sem adaptações. Foi demonstrado por J. C. Butcher (1960's) que para p ≥ 5 o número de avaliações é superior à ordem p. Isso torna estes métodos claramente menos eficazes, a menos que se introduzam modificações (e.g. Runge-Kutta-Fehlberg, 1969).

Erros: Consistência, Estabilidade e Convergência

Os métodos numéricos apresentados consistem em aproximações locais, em cada subintervalo de comprimento h, cujo erro local acumula sucessivamente até à aproximação no tempo final T > t0. Esse valor final envolve já um erro global, que poderá ser encarado com soma dos erros locais, se o método for estável.
Assim há 3 noções a considerar:
(i) ordem de consistência ( ~ ordem do erro da aproximação local)
(ii) estabilidade do método ( ~ a influência local é somada globalmente)
(iii) ordem de convergência ( ~ ordem do erro global)
 
De um modo geral iremos definir os métodos (unipasso, explícitos) na forma
xm+1 = xm + h Φh(tm, xm)
onde Φh é uma função que define o método:
- no caso de Euler: Φh = f;
- no caso do RK-2-ponto-médio: Φh(t,x) = f(t + h/2, x + h f(t,x)/2);
Iremos assumir que tal como f, a função Φ é também contínua e Lipschitziana na 2ª variável.

Ordem de Consistência

A ordem de consistência é definida localmente, através do erro no cálculo de xm+1, admitindo que os valores anteriores xm são exactos.
Assim, recuperando a expansão de Taylor, para o método de Euler temos
E(h) = x(tm+1) − xm+1 = ( x(tm) + h x'(tm) + x''(ξm)/2 h2 )( xm − h fm ) = x''(ξm)/2 h2,
assumindo que x(tm)=xm.
Há assim um erro local de ordem 2 − designado erro de truncatura local:
E(h) = x''(ξm)/2 h2 = O(h2)
e a ordem de consistência é definida um valor abaixo, ou seja, neste caso a ordem de consistência é 1.
 
De forma semelhante, para outros métodos de Taylor de ordem p, obtemos
E(h) = x(p+1)m)/(p+1)! hp+1 = O(hp+1)
havendo um erro de truncatura local de ordem p+1 e uma correspondente ordem de consistência p.
 
Observação: No caso dos métodos de Runge-Kutta de ordem p haverá também um erro de truncatura O(hp+1) e uma correspondente ordem de consistência p.
Vejamos para o caso do Método R-K de ordem 2 do ponto-médio.
Designando por Xm+1 o valor dado pelo método de Taylor de ordem 2, e por xm+1 o valor dado pelo R-K, recordamos que
Xm+1 − xm+1 = h O(H1H2) = h O(h2) = O(h3).
Portanto, como o método de Taylor verifica x(tm+1) − Xm+1 = O(h3) temos
x(tm+1) − xm+1 = (x(tm+1) − Xm+1) + (Xm+1 − xm+1) = O(h3).

Estabilidade e Convergência

Há várias noções de estabilidade.
Interessa-nos aqui a noção de estabilidade-zero associada à limitação da propagação de erro que resulta da função Φ, que define o método, ser Lipschitziana.
No contexto dos métodos unipasso, que vimos, isso é suficiente para assegurar a estabilidade. Iremos ver que isso não é suficiente no caso de métodos multipasso (onde o cálculo de xm+1 não depende apenas de xm mas também de xm-1, xm-2, ...).
 
A ordem de convergência é dada pela ordem p do erro global
eN = x(tN) − xN = O(hp)
resultando da acumulação dos erros locais durante os N passos.
É intuitivo que, quando o erro de truncatura local é O(hp+1), temos
eN = x(tN) − xN ≈ N E(h) = N O(hp+1) = Nh O(hp) = O(hp)
(pois N h = T − t0 será constante).
Ou seja, a ordem de consistência p implicará convergência da mesma ordem p, quando garantida a estabilidade do método.
 
Teorema: (convergência de métodos unipasso explícitos)
Se um método tem consistência de ordem p, sendo estável, terá também ordem de convergência p.
 
dem:
Se admitirmos que os valores são correctos em tm obtemos
Xm+1 = x(tm) + h Φh(tm,x(tm)) ,
e a ordem de consistência p dá-nos
|E(h)| = |x(tm+1) − Xm+1| ≤ C hp+1
Por isso, decompondo o erro global
em+1 = x(tm+1) − xm+1 = (x(tm+1) − Xm+1) + (Xm+1 − xm+1)
basta analisar a parte
|Xm+1 − xm+1| = | ( x(tm) + h Φh(tm,x(tm)) )( xm + h Φh(tm,xm) ) |
|Xm+1 − xm+1| ≤ |x(tm) − xm| + h |Φh(tm,x(tm)) − Φh(tm,xm) ) | ≤ |em| + h LΦ|em|
concluindo-se
|em+1| ≤ C hp+1 + (1 + h LΦ)|em|
escrevendo K=1 + h LΦ resulta recursivamente
|eN| ≤ C (1 + K + ⋯ + KN-1) hp+1 + KN|e0|
Usando a progressão aritmética, e exp(LΦh) ≥ K obtemos
|eN| ≤ C   KN − 1
K − 1
hp+1 + KN|e0| = C   exp(LΦNh) − 1
LΦ
hp + exp(LΦNh)|e0|
Como o erro inicial é nulo, conclui-se a fórmula
|eN| ≤ C   exp(LΦ(T-t0)) − 1
LΦ
hp = O(hp)
 
Corolário: No Método de Euler, temos a estimativa
|eN| ≤ C   exp(L(T-t0)) − 1
LΦ
h + exp(L(T-t0))|e0|
em que L é a constante de Lipschitz,
L = maxD |∂2 f|, C = max[t0,T] |x''|/2.
 
dem: É resultado da demonstração anterior, notando que no caso do método de Euler
Φ(t,x)=f(t,x)
e a consistência é p=1 pois
|E(h)| = |x(tm+1) − Xm+1| = |x''(ξm)| h2 /2 ≤ C h2
com C = max |x''|/2.

Métodos Implícitos

Começamos por notar que há alguns casos em que apesar da convergência estar demonstrada quando h → 0, o método de Euler pode apresentar instabilidades para valores de h que não sejam suficientemente pequenos.
 
Exemplo: Consideremos, por exemplo, o caso simples em que (α > 0)
x'(t) = − α x(t), com x(0) = 1.
A solução é x(t)=e-α t e da aplicação do método de Euler
xm = (1 − α h)m.
Apesar de x(t)→ 0, quando t→∞, se o h não for suficientemente pequeno podemos ter |xm|→∞.
Basta reparar que para h = 3/α obtemos
|xm|=|(-2)m| → ∞

 
Neste caso há uma relação directa com a constante de Lipschitz L=α e vemos assim que para valores de L mais elevados, somos forçados a considerar h muito pequenos, e consequentemente muitos passos.
A estabilidade do método está condicionada pelo valor de h e é designada por A-estabilidade.
Os métodos explícitos, que vimos, têm uma zona de A-estabilidade reduzida, condicionando a validade da aproximação apenas a valores de h suficientemente pequenos.
 
Para contornar este tipo de problema consideram-se métodos implícitos.
Por exemplo, o Método de Euler implícito
xm+1 = xm + h f(tm+1, xm+1)
em que o valor xm+1 está definido implicitamente, sendo necessário resolver uma equação para o obter.
 
Exemplo: No exemplo apresentado antes, essa equação é fácil de resolver:
xm+1 = xm − h α xm+1 ⇔ xm+1 = xm/(1 + α h)
ou seja,
xm = (1 + α h)-m.
Verificamos que independentemente do valor de α ou h a sucessão converge para zero.

 
Conclui-se que a aplicação de métodos implícitos pode resolver o problema de A-estabilidade.
 
Observação: Euler Implícito − Aplicação do Método do Ponto Fixo
Para resolver a equação que define implicitamente xm+1 no Método de Euler implícito, podemos usar directamente o método do ponto fixo:
xm+1 = g(xm+1) = xm + h f(tm+1, xm+1)
em que temos assim definida a função iteradora
g(z) = xm + h f(tm+1, z)
e uma condição para garantir convergência local será
|g'(z)|< 1 ⇔ h |∂2f|< 1
ou ainda L h < 1, em termos da constante de Lipschitz.
 
A aplicação do método do ponto fixo leva à iteração:
y0 = xm
y1 = xm + h f(tm+1,y0) = xm + h f(tm+1,xm)
y2 = xm + h f(tm+1,y1) = xm + h f(tm+1, xm + h f(tm+1,xm))
reparando que a cada iteração isso envolve cálculos adicionais de f que podem não acrescentar nada à precisão (que é apenas de 1ª ordem) e comprometem a eficácia do método − face a considerar metade do passo h no método explícito.
Assim, normalmente, basta considerar duas ou três iterações no método do ponto fixo, usando o valor y2 (ou y3,...) como aproximação para xm+1.
Para além disso, podemos começar o método implícito com uma iterada inicial melhor do que xm, usando um método explícito. A combinação entre estes dois aspectos é conhecida como técnica preditor-corrector.

Preditor-Corrector. Métodos Multipasso.

Um outro processo de definir métodos para EDO's consiste na utilização da formulação integral equivalente. Em particular, integrando a equação diferencial obtemos
x(tm+1) − x(tm) = [tm,tm+1] x'(t) dt = [tm,tm+1] f(t,x(t)) dt
Sendo Q uma regra de integração aplicada ao cálculo de
I(F) = [tm,tm+1] F(t) dt
podemos fazer a aproximação de
x(tm+1) − x(tm) = I(f(⋅,x(⋅)))
através da regra Q considerando
xm+1 = xm + Q(f(⋅,x(⋅))).

 
Por exemplo considerando a regra dos trapézios
T(f(⋅,x(⋅))) = ( f(tm,x(tm)) + f(tm+1,x(tm+1)) ) h/2
obtemos o Método dos Trapézios
xm+1 = xm + ( f(tm,xm) + f(tm+1,xm+1 ) h/2.
que é ainda um método implícito.
 
Para a resolução da equação não linear
y = xm + ( f(tm,xm) + f(tm+1,y) ) h/2.
podemos considerar de novo o método do ponto fixo
y0 = xm
y1 = xm + (fm + f(tm+1,y0)) h/2.
yk+1 = xm + (fm + f(tm+1,yk)) h/2.
mas existe uma outra estratégia mais eficaz − a técnica Preditor-Corrector.
 
Técnica Preditor-Corrector: Consiste num par de métodos (explícito, implícito), em que o método explícito serve para inicializar o método implícito.
Por exemplo, considerando o par (Método de Euler, Método dos Trapézios), obtemos
y0 = xm + h fm
y1 = xm + (fm + f(tm+1,y0)) h/2 = xm + (fm + f(tm+1,xm + h fm)) h/2.
que é a expressão de um método de Runge-Kutta de ordem 2 (de Heun).
 
Observação: Reparamos ainda que se considerássemos a regra do ponto-médio para a integração, teríamos
Q(f(⋅,x(⋅))) = h f(tm+h/2, x(tm+h/2) )
e usando a aproximação de Euler
x(tm+h/2)≈ xm + h/2 fm
obtemos o método de Runge-Kutta do ponto-médio
xm+1 = xm + h f(tm+h/2, xm + h/2 fm ).

 
Observação: Finalmente notamos que a aplicação de duas iteradas do método de Euler com metade do passo =h/2 conduz a algo diferente
xm+1/2 = xm + h/2 fm
xm+1 = xm+1/2 + h/2 f(tm+h/2, xm+1/2) = xm + h/2 fm + h/2 f(tm+h/2, xm + h/2 fm)
Não se trata de nenhum método Runge-Kutta, e de facto o erro local mantém-se na ordem O(h2) (apesar de decrescer 1/4), pelo que há conveniência em considerar os métodos de Runge-Kutta que permitem aumentar a ordem de convergência.

Métodos Multipasso

Até agora considerámos métodos em que o valor de xm+1 era dado com base em xm, independentemente de ser por forma explícita ou implícita.
Estes métodos são designados unipasso por oposição aos métodos multipasso em que o valor xm+1 é definido a partir dos p valores anteriores:
xm, xm-1, ⋯, xm-p+1
correspondente a um método a p passos. Nesta classe de métodos encontram-se os métodos de Adams
 
Os métodos de Adams com p-passos são deduzidos a partir da formulação integral
x(tm+1) = x(tm) + [tm,tm+1] f(t,x(t)) dt
considerando uma regra de integração baseada nos nós
xm, xm-1, ⋯, xm-p+1 : Métodos Adams-Bashforth (explícitos)
ou
xm+1, xm, xm-1, ⋯, xm-p+1 : Métodos Adams-Moulton (implícitos)
A regra de integração é construída pelo método dos coeficientes indeterminados, procurando que I(F)=Q(F) para F(t) monomiais 1, t, t2, ⋯ . Dessa forma terá grau p no caso dos métodos explícitos, e grau p+1 no caso dos métodos implícitos.
 
Exemplo: (Regra de Adams-Bashforth de ordem 2)
Sendo
I(F) = [tm,tm+1] F(t) dt   ;   Q(F)= w0 F(tm) + w1 F(t{m-1}) ;
procuramos que I(F)=Q(F) para F(t) = 1, t :
I(1) = Q(1) ⇔ h = w0 + w1
I(t) = Q(t) ⇔ (tm+1)2/2 − (tm)2/2 = w0 tm + w1 tm-1
o que dá o sistema linear
h = w0 + w1
h tm + h2/2 = (w0 + w1) tm − w1 h
obtendo-se w1= − h/2 e w0 = 3h/2.
Ficamos assim com a regra de quadratura
Q(F) = ( 3F(tm) − F(tm-1) ) h/2
que origina a Regra de Adams-Bashforth de ordem 2
xm+1 = xm + ( 3fm − fm-1 ) h/2

[Capítulo 1] [Capítulo 2] [Capítulo 3] [Capítulo 4] [Capítulo 5]

C J S Alves (2008, 2009)