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
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
|
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 | ┘
|
|
| |
= M x(t) |
e a sua solução é dada através de uma exponencial matricial
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
Assim, quando a matriz é diagonalizável, podemos mesmo obter
u(t) = C1 etλ1 + C2 etλ2 + C3 etλ3 |
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
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 H1= h/2 , H2= fm h/2 , temos
f(tm+ h/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 ( tm+ h/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 θ H1= h/2 , θ H2= fm h/2 . |
Obtemos assim uma forma geral
xm+1 = xm + (1-θ) h fm +
θ f ( tm + h/2θ , xm + fm h/2θ )
|
|
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
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
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
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
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
|
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,
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
e uma condição para garantir convergência local será
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
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:
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)
|