Buscar

7_EqDif

Prévia do material em texto

Solução numérica de equações diferenciais ordinárias 
 
 Problema de valor inicial (PVI) 
Uma equação diferencial ordinária é uma equação que envolve uma 
função incógnita y e algumas das suas derivadas avaliadas numa variável 
independente t : 
))(,...),(''),('),(,()( )1()( tytytytytfty nn 
Nas ciências aplicadas, utilizam-se equações diferenciais para descrever o 
comportamento dinâmico de sistemas físicos; por exemplo, de circuitos. 
Introdução 
yt
dt
dy
 y é função de t e t é a única variável 
independente. 
Exemplo 
Exemplo 
21)ln( ctcydt
y
dy
dt
y
dy
y
dt
dy
  
.ctct eeey  
:obtemos , Tomando cek 
.)( tkety 
y
dt
dy
Resolva a equação diferencial analiticamente. 
,)ln( cty  uma constante. c
A solução da equação diferencial resulta numa família de curvas que 
dependem da constante k, como pode ser visto na figura abaixo. Uma 
solução particular pode ser obtida a partir das condições iniciais do 
problema. A especificação de uma condição inicial define uma solução 
entre a família de curvas. 
tkety )(
No exemplo anterior, especificando uma condição inicial: 






1)0(y
y
dt
dy
obtemos a solução .)( tety 
Certas equações diferenciais podem ser resolvidas analiticamente, 
como foi o caso no exemplo anterior. No entanto, isto nem sempre é 
possível e então temos que recorrer a um método numérico. 
O teorema seguinte fornece uma condição suficiente para a existência 
de uma única solução de um problema de valor inicial. 
Teorema 
 
Considere o problema de condição inicial: 
].,[,
)(
),()('
bat
ay
ytfty







 
 
 
Seja 
 
e contínua em Se existir L > 0 tal que Lyt
y
f



),(
para qualquer , então o problema tem uma solução única 
para 
  Dyt ,
.],[ bat
   ybtaRytD ,:, 2
f .D
)(ty
O método de Picard aproxima a solução do problema de valores 
iniciais 
],[,
)(
),()('
00
bat
yty
ytfty






 por outra função , recorrendo ao método iterativo 
     ,...2,1,0,,
0
01   idxxyxfyty
t
t
ii
 tyn
)(ty
Método de Picard 
Se forem satisfeitas as condições do teorema anterior então, 
 
quando tende para a solução do problema. 
 
Uma estimativa do erro absoluto da aproximação pode ser obtida 
por: 
)()( 1 tyty nn 
 ty
 tyn
,n  tyn
Exemplo 
 
Considere o problema de valor inicial 
 
 





1)0(
3)('
y
ytty
1. Encontre uma aproximação do problema, utilizando o método de 
Picard. 
2. Indique uma estimativa do erro absoluto da aproximação anterior, em 
 ty3
         ttdxxdxxfdxxyxfyty
ttt
 
2
000
001
2
3
11311,1,
     32
0
2
0
102
2
1
21
2
3
131, tttdxxxxdxxyxfyty
tt






 
     432
0
32
0
203
8
1
3
2
21
2
1
2131, ttttdxxxxxdxxyxfyty
tt






 
.1t
 
O erro em pode ser estimado por 
    .291666667.05.479166667.411 23  yy
1t
Os métodos numéricos seguintes não determinam a expressão literal da 
solução y(t) do problema de valor inicial (PVI) , mas sim uma solução 
aproximada num conjunto discreto de pontos. 
 
Nos problemas das ciências aplicadas, estuda-se o comportamento 
dinâmico de determinadas variáveis, portanto necessita-se da evolução 
das variáveis em função da variável independente. A partir dos dados 
numéricos é possível gerar um esboço do gráfico da função incógnita. 
Considere a EDO de primeira ordem com condição inicial : 
 
];,[,
)(
),('
00
bat
yty
ytfty






Métodos de passo simples 
 
• métodos da série de Taylor 
• métodos de Runge-Kutta 
 
 
y 
t 
y(t1) 
t0 = a t1 t2 t3 tn = b 
y(t3) 
y(tn) 
y(t0) = y0 
São métodos que determinam aproximações para a solução exacta 
 em chamados pontos da malha. 
Consideremos equidistantes, 
 
sendo n o número de subintervalos de [a,b]; 
 chama-se o passo da malha. 
nyyy ,...,, 21
)(,,...)(),( 21 ntytyty
bttta n  ...10
,
n
ab
h

 .,...,1,0 niihtti 
h
y(t2) 
 ,,,...,, 21 battt n 
Métodos da série de Taylor 
 
 
Suponhamos que tem derivadas contínuas ate à ordem no 
intervalo Para cada a série de Taylor de 
em torno de é : 
)(
)!1(
)(
)(
!
)(
)("
!2
)(
)(')()()( )1(
1
1)(1
2
1
11 i
k
k
ii
i
k
k
ii
i
ii
iiiii y
k
tt
ty
k
tt
ty
tt
tytttyty 









 
 . , com 1 iii tt
Assim, desprezando o último termo do membro direito, 
!
)(
)(
!2
)("
)()(')()()(
)(
1
2
111
k
ty
tt
ty
tttytttyty i
k
k
ii
i
iiiiiii   
y
 1ity .,ba
1k
,1,...,1,0  ni
itt 
e, como satisfaz a equação diferencial (*) e 
podemos escrever 
)(ty
      .)(,
!
)(,'
!2
)(,)()( 1
2
1 ii
k
k
iiiiii tytf
k
h
tytf
h
tythftyty   
,1 ii tth  
).1,...,1,0(
!
"
!2
')(
);(
)(
2
11
00


 niy
k
h
y
h
hyyyty
tyy
k
i
k
iiiii 
O erro local é dado por: 
 
onde 
)(
)!1(
)()( )1(
1
111 i
k
k
iii y
k
h
ytyte 




Designando 
 
 
 
temos o método de Taylor de ordem k : 
 
 
    ii
kk
i
iii
iii
ytfy
ytfy
ytfy
,
,'
,
1
''
'




 ., 1 iii tt
Se y tem derivadas contínuas até à ordem k+1 no intervalo 
fechado [a,b] que contém os pontos sobre os quais estamos a fazer 
a discretização, então existe 
 
|)(|max )1(
,
tyM k
bat



e 
11
)!1(
|)(|  

 kki Chh
k
M
te
 .,|)(| )1( batMty k 
Assim temos um limite superior para o erro local: 
Um método numérico é dito de ordem se existe uma 
constante tal que 
1|)(|  mi Chte
para i=0,1,…,n, onde depende das derivadas da função que 
define a equação diferencial. 
0m
0C
C
Para aplicar o método da série de Taylor de ordem k : 
)(
2
1
!
''
!2
'
k
i
k
iiii y
k
h
y
h
hyyy  
temos de calcular 
 
.,...,''','','
k
iiii yyyy
Temos 
)('))(,())(,())(,(' tytytftytftytf yt 
onde 
...,1,0),,('
2
),(
2
1  iytf
h
ythfyy iiiiii
     .,' tytfty 
Consideremos o método da série de Taylor de 2ª ordem: 
ou, em notação simplificada, 
ffff yt '
Nota: ,
t
f
ft


 etc. 
A expressão da terceira derivada já nos mostra a dificuldade dos 
cálculos de um método de Taylor de terceira ordem. Observe ainda que 
todos esses cálculos são efetuados para cada i = 1, ..., n. 
Observe que 
),()('' ffffffffffff ytyyyyttytt 
Os métodos que usam o desenvolvimento em série de Taylor de y(t), 
teoricamente fornecem a solução aproximada de qualquer equação 
diferencial. No entanto, do ponto de vista computacional, os métodos 
da série de Taylor de ordem mais elevada são considerados 
inaceitáveis pois, a menos de uma classe restrita de funções f(t,y) 
( f(t,y) = t2 + y2, por exemplo), o cálculo das derivadas totais 
envolvidas é extremamente complicado. 
O método da série de Taylor de ordem k = 1, chama-se método de 
Euler: 
),('1 iiiiii ythfyhyyy 
onde 
)("
2
)(
2
1 y
h
te i 
Exemplo 
Considere o PVI: 
Utilize o método de Euler para aproximar y(0.04) com erro menor 
ou igual a 5×10-4. 
O primeiro passo é encontrar h de modo que: 
.105)("
2
)( 4
2
 y
h
te i
Neste caso, conhecemos a solução analítica do PVI: y(t) = et 
Então 
MyetyM
t


|)("|0408.1|)("|max 04.0
]04.0,0[






1)0(
'
y
yy
donde 
0408.1
10
0408.1
1052
 então ;1052
0408.1
]04.0,0[
2
0408.1
|)(|
34
242
2

 



hh
Ithte
Portanto, .0310.0h
Considerando pontos igualmente espaçados, temos h = 0.04/n, 
onde n é o número de subintervalos de I. Assim, 
.229.1
031.0
04.0
0310.0
04.0
 nnn
n
Portanto, tomando n = 2, h = 0.02. 
Assim, 
04.0
02.0
.1)0()( e0
2
1
000



t
t
yytyt
Agora, 
02.1
)02.01(1)1(
),()(
0
0000011



hy
hyyythfyyty
e 
0404.1
02.1)02.1(02.1
)1(),()(
2
111122


 hyythfyyty
Dado que e0.04 = 1.0408, com quatro casas decimais, temos que o 
erro cometido é 1.0408 – 1.0404 = 4×10-4 < 5×10-4. 
t0 t1 t2 
h h 
A idéia básica destes métodos é aproveitar as qualidades dos 
métodos de Taylor (ordem elevada) e ao mesmo tempo 
eliminar a sua maior dificuldade que é o cálculo das derivadas 
de f(t,y) que, conforme vimos, tornam os métodos de Taylor 
computacionalmente inaceitáveis. 
Métodos de Runge-Kutta 
Os métodos de Runge-Kutta de ordem n caracterizam-se pelas propriedades: 
• são de passo simples (isto é, o valor de pode ser calculdo se apenas é 
conhecido); 
• não exigem o cálculo de derivadas parciais de f(t,y); 
• necessitam apenas do cálculo de f(t,y) em determinados pontos (os quais 
dependem da ordem dos métodos); 
• desenvolvendo a série de Taylor de f(t,y) em torno de (ti ,yi) e agrupando os 
termos em relação às potências de h, a expressão do método de Runge-Kutta 
coincide com a do método de Taylor de mesma ordem. 
1iy iy
Uma formulação genérica para os métodos de Runge-Kutta de ordem m: 
 hythyy iiii ,,1 
com ,...2211 mmkakaka 
onde os ai são constantes e 
)...,(
),,(
),,(
11,122,111,11
11112
1
 


mmmmmimim
ii
ii
hkqhkqhkqyhptfk
hkqyhptfk
ytfk

As constantes ai , qi,j , pi são obtidas de modo que a precisão seja a mesma 
do método de Taylor de ordem m. 
Método de Runge-Kutta de 1ª ordem 
 
 
O método de Euler é um método de Runge-Kutta de ordem 
m=1: 
  ,...2,1,0,,1  iythfyy iiii
Métodos de Runge-Kutta de 2ª ordem 
 
 
Vamos determinar as constantes. 
)),(,(),( 111211 iiiiiiii ythfqyhptfhaytfhayy 
 22111 kakahyy ii 
ou seja, 
O desenvolvimento em série de Taylor da função 
 f(ti + p1h, yi + q11hf(ti , yi )) 
em torno do ponto (ti , yi ) é dado por: 
 ),(),(),(),()),(,( 111111 iiyiiiitiiiiii ytfythfqythfpytfythfqyhptf termos de h
2. 
 )],(),(),(),([),( 111211 iiyiiiitiiiiii ytfythfqythfpytfhaythfayy termos de h
3. 
Desta forma, o método de Runge-Kutta pode ser reescrito na forma: 
)),(,(),( 111211 iiiiiiii ythfqyhptfhaytfhayy 
 )],(),(),(),([),( 111211 iiyiiiitiiiiii ytfythfqythfpytfhaythfayy
+ termos de h3. 
A expressão: 
pode ser escrita na forma 
 ),(),(),(),(),(
2
112
2
12211 iiyiiiitiiiiii ytfytfhqaytfhpaythfaythfayy
 )],(),(),([))(,( 11212
2
211 iiyiiiitiiii ytfytfqaytfpahaaythfyy
+ termos de h3. 
+ termos de h3. 
Como o método de série de Taylor de 2ª ordem é dado por: 
e o método de Runge-Kutta de 2ª ordem é dado por: 
 )],(),(),([))(,( 2212
2
211 iiyiiiitiiii ytfytfbaytfbahaaytfhyy
Então, a concordância dos dois métodos até h2 é obtida se: 
+ termos de h3. 
)],(),(),([
2
1
),( 21 iiiiyiitiiii ytfytfytthytfhyy  + termos de h3, 








2
1
22
2
1
12
21 1
ba
ba
aa
...,1,0, i
...,1,0i
 211
2
kk
h
yy ii 
onde 
 
 12
1
,
,
hkyhtfk
ytfk
ii
ii


Dando um valor a a2 , por exemplo, 1/2 obtemos a seguinte fórmula : 
Métods de Runge-Kutta de ordens superiores 
De forma análoga, podemos construir métodos de Runge-Kutta de 3ª 
ordem, 4ª ordem, etc. 
A seguir apresentamos as fórmulas para os métodos de Runge-Kutta de 
3ª e 4ª ordem: 
3211
9
4
3
1
9
2
kkkyy ii 
Runge-Kutta de 3ª ordem 
onde 
)
4
3
,
4
3
(
)
2
,
2
(
),(
23
1
2
1
kyhthfk
k
y
h
thfk
ythfk
ii
ii
ii



Runge-Kutta de 4ª ordem 
onde 
)22(
6
1
43211 kkkkyy ii 
),(
)
2
,
2
(
)
2
,
2
(
),(
34
2
3
1
2
1
kyhthfk
k
y
h
thfk
k
y
h
thfk
ythfk
ii
ii
ii
ii




Observação 
Os métodos de Runge-Kutta, apesar de serem auto-iniciáveis e 
não dependerem das derivadas de f(t,y), apresentam a 
desvantagem de não conhecermos para eles uma estimativa 
simples para o erro, o que poderia ajudar na escolha do passo h.

Continue navegando