EQUAÇÃO DIFERENCIAL ORDINÁRIA
PROBLEMA DE VALOR INICIAL
c a y y
x dx f
dy ( , ) , cond. inicial : ( )
Geralmente a variável x representa o tempo e a equação diferencial
representa a lei da natureza que descreve a taxa de variação de uma grandeza Exemplo: A taxa de crescimento de uma população é proporcional à população:
habitantes de
numero
:
, N
dt KN dN
É comum uma situação ser descrito por um sistema de equações diferenciais s
i y
y y x dx f
dy
s i
i
( ,
1,
2, , ) , 1 , 2 , ,
Em notação vetorial: y f y y c
( x , ) , ( a ) dx
d
Equações diferenciais de ordem superior podem ser escritas como um sistema de equações diferenciais de primeira ordem
3 3
3 2 3 1
2 2
2 3
1 1
1 2
2 2 3 2
1
3 2
2 1 2 3
3
) 0 ( , ) , , , (
) 0 ( ,
) 0 ( ,
, ,
) 0 ( , ) 0 ( , ) 0 ( : iniciais cond.
, ,
, ,
x dx g
d dx d
dx d
dx y d dx
y dy
y y
dx y y d dx y dy x dx g
y
d
MÉTODO DE EULER
Método de Passo a Passo Explícito: O valor da função no instante k+1 é calculado somente em função do valor da função no instante k
Também conhecido como Método da Tangente
Solução numérica: A função y(x) não será obtida para todos os valores de x
Definir pontos x
ionde a função y(x) será calculada: Malha
x y
x
0x
1x
2x
3x
4y
1y
0y
2Série de Taylor de y(x) em x
k:
) , (
) 2 (
) ( )
( ) (
1
2 1
k k k
k
k k
k k
y x f h y y
x h y
x y h x y x
y
Exemplo:
1 ) 0 (
;
:
Resolver y y
dx
dy Solução exata: y ( x ) e
xMétodo de Euler: y
k1 y
k h f ( x , y ) y
k1 y
k h y
kx
ky(x
k) y
kErro
0.0 1.000 1.000 0.000
0.2 1.221 1.200 -0.021 0.4 1.492 1.440 -0.052 0.6 1.822 1.728 -0.094
h = 0.2
x
ky(x
k) y
kErro
0.0 1.000 1.000 0.000
0.1 1.105 1.100 -0.005 0.2 1.221 1.210 -0.011 0.3 1.350 1.331 -0.019 0.4 1.492 1.464 -0.028 0.5 1.649 1.610 -0.039 0.6 1.822 1.771 -0.051
h = 0.1
A solução apresenta erros.
Aparentemente o erro é proporcional ao passo h
Dois tipos de Erros: Erro de Truncamento (Discretização) Erro de Arredondamento
Erro de Truncamento (Discretização) E ( h , x
k) y
k y ( x
k) Erro que surge devido à aproximação da curva y(x)
por uma reta no intervalo h Propagação do erro: Solução numérica tende a aproximar a
solução exata que passa por (x
k,y
k)
Erro pode ser decrescido diminuindo-se o passo h x y
Família de curvas
Aumento do número de intervalos leva a um
aumento do número de cálculos necessários e consequentemente um aumento do tempo computacional e dos erros de arredondamento
n 1 h Erro
Truncamento Total
Arredondamento
Existe um tamanho de passo ótimo para produzir o erro mínimo
Análise do Erro de Truncamento para o Método de Euler )
( )
,
( h x
ky
ky x
kE
ERRO GLOBAL
ERRO LOCAL: Diferença entre o valor y
ke o valor da solução exata
que passa pelo ponto (x
k-1, y
k-1)
x y
Erro local
) , ( x
k1y
k1Erro global
Deseja-se obter uma estimativa do erro e saber se o erro cresce ou não
x y
) , ( x
0y
0)) ( , ( x
1y x
1) , ( x
1y
1)) ( , ( x
2y x
20
Se
y f
( , )1
( , )
) , (
k k y x y
k k k
k
y h f x y
y y
x dx f
dy
FAMÍLIA DE CURVAS DIGERVE
)) ( , ( ) ,
( x
1y
1y x
1y x
1y
ERRO AUMENTA EXPONENCIALMENTE
x y
) , ( x
0y
0)) ( , ( x
1y x
1) , ( x
1y
1)) ( , ( x
2y x
20
Se
y f
FAMÍLIA DE CURVAS DIGERVE
)) ( , ( ) ,
( x
1y
1y x
1y x
1y
ERRO LOCAL COMPENSA
ERRO DA DISCRETIZAÇÃO
SE O ERRO LOCAL EM TODOS OS PONTOS FOR MENOR DO QUE
O ERRO GLOBAL SATISFAZ A SEGUINTE CONDIÇÃO:
Lh x e
y y
Lh
y L f
e x e
y y
Lnh n
n
x x Lh x
Lnh n
n
n
) 1 (
: pequeno for
Se
max
onde 1 ; ) 1
(
0
Erro pode crescer exponencialmente se L > 0
Erro pode ficar em uma faixa aceitável se h for muito pequeno
Análise do Estabilidade
ESTÁVEL: Produz solução limitada
INSTÁVEL: Produz solução que tente ao infinito )
(
O Método de Euler é condicionalmente estável dx y
dy
: Exemplo
Solução exata:
Solução pelo método de Euler:
e
xy x
y ( )
0 n n
n n
n
y h y y y h
y
1
1
0( 1 )
Observe que, por serie de Taylor: 2
) 1 (
h
2h
e
h
A solução pelo método de Euler produz os dois primeiros termos da serie de Taylor
0
Para Solução exata decai com x
Solução aproximada pode crescer com x se 1 h 1
: ) 1 ( 2
Para y
0
Para <0, o Método de Euler só é estável para
2
h
Metodo de Euler:
-2.0000
h = h = h =
0.2000 0.4000 1.0000
Xk Exata Yk Yk Yk
0.00 1.0000 1.0000 1.0000 1.0000
0.20 0.6703 0.6000
0.40 0.4493 0.3600 0.2000
0.60 0.3012 0.2160
0.80 0.2019 0.1296 0.0400
1.00 0.1353 0.0778 -1.0000
1.20 0.0907 0.0467 0.0080
1.40 0.0608 0.0280
1.60 0.0408 0.0168 0.0016
1.80 0.0273 0.0101
2.00 0.0183 0.0060 0.0003 1.0000
2.20 0.0123 0.0036
2.40 0.0082 0.0022 0.0001
2.60 0.0055 0.0013
2.80 0.0037 0.0008 0.0000
3.00 0.0025 0.0005 -1.0000
3.20 0.0017 0.0003 0.0000
3.40 0.0011 0.0002
3.60 0.0007 0.0001 0.0000
3.80 0.0005 0.0001
4.00 0.0003 0.0000 0.0000 1.0000
4.20 0.0002 0.0000
4.40 0.0002 0.0000 0.0000
4.60 0.0001 0.0000
4.80 0.0001 0.0000 0.0000
5.00 0.0000 0.0000 -1.0000
-1.5000 -1.0000 -0.5000 0.0000 0.5000 1.0000 1.5000
0.00 1.00 2.00 3.00 4.00 5.00
Exata h=0.2 h=0.4 h=1.0
Microsoft Excel Worksheet
1 ) 0 ( ,
problema o
Resolver y y y
Comparar a solução exata com a obtida pelo método de Euler com h = 0.1, h = 0.5, h = 1.5 e h = 2.
Metodo de Euler: -1.0000
h=0.1 h=0.5 h=1.5
0.00 1.0000 1.0000 1.0000 1.0000
0.10 0.9048 0.9000
0.20 0.8187 0.8100
0.30 0.7408 0.7290
0.40 0.6703 0.6561
0.50 0.6065 0.5905 0.5000
0.60 0.5488 0.5314
0.70 0.4966 0.4783
0.80 0.4493 0.4305
0.90 0.4066 0.3874
1.00 0.3679 0.3487 0.2500
1.10 0.3329 0.3138
1.20 0.3012 0.2824
1.30 0.2725 0.2542
1.40 0.2466 0.2288
1.50 0.2231 0.2059 0.1250 -0.5000
1.60 0.2019 0.1853
1.70 0.1827 0.1668
1.80 0.1653 0.1501
1.90 0.1496 0.1351
2.00 0.1353 0.1216 0.0625
2.10 0.1225 0.1094
2.20 0.1108 0.0985
2.30 0.1003 0.0886
2.40 0.0907 0.0798
2.50 0.0821 0.0718 0.0313
2.60 0.0743 0.0646
2.70 0.0672 0.0581
2.80 0.0608 0.0523
2.90 0.0550 0.0471
3.00 0.0498 0.0424 0.0156 0.2500
3.10 0.0450 0.0382
3.20 0.0408 0.0343
3.30 0.0369 0.0309
3.40 0.0334 0.0278
3.50 0.0302 0.0250 0.0078
3.60 0.0273 0.0225
3.70 0.0247 0.0203
3.80 0.0224 0.0182
3.90 0.0202 0.0164
4.00 0.0183 0.0148 0.0039
-0.6000 -0.4000 -0.2000 0.0000 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000
0.00 1.00 2.00 3.00 4.00 5.00
exata h=0.1 h=0.5 h=1.5
Microsoft Excel Worksheet
MÉTODO DE EULER DE ORDEM ELEVADA
) , 2 (
) , ( )
( ) (
) , ( )
( Onde
) 2 (
) ( )
( ) (
2 1
2 1
k k k
k k
k
k
k k
k k
y x y f f x f y h
x f h x y x
y
dx dy y f x y f x dx f y d dx x d
y
x h y
x y h x y x
y
1 )
( : Exata Sol.
2 ) 0 ( ,
:
Resolver y x y y x e x
dx
dy
xUsar método de Euler de segunda ordem com h = 0.1
MÉTODO DE RUNGE-KUTTA
Método de Passo a Passo Explícito: O valor da função no instante k+1 é calculado somente em função do valor da função no instante k
O coeficiente que multiplica o passo h no cálculo da função no instante k+1 é calculado de forma que a expansão coincida com o desenvolvimento em série de Taylor até os termos de ordem N (ordem do método)
Derivação para Runge-Kutta de segunda ordem:
) ,
( Aprox.
) 2 ( ) (
: ordem) (2
Taylor de
Serie
) , ( c.i.
, ) , (
2 1
2 1
1
2 1
a
0 0
k k
k k
k k
k k
k k
k
F h y
h x
F h F
h y
y
dx dy y F x
F F h
h x y x
y
y x y
x dx F
dy
()
As constantes são determinadas de tal forma que as
expressões anteriores coincidam
2 1 2 1
, , ,
Por série de Taylor:
y
F F x
h F F
h y
y
y F F x h
h F y
x F F h y
h x
F
k k k
k k
k
k k k
k k k
k k
2 2 1
2 2
1 1
2 1
2
1
, ) ( , )
(
A solução aproximada fica:
()
Comparando com
1
e 2 1 2
; 1 2
; 1
1
2 1 2 2 1 2 1 22
1
( , )
) ,
; ( 2
2
2 12 1
1 1
f F x h y hf
y x F f f
h f y y
k k
k k k
k
RUNGE KUTTA DE QUARTA ORDEM
3
4
2 3
1 2
1
4 3 2 1 1
, , 2 2
, 2 2
) , (
6 3 3 6
hf y h x F f
h f h y
x F f
h f h y
x F f
y x F f
f f f h f
y y
k k
k k
k k
k k k k
Método de Runge-Kutta mais utilizado
Boa combinação entre precisão e simplicidade de programação
) 5 . 0 ordem, quarta
Kutta - (Runge
1 ) 0 ( ,
problema o
Resolver y y y h
3 0
4
2 0
3
1 0
2 0 1
4 3 2 1 0
1
5 . 0
2 5 . 0
2 5 . 0
2 6 2
5 . 0 ) , (
f y
f
f y
f
f y
f y f
f f f f y
y
y y x F
Metodo de Runge-Kutta (4 ordem):
h = 0.5000
f1 f2 f3 f4 y - approx
0.00 1.0000 1.0000
0.50 0.6065 -1.0000 -0.7500 -0.8125 -0.5938 0.6068
1.00 0.3679 -0.6068 -0.4551 -0.4930 -0.3603 0.3682
1.50 0.2231 -0.3682 -0.2761 -0.2991 -0.2186 0.2234
2.00 0.1353 -0.2234 -0.1675 -0.1815 -0.1326 0.1355
2.50 0.0821 -0.1355 -0.1017 -0.1101 -0.0805 0.0822
3.00 0.0498 -0.0822 -0.0617 -0.0668 -0.0488 0.0499
3.50 0.0302 -0.0499 -0.0374 -0.0405 -0.0296 0.0303
4.00 0.0183 -0.0303 -0.0227 -0.0246 -0.0180 0.0184
4.50 0.0111 -0.0184 -0.0138 -0.0149 -0.0109 0.0111
5.00 0.0067 -0.0111 -0.0084 -0.0091 -0.0066 0.0068
5.50 0.0041 -0.0068 -0.0051 -0.0055 -0.0040 0.0041
6.00 0.0025 -0.0041 -0.0031 -0.0033 -0.0024 0.0025
6.50 0.0015 -0.0025 -0.0019 -0.0020 -0.0015 0.0015
7.00 0.0009 -0.0015 -0.0011 -0.0012 -0.0009 0.0009
7.50 0.0006 -0.0009 -0.0007 -0.0007 -0.0005 0.0006
8.00 0.0003 -0.0006 -0.0004 -0.0005 -0.0003 0.0003
8.50 0.0002 -0.0003 -0.0003 -0.0003 -0.0002 0.0002
9.00 0.0001 -0.0002 -0.0002 -0.0002 -0.0001 0.0001
9.50 0.0001 -0.0001 -0.0001 -0.0001 -0.0001 0.0001
10.00 0.0000 -0.0001 -0.0001 -0.0001 0.0000 0.0000
5 . 1 ordem, quarta
Kutta -
Runge h
Metodo de Runge-Kutta (4 ordem):
h = 1.5000
f1 f2 f3 f4 RK EULER
0.00 1.0000 1.0000 1.0000
1.50 0.2231 -1.0000 -0.2500 -0.8125 0.2188 0.2734 -0.5000
3.00 0.0498 -0.2734 -0.0684 -0.2222 0.0598 0.0748 0.2500
4.50 0.0111 -0.0748 -0.0187 -0.0607 0.0164 0.0204 -0.1250
6.00 0.0025 -0.0204 -0.0051 -0.0166 0.0045 0.0056 0.0625
7.50 0.0006 -0.0056 -0.0014 -0.0045 0.0012 0.0015 -0.0313
9.00 0.0001 -0.0015 -0.0004 -0.0012 0.0003 0.0004 0.0156
10.50 0.0000 -0.0004 -0.0001 -0.0003 0.0001 0.0001 -0.0078
-0.6000 -0.4000 -0.2000 0.0000 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000
0.00 2.00 4.00 6.00 8.00 10.00 12.00 Exata RK Euler
Exercício
Escreva uma rotina MatLab para solução de um problema de valor inicial usando os métodos de Euler explícito de primeira ordem e Runge-Kutta de quarta ordem.
Utilize a rotina desenvolvida para resolver o problema:
Determine o valor de para diferentes passos de tempo.
RUNGE KUTTA PARA SISTEMA DE EDOS
3 3
4
2 2
3
1 1
2 1
4 3 2 1 1
0 0
, ,
, 2 , 2
2
, 2 , 2
2 , ,
2 6 2
) (
; ) , , (
) (
; ) , , (
hg z hf y h x F f
h g z h f h y
x F f
h g z h f h y
x F f
z y x F f
f f f h f
y y
B x z z y x dx G dz
A x y z y x dx F dy
k k
k
k k
k
k k
k k k k k k
3 3
4
2 2
3
1 1
2 1
4 3 2 1 1
, ,
, 2 , 2
2
, 2 , 2
2 , ,
2 6 2
hg z hf y h x G g
h g z h f h y
x G g
h g z h f h y
x G g
z y x G g
g g g h g
z z
k k
k
k k
k
k k
k k k k k k
Exercício
As equações de Lotka-Volterra descrevem a evolução da população de um sistema predador-presa, onde x e y são os números de presas e predadores, a é a taxa de crescimento da presa, c é a taxa de morte do predador e b e d são taxas caracterizando o efeito da interação predador-presa na morte da presa e no crescimento do predador, respectivamente.
a) Determine a evolução da população no intervalo 0 < t < 30 utilizando o método de RK-4ª ordem. Compare os resultados em termos do valor de passo de tempo necessário para obter a solução do problema. Utilize os seguintes dados:
dxy dt cy
dy
bxy dt ax
dx
1 ) 0 (
2 ) 0 (
4 , 0
8 , 0
6 , 0
2 , 1
t y
t x d c b
a b) Construa o gráfico da população da presa em função da população do predador. Comente o resultado obtido.
c) O que acontece quando ? ( ( 0 0 ) ) 2 2
t y
t
x
MÉTODOS IMPLÍCITOS
Nos métodos vistos até agora, o valor da função no instante k+1
é calculado somente em função de informações no instante k.
Como visto anteriormente, os métodos explícitos somente são estáveis como o tamanho do passo muito pequeno.
x y
x
0x
1x
2y
1y
2) , (
) , (
) 2 (
) ( )
( ) (
1 1 1
1 1 1
1 2
1 1
1
k k k
k
k k k
k
k k
k x
k
y x f h y y
y x f h y
y
x h y
x y h x
y h x
y
h x
k
Série de Taylor para trás ao redor de x
k+1:
Lado direito da equação não é conhecido !!
MÉTODO DE EULER IMPLÍCITO
1 ) 0 ( ,
problema o
Resolver y y y
) 1 (
) (
) , ( )
, (
1
1 1
1 1 1
h y y
y h y y
y x f h y y
y y
x F
k k
k k
k k
k k
k
Metodo de Euler Implicito
-1.0000
h=1.5 (EXP) h=0.5 (IMP)
0.00 1.0000 1.0000 1.0000
0.50 0.6065
1.00 0.3679
1.50 0.2231 -0.5000 0.4000
2.00 0.1353
2.50 0.0821
3.00 0.0498 0.2500 0.1600
3.50 0.0302
4.00 0.0183
4.50 0.0111 -0.1250 0.0640
-0.6000 -0.4000 -0.2000 0.0000 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000
0.00 1.00 2.00 3.00 4.00 5.00
Exata Euler Explicito Euler Implicito
Em casos simples, a equação pode ser facilmente rearrumada para determinar a função no passo k+1 Se F(x,y) for uma função não linear, a função no passo k+1
será calculada através da solução de uma equação não linear (pelo Método de Newton, por exemplo).
O método de Euler Implícito é incondicionalmente estável
1 ) 0 ( ,
problema o
Resolver y y
xy
k x
k k
x k k
k k
k k
k
x
y y
h y
y h y y
y x f h y y
y y x F
k
k
1
1
1 1
1 1
1 1
1
( , )
) , (
O valor de y
k+1não pode ser explicitada em função de y
kPara cada passo, deve-se determinar a raiz da equação não linear conhecidos
, ,
;
0 a b c
c ay y
b
Cálculo pelo Método de Newton, por exemplo
) ( 1
) ( )
( )
( ) 1 (
) ( )
0 (
o fim_equant
1
repetir , ) ( Enquanto
0
0 )
(
j k
j j
j j
j k
b
y y
j j
y f y f y y
y f j
y y
c ay y y f
MÉTODO IMPLÍCITO DE SEGUNDA ORDEM (MÉTODO DO TRAPÉZIO)
x y
x
0x
1x
2y
1y
2Teorema do Valor Médio:
( , ) ( , )
2 ) 1 ( ) 2 (
) 1 ( Tomar
) (
) ( ) ) (
( que tal ,
1 1 1
1
1 1 1
k k k
k k
k k
k
x k
k k
k k
y x f y x f x
y x y y
y h y y
x x
x y x
y y x
x
1 1
1
, ,
2
k
k k
k kk
h f x y f x y
y y
Método de segunda ordem (erro decai com h
2) Método Estável
Mesmas dificuldades do Método de Primeira Ordem (Euler)
Exercício
Escreva uma rotina SciLab para solução de um problema de valor inicial usando o método de Euler implícito de primeira ordem.
Utilize a rotina desenvolvida para resolver o problema:
Determine o valor de para diferentes passos de tempo.
MÉTODOS PREDITOR-CORRETOR
Na resolução de uma equação diferencial deve-se decidir entre o uso de um método explícito, mais fácil e não estável, e o uso de um
método implícito, mais difícil, porém estáveis.
Quando a equação diferencial é não linear, deve-se usar técnicas iterativas para resolver a equação não linear resultante em cado passo.
Para o Método de Newton, o chute inicial deve ser bom para o processo convergir em poucas iterações.
Uma opção é usar um método explícito para obter o chute inicial do processo iterativo (Preditor) e um método implícito para obter a solução (Corretor).
Método de Heun: Preditor: Euler e Corretor: Trapézio
1 1
* 1 1
* 1
, 2 ,
: Inicial Chute
) , (
k k k
k k
k k
k k k
k
y x f y x h f y y
y y x f h y y
MÉTODOS DE MÚLTIPLOS PASSOS
Nos métodos vistos até agora, o valor y
k+1depende somente de informações no instante anterior k no instante presente k+1.
Métodos de Múltiplos Passos: Usar informações em vários pontos anteriores para obter maior precisão.
Passo Único:
k 1 k( )
k 1 kf ( x
k, y
k) h
y h y
h O y y dx
dy
Dois Passos:
) , ( 2
) , 2 (
) 2 (
1 1
1 3 1
1 1
k k k
k
k k k
k k
k
y x f h y
y
y x h f
y h y
h O y y dx dy
) ( ) ( 2 ) ( ) (
) 6 (
) 2 (
) ( ) ( ) (
) 6 (
) 2 (
) ( ) ( ) (
3 1
1
3 2
1
3 2
1
h O x y h x
y x
y
x h y x h y x y h x y x
y
x h y x h y x y h x y x
y
k k
k
k k
k k
k
k k
k k
k
MÉTODO LEAPFROG
Idéia geral dos Métodos de Múltiplos Passos: Usar informações em vários pontos anteriores a xk para descrever como a função se comporta entre x
ke x
k+1.
1
1 1
) (
) ( , )
( )
( ) (
1 1
k
k
k
k k
k
x
x k k
x
x x
x k k
dx x p y
y
dx x y x f dx x y x
y x
y
p(x) é um polinômio interpolador de grau N que aproxima f(x,y) e passa pelo conjundo de dados ( x
i, f
i) , i k , k 1 , , k N
Para N = 0: método de passo único
) , ( )
(
1
1
k k k
k
x
x
k k
k
y x f h y y
h f dx f f
x p
k
k
Método de Euler
Para N = 1: método de Dois Passos
Método de Adams-Bashforth de 2
aordem p(x) é um polinômio linear que interpola ( x
k1, f
k1) e ( x
k, f
k)
2 2
) ) (
( ) (
1 2
1
1 1
1 1
1
1 1
f h f
h h f
x f x
f h f dx x p
f h f
x f x
x f x
x f x
x x
x x x
p
k k k
x x k k
k k
x
x
k k k k
k k k
k k
k k
k
k k k
k
1
1
1
1
3
2
2
k
k
k
k
k
k
k
kk
h f f
y y f
h f f h y y
Para N = 2: método de Três Passos — Método de Adams-Bashforth 3
aordem
p(x) é um polinômio quadrático que interpola ( x
k2, f
k2) , ( x
k1, f
k1) e ( x
k, f
k)
1 2
1
23 16 5
24
k
k
k
kk
h f f f
y
y
Métodos de Adams-Bashforth são Métodos Explícitos
Pode-se formar os polinômios interpoladores utilizando-se pontos para frente.
Métodos Implícitos
Situação mais comum é formar um polinômio de ordem N
com os pontos x
k1, x
k, x
k1, x
kNMétodo de Adams-Moulton de ordem N Para N = 0: método de passo único
Regra do Trapézio
1 1
1
, ,
2
k
k k
k kk
h f x y f x y
y y
Para N = 3: Método de Adams-Moulton de 4
aordem
1 1 1 1 2 2
1
9 , 19 , 5 , ,
24
k
k k
k k
k k
k kk
h f x y f x y f x y f x y
y y
SOLUÇÃO DE EQUAÇÕES RÍGIDAS (STIFF) EQUAÇÕES INSTÁVEIS
1 ) 0 (
1 ) 0 c.c. (
0 11 10
y y
y y
y Solução exata: y ( x ) e
x( 1 )
1 ) 0 (
1 ) 0 c.c. (
0 11 10
y y
y y
y
Solução exata: ( 2 )
12 12
1 11 )
( x e
xe
11xy
(2) (1)
0 2 4 6 8 10
0 0.2 0.4 0.6 0.8 1 1.2
Microsoft Excel Worksheet
O problema (1) é instável.
Pequenas alterações na condição inicial podem produzir grandes alterações na solução do problema para x grande.
Esses problemas são chamados de mal condicionados.
A solução numérica é extremamente difícil, pois erros de arredondamento e da discretização podem causar o mesmo efeito que a pequena mudança na condição inicial do problema e a solução tenderá a divergir para o infinito.
Estes problemas requerem método numéricos estáveis com passos bem menores do que o usual.
As instabilidades são mais pronunciadas em problemas não-lineares.
2 y(0) c.c.
) 2 (
: Exemplo
xy y
y Solução exata: y ( x ) 2 ( 1 )
Este problema é instável. A solução para condição inicial y ( 0 ) y
0é:
) 2 ) (
2 ( ) 2
(
20 0
0
e
xy y
x y
y
1 1.5 2 2.5 3
0 0.2 0.4 0.6 0.8 1 1.2
Microsoft Excel Worksheet
MÉTODOS ESTÁVEIS E INSTÁVEIS
1 ) 0 (
1 2
: Problema
y
y
y Solução exata: ( 1 )
2 1 2
) 1
( x e
2x y
Este problema é estável, pois a solução não muda muito alterando-se a c.c.
2 1 2
) 1 ( 1
) 0 (
Se
2
y x e
xy
Aplicando-se o método de Leapfrog (segunda ordem, dois passos, explícito):
y hy y h
h y
y
k1
k1 2 2
k 1 4
k
k1 2
k y
e y y
k
h
quando 2
1 2
; 1
1
1 20
-10 -5 0 5 10
0 2 4 6 8
Método implícitos são estáveis e portanto devem ser usados para problemas stiff
Resolver o problema: y 100 sin( x ) y ; y ( 0 ) 0
Solução exata:
0001 . 1
01 . 0 ) cos(
01 . 0 ) ) sin(
(
e
100xx x x
y
Solução por Runge-Kutta:
Metodo de Runge-Kutta de quarta ordem:
h = 0.0300 y(0) = 0.0000
X f1 f2 f3 f4 Yk Yexato
0.00 0.0000 0
0.03 0.0000 1.4999 -0.7500 5.2495 0.033747047 0.020496 0.06 -0.3752 1.6865 -1.4060 6.8397 0.068874772 0.050002 0.09 -0.8911 1.9421 -2.3077 9.0234 0.105880707 0.079912 0.12 -1.6002 2.2930 -3.5468 12.0236 0.14545912 0.109773 0.15 -2.5747 2.7752 -5.2496 16.1467 0.188574804 0.139536 0.18 -3.9137 3.4383 -7.5896 21.8144 0.236564525 0.169174 0.21 -5.7535 4.3504 -10.8055 29.6059 0.291276497 0.19866 0.24 -8.2817 5.6055 -15.2252 40.3183 0.355262162 0.227966 0.27 -11.7560 7.3323 -21.3001 55.0471 0.43203987 0.257068 0.30 -16.5308 9.7080 -29.6503 75.2989 0.526457436 0.285938 0.33 -23.0937 12.9765 -41.1288 103.1450 0.645190639 0.314551 0.36 -32.1148 17.4727 -56.9085 141.4339 0.797428656 0.342881 0.39 -44.5154 23.6576 -78.6019 194.0818 0.995816526 0.370902 0.42 -61.5628 32.1644 -108.4264 266.4737 1.257751018 0.39859 0.45 -84.9991 43.8645 -149.4308 366.0140 1.607162455 0.425918