Escolar Documentos
Profissional Documentos
Cultura Documentos
html
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.
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 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) = ∞ x(k)(0) tk/k! = ∞ x(0)k+1 tk = a ∞ (a t)k = a
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 1/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
∑ ∑ ∑ 1−at
k=0 k=0 k=0
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])
Há dois casos de EDO's que podem ser tratados como problemas de integração:
(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
a
-x(t)-1 + a-1 = t − 0 ⇒ x(t) =
1−at
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)
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)
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 2/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
x1'(t) = x2(t)
⋮
xp-2'(t) = xp-1(t)
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,
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 3/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
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).
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.
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
Podemos escrever os métodos de Taylor de ordem 2 na forma
xm+1 = xm + h Φm ,
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 4/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
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).
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;
Iremos assumir que tal como f, a função Φ é também contínua e Lipschitziana na 2ª variável.
Ordem de Consistência
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.
Estabilidade e Convergência
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.
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 6/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
Corolário:
No Método de Euler, temos a estimativa
exp(L(T-t0)) − 1
|eN| ≤ C h + exp(L(T-t0))|e0|
LΦ
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.
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 7/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
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.
Para contornar este tipo de problema consideram-se métodos implícitos.
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
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.
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
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 9/10
23/05/2022 17:34 https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html
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.
[Capítulo 1]
[Capítulo 2]
[Capítulo 3]
[Capítulo 4]
[Capítulo 5]
https://www.math.tecnico.ulisboa.pt/~calves/MC/cap5.html 10/10