Começamos por relembrar o caso mais simples de uma equação diferencial ordinária,
y(t) = | ó
õ |
t
0 |
f(s)ds + C |
De forma semelhante, quando temos um caso mais geral em que
ì
í î |
y'(t) = f( t, y(t) )
y(t0) = y0 |
y(t) = y0 + | ó
õ |
t
t0 |
f( s, y(s) )ds |
Para certas funções f particulares, como a função linear
y(t) = y0 eA(t) + eA(t) | ó
õ |
t
t0 |
b(s) e-A(s) ds , |
Para um f geral, a fórmula explícita
já não é possível, e apenas podemos considerar
métodos numéricos. Mesmo no caso em que temos fórmula
explícita, o cálculo dos integrais poderá também
apenas ser efectuado numericamente.
Antes de estudar os métodos numéricos,
convém relembrar em que condições podemos obter uma
solução única.
Observação:
A condição (ii) pode ser facilmente verificada se
mostrarmos que,
num conjunto limitado D, a derivada ¶f
/ ¶y existe e é contínua.
Trata-se da equação diferencial y'(t) = 2Öy(t) . Esta equação diferencial apresenta várias funções C1
yp(t) = | ì
í î |
(t - p)2, se t > p
0 , se t < p |
Métodos de Taylor
Consideramos um primeiro esquema numérico, muito simples e que consiste em efectuar uma truncatura da expansão da série de Taylor e substituir a derivada pela expressão explícita dada na equação diferencial ordinária. As derivadas seguintes são obtidas efectuando a derivação sucessiva do segundo membro.
Método de Euler
Assim, definindo um valor h>0 e pontos igualmente espaçados
tm=
t0+ mh, obtemos
Portanto, da expressão truncada, y(tm+1)
= y( tm ) + f( tm, y(tm) ) h,
definindo ym= y(tm),
e partindo do valor y0= y(t0), obtemos o
Método de Euler : ym+1 = ym + f( tm , ym ) h , |
Erro do método de Euler
Usando o erro de truncatura, reparamos que
|em| < Km|e0| + | Km-1
K-1 |
B h2 / 2 . |
|em| < emLh|e0| + | emLh-1
Lh |
B h2 / 2 , |
|em| < exp((tm-t0)L)|e0| + | exp((tm-t0)L) -1
2 L |
B h , |
o que torna claro que quando e0=0 (erro inicial nulo), temos em= O(h), e põe em evidência a forma como o erro tende para zero quando h converge para zero.
Observação:
Pela estimativa de erro, podemos também
verificar que quando o erro inicial não é nulo, esse erro
pode propagar-se de maneira significativa já que aparece multiplicado
por uma exponencial. Pode assim ocorrer um problema de estabilidade, para
valores tm-t0 grandes, e que pode ocorrer
mesmo com simples erros de arredondamento.
Com efeito, se considerarmos simplesmente y'(x) = c y(x), cuja solução é uma exponencial, teremos
Método de Euler implícito
É assim conveniente encontrar outros métodos para os
quais não se verifique o problema de instabilidade. Uma solução
possível são os métodos implícitos, por exemplo,
Método de Euler implícito : ym+1 = ym + f( tm+1 , ym+1 ) h , |
Outros métodos de Taylor
O método de Euler é o caso mais
simples de uma aproximação feita pela expansão em
série de Taylor.
Efectuando a derivada total em ordem a t
de f( t, y(t) ) = y'(t) podemos obter a segunda derivada de y.
Por exemplo, sendo y'(t) = f( t, y(t) ) =
t2y(t), reparamos que
Generalização do método de Euler a sistemas de EDO's
Da mesma forma que considerámos o problema de Cauchy definido para uma função com valores reais, podemos considerar uma incógnita y que é uma função com valores vectoriais, tendo-se
ì
í î |
y'(t) = F( t, y(t)
)
y(t0) = y(0) |
y(m+1) = y(m) + F( tm , y(m) ) h . |
Exemplo:
Como exemplo apresentamos o caso de uma equação diferencial
de ordem 2,
u''(t) + u'(t)2 u(t) = t2u(t)2,
com condições iniciais u(2) = 3, u'(2) = -4.
Definindo y1(t) = u(t), y2(t) = u'(t),
obtemos as 2 equações de ordem 1,
y1'(t) = y2(t),
y2'(t) = t2 y1(t)2 -
y2(t)2 y1(t),
podendo definir o problema de Cauchy vectorial,
ì
í î |
(y1'(t), y2'(t))
= ( y2(t) , t2
y1(t)2 - y2(t)2
y1(t)
)
(y1(2), y2(2)) = ( 3, -4 ) |
ì
ï î |
y1(m+1) = y1(m) + y2(m)h
y2(m+1) = y2(m) + ( tm2 (y1(m))2 - (y2(m))2 y1(m) )h |
Generalidades sobre os métodos numéricos
Consideramos a equação diferencial y'(t)
= f( t, y(t) )
aproximada por um esquema do tipo ym+1
= ym + f( tm ,
ym ; h ) h
(no caso do método de Euler, f(
tm , ym ; h )= f( tm , ym )
)
Há três aspectos a ter em conta quando analisamos um esquema
numérico
(i) Consistência, (ii) Convergência, (iii)
Estabilidade.
(i) Consistência.
A consistência diz respeito à aproximação
efectuada pela discretização local da equação
diferencial.
Assim, definimos o erro de discretização local
E(h) = y'(tm) - (ym+1
- ym)/h = f( tm , y(tm) ) - f(
tm , ym ; h )
e dizemos que o esquema é consistente se E(h) ®
0, quando h ® 0,
e que tem ordem de consistência p se E(h) =
O(h p).
No caso do método de Euler, como E(h) = y''(
xm
)h /2 é um O(h) quando y'' é limitada,
concluímos que se trata de um esquema
com ordem de consistência 1.
(ii) Convergência.
A convergência é verificada quando temos
e(h) = maxm=0,...,M
|em| = maxm=0,...,M |y'(tm)
- ym | ® 0
e dizemos que tem convergência de ordem
p
se e(h) = O(h p).
(iii) Estabilidade.
A estabilidade está relacionada com a propagação
de erros de arredondamento, nos passos intermédios, e pode ser grave
no caso de métodos multipasso. Por vezes também é
utilizada a designação de estabilidade para o próprio
condicionamento, ou seja, no que diz respeito à influência
face aos erros iniciais.
Teorema: Um esquema estável que tiver ordem de consistência
p
então também terá ordem de convergência
p.
Demonstração: exercício... repetir os passos
da demonstração do erro do método de Euler.
Observação: Este teorema mostra que, desprezando o erro inicial, basta verificar a ordem de consistência do método para assegurar a mesma ordem de convergência. O recíproco é também válido. No caso de métodos unipasso a estabilidade é verificada mediante a hipótese da função ser Lipschitziana.
Métodos de Runge-Kutta
Consideramos uma aproximação baseada nos métodos
de Taylor, mas em que não é necessário calcular explicitamente
as derivadas de f, sendo subsituída pelo desenvolvimento
em série de Taylor, com duas variáveis.
Por exemplo, consideramos
-- Escolhendo a = h/2, b = f(t,y)h/2, ficamos com
Método do ponto-médio (RK ordem 2):
ym+1 = ym + f(tm+h/2 , ym+fmh/2) h , com fm = f(tm,ym) |
Podemos ainda considerar outro tipo de métodos, deduzindo uma
fórmula mais geral,
já que, de forma semelhante, podemos deduzir,
Af(x, y)h+Bf(x+a,
y+b)h = (A+B)f(x, y)h + B (a¶1
f(x,
y)h + b¶2
f(x,
y))h + O(ab)h
y'(t)h+ y''(t)h2/2
= f(t, y)h + (¶1
f(t,
y) + f(t,y) ¶2
f(t,
y) )h2/2
ficando com as equações, A+B =1 , aB=h/2,
bB=f(t,y)h/2
-- Escolhendo A=B=1/2, a=h,
b=hf(t,y)
Método de Euler modificado (RK ordem 2):
ym+1 = ym + fmh/2+ f(tm+h, ym+fmh) h/2 , |
-- Escolhendo A=1/4, B=3/4, a=2h/3, b= 2hf(t,y)/3 temos
ym+1 = ym + fmh/4 + 3f(tm+2h/3, ym+2fmh/3) h/4 . |
Métodos de Runge-Kutta
de ordem superior
Por um processo semelhante, mas com cálculos exaustivos, é
possível obter outros métodos RK de ordem superior.
Enunciamos apenas o mais popular, o método de Runge-Kutta de
ordem 4,
Método de Runge-Kutta de ordem 4:
ym+1 = ym + (A1+2A2+2A3+A4) /6 , com A1= fmh, A2= f(tm+h/2, ym+ A1/2) h , A3= f(tm+h/2, ym+ A2 /2) h, A4= f(tm+h, ym+ A3) h |
Observação: Tal como no caso do método de Euler, estes métodos podem ser imediatamente adaptados para sistemas de equações diferenciais ordinárias, usando a notação vectorial.
Relembramos o método de Euler implícito,
cujo valor de ym+1deve
ser encontrado resolvendo a equação não linear em
z,
z = ym +
f( tm+1, z )
h.
Para esse efeito, podemos definir o processo iterativo do ponto fixo
zk+1
= ym + f( tm+1,
zk ) h = g( zk )
que converge para h pequeno, porque se
|¶2
f(t,
y)| < L, o que acontece normalmente
para funções regulares (e o que
implica que é Lipschitziana), porque
|g'(x)| = |¶2
f(t,
x)h| < Lh < 1, desde que h seja suficientemente
pequeno.
Assim, a função g é
contractiva e temos convergência local do método do ponto
fixo.
Note-se que se começarmos com z0
=ym, obtemos z1
= ym + f( tm+1,
ym ) h,
o que está próximo do valor ym
+ fm h, e
que pode ser visto como a aproximação
de ym+1 usando
o método de Euler explícito.
Método dos trapézios
Uma outra possibilidade é usar a relação
y(tm+1) = y(tm) + | ó
õ |
tm+1
tm |
f( s, y(s) )ds |
ym+1 = ym + (f( tm , ym)+f( tm+1, ym+1))h/2 |
ym+1 = ym + (f( tm , ym)+f( tm+1, ym+hfm)) h/2 |
Reparamos que até aqui, procurámos apenas usar a informação
da última iterada, designando-se estes métodos por unipasso.
Mas é claro que uma melhor aproximação poderá
ser obtida considerando outros valores já calculados, tratam-se
dos métodos multipasso.
Os mais conhecidos são os métodos de Adams.
Métodos de Adams-Bashforth
Consideramos ainda a fórmula
y(tm+1) = y(tm) + | ó
õ |
tm+1
tm |
f( s, y(s) )ds |
Q( f ) = (-f(tm-1)+3f(tm))h / 2, pelo que obtemos
ym+1 = ym + ( - f( tm-1 , ym-1)+3f( tm , ym)) h/2 |
Nota: Para obter esta estimativa de erro deverá considerar-se um processo semelhante ao utilizado para demonstrar o erro de integração, usando o teorema do valor intermédio para integrais.
Usando mais pontos anteriores, tm-2
, tm-3 , etc. obtemos fórmulas de maior grau.
Métodos de Adams-Moulton
A única diferença face aos anteriores, é considerar
também tm+1
como nó de integração.
É claro que nesse caso tratar-se-à de uma fórmula
implícita.
Por exemplo, efectuando cálculos semelhantes, iremos obter como
primeira aproximação a
regra dos trapézios implícita, que já vimos e
sabemos ter erro -y'''(c)h3/12
Métodos predictor-corrector de Adams
Basta considerar uma fórmula implícita com aproximação
inicial de ym+1
dada pela fórmula explícita.
Assim, por exemplo,
ym+1 = ym + (fm +f( tm+1 , ym + (3fm - fm-1) h/2)) |
Consideramos o caso da equação diferencial ordinária
de 2ª ordem
y''(t)=y(t), com condições iniciais y(0)=0,
y'(0)=1,
cuja solução é y(t)=sin(t).
Na figura seguinte mostramos a diferença entre a aproximação
obtida
com o método de Euler (de 1ªordem), o método de
Euler modificado
(método de Runge-Kutta de ordem 2) e com um método de
Runge-Kutta
de ordem 4, já apresentado. Considerámos 20 pontos no
intervalo [0, 9],
e podemos constatar que a aproximação obtida por Euler
não é adequada, sendo
necessária um passo h muito mais pequeno para que a aproximação
seja razoável.
No caso do método RK de ordem 2, a aproximação
é melhor, mas apenas com
o método RK de ordem 4 obtemos uma aproximação
excelente.