Вы находитесь на странице: 1из 36

EQUAÇÃO DIFERENCIAL ORDINÁRIA

PROBLEMA DE VALOR INICIAL


dy
 f ( x, y ) , cond. inicial : y (a )  c
dx
 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:

dN
 KN , N : numero de habitantes
dt
 É comum uma situação ser descrito por um sistema de equações diferenciais
dyi
 f i ( x, y1 , y2 ,, y s ) , i  1,2,, s
dx
dy
Em notação vetorial:  f ( x, y ) , y ( a )  c
dx

 Equações diferenciais de ordem superior podem ser escritas como


um sistema de equações diferenciais de primeira ordem

d3y  dy d 2 y 
 g  x, y, , 2  , cond. iniciais : y (0)   1 , y (0)   2 , y (0)   3
dx 3  dx dx 
dy d2y
1  y , 2  , 3  2
dx dx
 d1
 dx   2 , 1 (0)   1

 d 2
  3 ,  2 (0)   2
 dx
 d 3
 dx  g ( x,1 ,2 ,3 ) , 3 (0)   3

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 xi onde a função y(x) será calculada: Malha

y Série de Taylor de y(x) em xk:

y2
h2
y1 y ( xk 1 )  y ( xk )  hy ( xk )  y ( xk )  
2
y0
 y k 1  yk  h f ( xk , y k )
x0 x1 x2 x3 x4 x

Exemplo:

dy
Solução exata: y ( x)  e
x
Resolver :  y; y ( 0)  1
dx

Método de Euler: y k 1  y k  h f ( x, y )  y k 1  y k  h y k

h = 0.2 h = 0.1
xk y(xk) yk Erro xk y(xk) yk Erro
0.0 1.000 1.000 0.000 0.0 1.000 1.000 0.000
0.2 1.221 1.200 -0.021 0.1 1.105 1.100 -0.005
0.4 1.492 1.440 -0.052 0.2 1.221 1.210 -0.011
0.6 1.822 1.728 -0.094 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

 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 (xk ,yk)
y

Família de curvas

x
Erro pode ser decrescido diminuindo-se o passo h

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

Erro

Total
Arredondamento
Truncamento

n 1
h

Existe um tamanho de passo ótimo para produzir o erro mínimo


Análise do Erro de Truncamento para o Método de Euler

ERRO GLOBAL E ( h, x k )  y k  y ( x k )
ERRO LOCAL: Diferença entre o valor yk e o valor da solução exata
que passa pelo ponto (xk-1, yk-1)
y

Erro global
Erro local

( xk 1 , y k 1 )

Deseja-se obter uma estimativa do erro e saber se o erro cresce ou não

dy
 f ( x, y )  yk 1  yk  h f ( xk , yk )
dx  
y  ( xk , y k )

f f
Se 0 Se 0
y y
FAMÍLIA DE CURVAS DIGERVE FAMÍLIA DE CURVAS DIGERVE

y y

( x2 , y ( x2 )) ( x2 , y ( x2 ))

( x1 , y ( x1 )) ( x1 , y ( x1 ))

( x1 , y1 ) ( x0 , y 0 ) ( x1 , y1 )
( x0 , y 0 )

x x

y ( x1 , y1 )  y ( x1 , y ( x1 )) y ( x1 , y1 )  y ( x1 , y ( x1 ))
ERRO AUMENTA EXPONENCIALMENTE 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:

e Lnh  1 f
y n  y ( xn )   Lh ; onde L  max
e 1 x0  x  x n y

Se Lh for pequeno :

e Lnh  1
y n  y ( xn )  
Lh

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


dy
Exemplo :  y
dx
Solução exata: y ( x)  y0 e x

Solução pelo método de Euler: y n 1  y n   h y n  y n 1  y0 (1  h) n

h (h) 2
Observe que, por serie de Taylor: e  1  h  
2
A solução pelo método de Euler produz os dois primeiros termos da serie de Taylor
Metodo de Euler:
Para   2 ( y0  1) :  -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
1.5000 0.20 0.6703 0.6000
0.40 0.4493 0.3600 0.2000
1.0000 0.60 0.3012 0.2160
0.80 0.2019 0.1296 0.0400
0.5000 1.00 0.1353 0.0778 -1.0000
Exata
1.20 0.0907 0.0467 0.0080
h=0.2 1.40 0.0608 0.0280
0.0000
h=0.4 1.60 0.0408 0.0168 0.0016
0.00 1.00 2.00 3.00 4.00 5.00
h=1.0 1.80 0.0273 0.0101
-0.5000
2.00 0.0183 0.0060 0.0003 1.0000
2.20 0.0123 0.0036
-1.0000
2.40 0.0082 0.0022 0.0001
2.60 0.0055 0.0013
-1.5000
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

Para   0
4.80 0.0001 0.0000 0.0000
Solução exata decai com x 5.00 0.0000 0.0000 -1.0000

Solução aproximada pode crescer com x se 1  h  1


2 Microsoft Excel
Para <0, o Método de Euler só é estável para h 
 Worksheet

Resolver o problema y    y, y ( 0)  1
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
1.2000 0.40 0.6703 0.6561
0.50 0.6065 0.5905 0.5000
1.0000 exata 0.60 0.5488 0.5314
h=0.1 0.70 0.4966 0.4783
0.8000
0.80 0.4493 0.4305
0.6000 h=0.5 0.90 0.4066 0.3874
1.00 0.3679 0.3487 0.2500
h=1.5 1.10 0.3329 0.3138
0.4000
1.20 0.3012 0.2824
1.30 0.2725 0.2542
0.2000
1.40 0.2466 0.2288
1.50 0.2231 0.2059 0.1250 -0.5000
0.0000
1.60 0.2019 0.1853
-0.20000.00 1.00 2.00 3.00 4.00 5.00 1.70 0.1827 0.1668
1.80 0.1653 0.1501
-0.4000 1.90 0.1496 0.1351
2.00 0.1353 0.1216 0.0625
-0.6000 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
Microsoft Excel 3.50 0.0302 0.0250 0.0078
3.60 0.0273 0.0225
Worksheet 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
MÉTODO DE EULER DE ORDEM ELEVADA
h2
y ( xk 1 )  y ( xk )  hy ( xk )  y ( xk )  
2
d d f f dy
Onde y ( xk )  y  f ( x, y )  
dx dx x y dx
h2  f f 
y ( xk 1 )  y ( xk )  h f ( xk , yk )    f ( x , y )
k 
 x y
k
2 

dy
Resolver :  yx, y ( 0)  2 Sol. Exata : y ( x)  e x  x  1
dx
Usar 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:


dy
 F ( x, y ) , c.i. ( x0 , y0 )
dx
Serie de Taylor (2a ordem) :
h 2  Fk Fk dy 
y ( xk 1 )  y ( xk )  h Fk      ()
2  x y dx 
Aprox.
y k 1  y k  1h Fk  2 h F ( xk  1h, yk   2 h Fk )
As constantes 1 , 2 , 1 ,  2 são determinadas de tal forma que as
expressões anteriores coincidam

Por série de Taylor:


Fk F
F ( xk  1h, y k   2 h Fk )  F ( xk , y k )  1h   2 h Fk k  
x y

A solução aproximada fica:

 F F 
 y k 1  y k  1  2 h Fk  2 h 2  1 k   2 Fk k   
 x y 
Comparando com ()
1 1 1
1  2  1; 2 1  ; 2  2   1  2  e 1   2  1
2 2 2

f f   f1  F ( x k , y k )
y k 1  y k  h  1  2  ;  f  F ( x  h, y  hf )
2 2   2 k k 1

RUNGE KUTTA DE QUARTA ORDEM

f f f f 
yk 1  yk  h 1  2  3  4 
6 3 3 6 
f1  F ( xk , y k )
 h h 
f 2  F  xk  , y k  f1 
 2 2 
 h h 
f 3  F  xk  , y k  f 2 
 2 2 
f 4  F xk  h, y k  hf 3 

Método de Runge-Kutta mais utilizado

Boa combinação entre precisão e simplicidade de programação


Resolver o problema y    y , y (0)  1 (Runge - Kutta quarta ordem, h  0.5)

F ( x, y )   y
0.5
y1  y0   f1  2 f 2  2 f 3  f 4 
6
f1   y0  Metodo de Runge-Kutta (4 ordem):

 0.5  h= 0.5000
f 2   y0  f1  f1 f2 f3 f4 y - approx
 2  0.00 1.0000 1.0000
0.50 0.6065 -1.0000 -0.7500 -0.8125 -0.5938 0.6068
 0.5  1.00 0.3679 -0.6068 -0.4551 -0.4930 -0.3603 0.3682
f 3   y0  f2  1.50 0.2231 -0.3682 -0.2761 -0.2991 -0.2186 0.2234
 2  2.00 0.1353 -0.2234 -0.1675 -0.1815 -0.1326 0.1355

f 4   y0  0.5 f 3 
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
5.00
0.0111
0.0067
-0.0184
-0.0111
-0.0138
-0.0084
-0.0149
-0.0091
-0.0109
-0.0066
0.0111
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

Runge - Kutta quarta ordem, h  1.5


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

1.2000
1.0000
0.8000
0.6000
Exata
0.4000
RK
0.2000
Euler
0.0000
-0.20000.00 2.00 4.00 6.00 8.00 10.00 12.00

-0.4000
-0.6000
Exercício
Escreva uma rotina SciLab 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

dy
 F ( x , y , z ) ; y ( x0 )  A
dx
dz
 G ( x , y , z ) ; z ( x0 )  B
dx

y k 1  y k 
h
 f1  2 f 2  2 f 3  f 4 
h
z k 1  z k  g1  2 g 2  2 g 3  g 4 
6 6
f1  F  x k , y k , z k  g1  G xk , y k , z k 
 h h h   h h h 
f 2  F  xk  , yk  f1 , z k  g1  g 2  G  xk  , yk  f1 , z k  g1 
 2 2 2   2 2 2 
 h h h   h h h 
f 3  F  xk  , y k  f 2 , z k  g 2  g 3  G  xk  , y k  f 2 , z k  g 2 
 2 2 2   2 2 2 
f 4  F xk  h, yk  hf 3 , z k  hg 3  g 4  G xk  h, yk  hf 3 , z k  hg 3 
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.
dx
 ax  bxy
dt
dy
 cy  dxy
dt

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:
a  1,2
b) Construa o gráfico da população da presa em função da população
b  0,6
do predador. Comente o resultado obtido.
c  0,8
d  0,4 x (t  0)  2
c) O que acontece quando y (t  0)  2 ?
x(t  0)  2
y (t  0)  1
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.

MÉTODO DE EULER IMPLÍCITO

Série de Taylor para trás ao redor de xk+1:


y
y2 x  h
h2
y1 y ( xk 1  h)  y ( xk 1 )  hy ( xk 1 )  y ( xk 1 )  

  2
xk

 y k  y k 1  h f ( xk 1 , y k 1 )
x0 x1 x2 x
 y k 1  y k  h f ( xk 1 , y k 1 )

Lado direito da equação não é conhecido !!


Resolver o problema y    y, y ( 0)  1
F ( x, y )   y
y k 1  y k  h f ( xk 1 , y k 1 )  y k 1  y k  h ( y k 1 )
yk
y k 1  Em casos simples, a equação pode ser facilmente rearrumada
(1  h) 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).
Metodo de Euler Implicito

-1.0000 1.2000

h=1.5 (EXP) h=0.5 (IMP) 1.0000
0.00 1.0000 1.0000 1.0000 0.8000
0.50 0.6065 0.6000
1.00 0.3679 Exata
0.4000
1.50 0.2231 -0.5000 0.4000 Euler Explicito
0.2000
2.00 0.1353 Euler Implicito
0.0000
2.50 0.0821
-0.20000.00 1.00 2.00 3.00 4.00 5.00
3.00 0.0498 0.2500 0.1600
-0.4000
3.50 0.0302
4.00 0.0183 -0.6000

4.50 0.0111 -0.1250 0.0640

O método de Euler Implícito é incondicionalmente estável

Resolver o problema y   y x , y (0)  1

F ( x, y )  y x
y k 1  y k  h f ( xk 1 , y k 1 )  y k 1  y k  h y kxk 11
y k 1  h y kxk 11  y k

O valor de yk+1 não pode ser explicitada em função de yk

Para cada passo, deve-se determinar a raiz da equação não linear

y  ay b  c  0 ; a, b, c conhecidos
f ( y )  y  ay b  c  0
Cálculo pelo Método de Newton, por exemplo y (0)  yk
j0
Enquanto f ( y ( j ) )   , repetir
   
y ( j 1)  y ( j )  f y ( j ) f  y ( j )
j  j 1
fim_equanto
y k 1  y ( j )
MÉTODO IMPLÍCITO DE SEGUNDA ORDEM
(MÉTODO DO TRAPÉZIO) y
y2
Teorema do Valor Médio:
y1
y ( xk 1 )  y ( xk )
  xk , xk 1  tal que y ( ) 
xk 1  x x
 yk 1  y k  h y ( )
x0 x1 x2 x
1
Tomar y ( )   y( xk )  y( xk 1 )   1  f ( xk , yk )  f ( xk 1 , yk 1 ) 
2 2

y k 1  y k 
h
 f xk , yk   f xk 1 , yk 1 
2

Método de segunda ordem (erro decai com h2)

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


y k* 1  y k  h f ( xk , y k )

Chute Inicial : y k* 1  y k 1  y k 
h
 f xk , yk   f xk 1 , yk 1 
2

MÉTODOS DE MÚLTIPLOS PASSOS

 Nos métodos vistos até agora, o valor yk+1 depende 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.

dy y k 1  y k y  yk
Passo Único:   O(h)  k 1  f ( xk , y k )
dx h h
h2 h3
Dois Passos: y ( xk 1 )  y ( xk )  hy ( xk )  
y ( xk )  y ( xk )  
2 6
h2 h3
y ( xk 1 )  y ( xk )  hy ( xk )  y ( xk )  y ( xk )  
2 6
 y ( xk 1 )  y ( xk 1 )  2hy ( xk )  O(h 3 )

dy y k 1  y k 1 y  yk 1
  O(h 3 )  k 1  f ( xk , y k )
dx 2h 2h

yk 1  yk 1  2h f ( xk , yk ) 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 xk e xk+1.
xk 1 xk 1

y ( xk 1 )  y ( xk ) 
xk
 y( x) dx   f x, y( x)dx
xk
xk 1

 y k 1  y k   p( x) dx
xk

 p(x) é um polinômio interpolador de grau N que aproxima f(x,y) e passa


pelo conjundo de dados ( xi , f i ) , i  k , k  1,, k  N

Para N = 0: método de passo único


xk 1

p( x)  f k  f
xk
k dx  f k h

 y k 1  y k  h f ( xk , y k ) Método de Euler

Para N = 1: método de Dois Passos


p(x) é um polinômio linear que interpola ( xk 1 , f k 1 ) e ( xk , f k )

x  xk x  xk 1 x  xk
p( x)  f k 1  fk  fk   f k 1  f k 
xk 1  xk xk  xk 1 h
xk 2
( x  xk )
f k h   f k 1  f k  h   f k 1  f k 
h
  p ( x) dx  xk 1  f k
xk

xk 1
2h 2

y k 1  y k  h f k 
h
 f k 1  f k   yk 1  yk 
h
3 f k  f k 1 
2 2
Método de Adams-Bashforth de 2a ordem

Para N = 2: método de Três Passos — Método de Adams-Bashforth 3a ordem

p(x) é um polinômio quadrático que interpola ( xk  2 , f k  2 ), ( xk 1 , f k 1 ) e ( xk , f k )

yk 1  yk 
h
23 f k  16 f k 1  5 f k 2 
24
 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 xk 1 , xk , xk 1 , xk  N
Método de Adams-Moulton de ordem N

Para N = 0: método de passo único

y k 1  y k 
h
 f xk , yk   f xk 1 , yk 1  Regra do Trapézio
2

Para N = 3: Método de Adams-Moulton de 4a ordem

y k 1  y k 
h
9 f xk 1 , yk 1   19 f xk , yk   5 f xk 1 , yk 1   f xk 2 , yk 2 
24

SOLUÇÃO DE EQUAÇÕES RÍGIDAS (STIFF)

EQUAÇÕES INSTÁVEIS

(1) y   10 y   11 y  0 Solução exata: y ( x)  e  x (1)

 y ( 0)  1
c.c.
 y (0)  1

 11   x  11x
(2) y   10 y   11 y  0 Solução exata: y ( x )  1   e  e ( 2)
 12  12
 y ( 0)  1  
c.c.
 y (0)  1 10

2
Microsoft Excel
Worksheet
0
0 0.2 0.4 0.6 0.8 1 1.2
 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.

Exemplo : y   xy ( y  2) y ( x)  2 (1)
Solução exata:

c.c. y(0)  2

Este problema é instável. A solução para condição inicial y (0)  y0 é:

2 y0
y ( x)  ( 2)
x2
y 0  ( 2  y 0 )e

2.5

Microsoft Excel
1.5
Worksheet

1
0 0.2 0.4 0.6 0.8 1 1.2
MÉTODOS ESTÁVEIS E INSTÁVEIS
1 2 x 1
 y   2 y  1 Solução exata: y ( x)  e  (1)
Problema :  2 2
 y ( 0)  1

Este problema é estável, pois a solução não muda muito alterando-se a c.c.

1  1
Se y (0)  1    y ( x )     e  2 x 
2  2

Aplicando-se o método de Leapfrog (segunda ordem, dois passos, explícito):

y k 1  y k 1  2h 2 y k  1  4hy k  y k 1  2h
10

1 1
y0  1; y1  e  2 h  5

2 2
 y k   quando k  
0
0 2 4 6 8
-5

-10

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


sin( x)  0.01cos( x)  0.01e 100 x
Solução exata: y ( x) 
1.0001

 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
M e t o do de R unge - Kut t a de qua rt a o

h = 0.03 y(0) = 0

X f1 f2 f3 f4 Yk Y e xa t o

0 =$ E$ 3 =(SIN(A 7)-0.01*COS(A 7)+0.01*


=A 7+$ B $ 3 =100*(SIN(A 7)-F7) =100*(SIN(A 7+$ B $ 3/2)-(F7+$ B $ 3/2*B 8)) =100*(SIN(A 7+$ B $ 3/2)-(F7+$ B $ 3/2*C8)) =100*(SIN(A 7+$ B $ 3)-(F7+$ B $ 3*D8)) =F7+$ B $ 3/6*(B 8+2*C8+2*D8+E8) =(SIN(A 8)-0.01*COS(A 8)+0.01*
=A 8+$ B $ 3 =100*(SIN(A 8)-F8) =100*(SIN(A 8+$ B $ 3/2)-(F8+$ B $ 3/2*B 9)) =100*(SIN(A 8+$ B $ 3/2)-(F8+$ B $ 3/2*C9)) =100*(SIN(A 8+$ B $ 3)-(F8+$ B $ 3*D9)) =F8+$ B $ 3/6*(B 9+2*C9+2*D9+E9) =(SIN(A 9)-0.01*COS(A 9)+0.01*
=A 9+$ B $ 3 =100*(SIN(A 9)-F9) =100*(SIN(A 9+$ B $ 3/2)-(F9+$ B $ 3/2*B 10)) =100*(SIN(A 9+$ B $ 3/2)-(F9+$ B $ 3/2*C10)) =100*(SIN(A 9+$ B $ 3)-(F9+$ B $ 3*D10)) =F9+$ B $ 3/6*(B 10+2*C10+2*D10+E10) =(SIN(A 10)-0.01*COS(A 10)+0.0
=A 10+$ B $ 3 =100*(SIN(A 10)-F10) =100*(SIN(A 10+$ B $ 3/2)-(F10+$ B $ 3/2*B 11=100*(SIN(A 10+$ B $ 3/2)-(F10+$ B $ 3/2*C11=100*(SIN(A 10+$ B $ 3)-(F10+$ B $ 3*D11)) =F10+$ B $ 3/6*(B 11+2*C11+2*D11+E11) =(SIN(A 11)-0.01*COS(A 11)+0.0
=A 11+$ B $ 3 =100*(SIN(A 11)-F11) =100*(SIN(A 11+$ B $ 3/2)-(F11+$ B $ 3/2*B 12=100*(SIN(A 11+$ B $ 3/2)-(F11+$ B $ 3/2*C12=100*(SIN(A 11+$ B $ 3)-(F11+$ B $ 3*D12)) =F11+$ B $ 3/6*(B 12+2*C12+2*D12+E12) =(SIN(A 12)-0.01*COS(A 12)+0.0
=A 12+$ B $ 3 =100*(SIN(A 12)-F12) =100*(SIN(A 12+$ B $ 3/2)-(F12+$ B $ 3/2*B 13=100*(SIN(A 12+$ B $ 3/2)-(F12+$ B $ 3/2*C13=100*(SIN(A 12+$ B $ 3)-(F12+$ B $ 3*D13)) =F12+$ B $ 3/6*(B 13+2*C13+2*D13+E13) =(SIN(A 13)-0.01*COS(A 13)+0.0
=A 13+$ B $ 3 =100*(SIN(A 13)-F13) =100*(SIN(A 13+$ B $ 3/2)-(F13+$ B $ 3/2*B 14=100*(SIN(A 13+$ B $ 3/2)-(F13+$ B $ 3/2*C14=100*(SIN(A 13+$ B $ 3)-(F13+$ B $ 3*D14)) =F13+$ B $ 3/6*(B 14+2*C14+2*D14+E14) =(SIN(A 14)-0.01*COS(A 14)+0.0
=A 14+$ B $ 3 =100*(SIN(A 14)-F14) =100*(SIN(A 14+$ B $ 3/2)-(F14+$ B $ 3/2*B 15=100*(SIN(A 14+$ B $ 3/2)-(F14+$ B $ 3/2*C15=100*(SIN(A 14+$ B $ 3)-(F14+$ B $ 3*D15)) =F14+$ B $ 3/6*(B 15+2*C15+2*D15+E15) =(SIN(A 15)-0.01*COS(A 15)+0.0
=A 15+$ B $ 3 =100*(SIN(A 15)-F15) =100*(SIN(A 15+$ B $ 3/2)-(F15+$ B $ 3/2*B 16=100*(SIN(A 15+$ B $ 3/2)-(F15+$ B $ 3/2*C16=100*(SIN(A 15+$ B $ 3)-(F15+$ B $ 3*D16)) =F15+$ B $ 3/6*(B 16+2*C16+2*D16+E16) =(SIN(A 16)-0.01*COS(A 16)+0.0
=A 16+$ B $ 3 =100*(SIN(A 16)-F16) =100*(SIN(A 16+$ B $ 3/2)-(F16+$ B $ 3/2*B 17=100*(SIN(A 16+$ B $ 3/2)-(F16+$ B $ 3/2*C17=100*(SIN(A 16+$ B $ 3)-(F16+$ B $ 3*D17)) =F16+$ B $ 3/6*(B 17+2*C17+2*D17+E17) =(SIN(A 17)-0.01*COS(A 17)+0.0

O método só é estável para passos muito pequenos h < 0.030 Microsoft Excel
Worksheet

 Solução por Trapézio:


y k 1  y k 
h
 f xk , yk   f xk 1 , yk 1 
2
y k 1  y k  100sin( xk )  y k   100sin( xk 1 )  y k 1 
h
2
 h h
y k 1  100   100sin( xk )  sin( xk 1 ) 
2 2
 y k 1  
h
1  100
2

M e t o do do T ra pe zio

h = 0.5

X Yk

0 =$ E$ 3
=A 7+$ B $ 3 =(B 7*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 7)+SIN(A 8)))/(1+$ B $ 3/2*100)
=A 8+$ B $ 3 =(B 8*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 8)+SIN(A 9)))/(1+$ B $ 3/2*100)
=A 9+$ B $ 3 =(B 9*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 9)+SIN(A 10)))/(1+$ B $ 3/2*100)
=A 10+$ B $ 3 =(B 10*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 10)+SIN(A 11)))/(1+$ B $ 3/2*100)
=A 11+$ B $ 3 =(B 11*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 11)+SIN(A 12)))/(1+$ B $ 3/2*100)
=A 12+$ B $ 3 =(B 12*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 12)+SIN(A 13)))/(1+$ B $ 3/2*100)
=A 13+$ B $ 3 =(B 13*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 13)+SIN(A 14)))/(1+$ B $ 3/2*100)
=A 14+$ B $ 3 =(B 14*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 14)+SIN(A 15)))/(1+$ B $ 3/2*100)
=A 15+$ B $ 3 =(B 15*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 15)+SIN(A 16)))/(1+$ B $ 3/2*100)
=A 16+$ B $ 3 =(B 16*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 16)+SIN(A 17)))/(1+$ B $ 3/2*100)

Metodo do Trapezio

h= 0.5000 y(0) = 0.0000

X Yk Yexato

0.00 0.0000 0
0.50 0.460986095 0.470602653
1.00 0.844567185 0.835984363
1.50 0.988636033 0.996687946
2.00 0.920867137 0.913367558
2.50 0.59974723 0.606422938
3.00 0.157533472 0.151004833
3.50 -0.347014762 -0.341384522
4.00 -0.744664953 -0.75019104
4.50 -0.980244479 -0.975324627 Microsoft Excel
5.00 -0.95713432 -0.96166473 Worksheet
PROBLEMA DE VALOR DE CONTORNO
d2y
 f ( x, y, y ) , cond. cont. : y (0)  A ; y (1)  B
dx 2
MÉTODO DE TIRO (SHOOTING METHOD)

 Baseado nos Problemas de Valor Inicial.

 Estima-se a derivada em x = 0: y (0)

 Utilizando-se os métodos de valor inicial, determina-se a solução em x = 1.

 Verifica-se se o valor obtido em x = 1 é igual a B.

 Repetir até convergir. B

Problema Linear

 Usar o Princípio da Superposição.

y1 ( x) e y 2 ( x) : Funções que satisfazem a eq. Diferencial e a


cond. de contorno em x = 0.
y1 (0)  y 2 (0)  A
y1 (0)  y2 (0)

y ( x)  c1 y1 ( x)  c2 y 2 ( x) satisfaz a eq. Diferencial


y (0)  c1 y1 (0)  c2 y 2 (0)
Se c1  c2  1  y (0)  A

y (1)  c1 y1 (1)  c2 y 2 (1)  B


y ( x) é solução do problema se:
c1  c2  1 B  y 2 (1)
  c1  e c2  1  c1
c1 y1 (1)  c2 y 2 (1)  B y1 (1)  y 2 (1)
Problema Não-Linear

 O Princípio da Superposição não pode ser usado.

 Cada valor de y (0)   corresponde um valor de y (1) .

 y (1)  g ( )

 Utilizar métodos iterativos para determinar o valor de


que fornece a condição de contorno correta em x = 1, isto é
determinar a raiz da equação: f ( )  g ( )  B

 Por exemplo: Método da Secante:  Chute  0  f ( 0 )  g ( 0 )  B


 Chute  1  f ( 1 )  g ( 1 )  B
1  0
  2   1  g ( 1 )  B 
g ( 1 )  g ( 0 )

 O Problema de Valor Inicial pode ser mal-condicionado mesmo que
o Problema de Valor de Contorno seja bem-condicionado.

MÉTODO DE DIFERENÇAS FINITAS

 A equação diferencial é transformada em


um conjunto de equações algébricas

 A função desconhecida é calculada apenas em N pontos – NÓS

 Derivadas são aproximadas por diferença dos valores nodais

 A equação aproximada é escrita em cada ponto nodal, gerando N equações

Exemplo: d2y  dy 
 f  x , y , ; 0  x  L
dx 2  dx 
y (0)  Y0
y ( L)  YL

Obter y(x).
Problema Linear

i=1 i=2 i-1 i i+1 i=N

xi 1 xi xi 1
x1 xN
x  h

Aproximação das derivadas por uso de série de Taylor truncada:

h2 h2
yi 1  yi  h yi  yi   ( A) yi 1  yi  h yi  yi   ( B)
2 2
Diferentes aproximações para primeira derivada:
yi 1  yi
 DIFERENÇA PARA FRENTE ( A)  yi 
h
yi  yi 1
 DIFERENÇA PARA TRÁS ( B)  yi 
h
y y
 DIFERENÇA CENTRAL ( A)  ( B )  yi  i 1 i 1
2h

Aproximação para segunda derivada (Deve-se eliminar o termo de 1a ordem):

 DIFERENÇA CENTRAL
yi 1  2 yi  yi 1
( A)  ( B)  yi 
h2

Interpretação geométrica
dy

dy yi 1  yi yi  yi 1
2 
d y d  dy  dx d dx e h h
2
   
dx dx  dx  h h
d 2 y yi 1  2 yi  yi 1
 2 
dx h2

i-1 i i+1
xi 1 e xi d xi 1
x  h
EXEMPLO: Condução de calor em uma barra com convecção natural

hc , T Equação diferencial que descreve


TA TB a variação da temperatura na barra.
x
L d 2T hc P
2
 T  T   0
dx kA
T ( x  0)  T A
T ( x  L)  TB

i=1 i=2 i-1 i i+1 i=N

xi 1 xi xi 1
x1 xN

Incógnitas do problema: T1 , T2 ,  , Ti ,  , TN

d 2T
No ponto i:  c Ti  T   0
hP
2
dx i kA
Ti 1  2Ti  Ti 1 hc P
  Ti  T   0
h2 kA
 1   2 h P  1  hP
  2  Ti 1    2  c  Ti   2  Ti 1   c T
h   h kA  h  kA
Para se obter as N equações necessárias para determinar as N incógnitas,
a aproximação deve ser satisfeita em todos os nós:

i  1  T1  TA (c.c.)
 1   2 h P  1  hP
i  2   2  T1    2  c  T2   2  T3   c T
h   h kA  h  kA
 1   2 h P  1  hP
i  3   2  T2    2  c  T3   2  T4   c T
h   h kA  h  kA

i  N  TN  TB (c.c.)
O sistema pode ser escrito em forma matricial como:

 T 
 1 0 0 0  0  T1   h P A 
1  h P    T   c T 
 h2  2 2  c  1 2 0  0  2  kA
 h kA  h  hc P 
   T3   T 
  2 2  c
hP 
 1 2 1  0  T    h P kA 
 h  h kA  h2   4   c
kA  
T
      
 0     
 0 0 0  1 TN  
 T B 

Exemplo: Desenvolver o problema se os nós não são uniformemente distribuidos.

xi 1 xi
i=1 i=2 i-1 i i+1 i=N

xi 1 xi xi 1
x1 xN

EXEMPLO: Condição de contorno na derivada da função

d 2T
0
TA hc , T dx 2
x T ( x  0)  T A
L dT
x  L   he T x  L   T 
dx K

No ponto i: d 2T
0
dx 2 i
Ti 1  2Ti  Ti 1
 0
h2
 1   2  1 
  2  Ti 1    2  Ti   2  Ti 1  0
h   h  h 
Para se obter as N equações necessárias para determinar as N incógnitas,
a aproximação deve ser satisfeita em todos os nós:

i  1  T1  TA (c.c.)
 1   2  1 
i  2   2  T1    2  T2   2  T3  0
h   h  h 
 1   2  1 
i  3   2  T2    2  T3   2  T4  0
h   h  h 

TN  TN 1 he  1 1 h 
 TN  T     TN 1    e    e T
h
iN
h K  h h K  K

O sistema pode ser escrito em forma matricial como:

  T1  
TA 
 1 0 0 0  0 0
1
 h2  h
 2 1 2 0  0 0   T2 
  
 0 

 
2
h    0 
 1  2 1  0 0  T3 
 T   
h2 h2 h2 0
   4   
      
 0 0 0 0  1 1  he     he 
h h K  TN   K T 
Exercício
Escreva uma rotina SciLab para solução de um problema de valor de contorno
pelo método de diferenças finitas (diferença central).
Utilize a rotina desenvolvida para resolver o problema:

L=5m
Problema Não-Linear

EXEMPLO: Problema de Convecção e Difusão

Equação diferencial que descreve


VA VB a velocidade em cada ponto.
x
L du d 2u
u K 2 0
dx dx
u ( x  0)  VA
u ( x  L )  VB

i=1 i=2 i-1 i i+1 i=N

xi 1 xi xi 1
x1 xN

Incógnitas do problema: u1 , u 2 ,  , ui ,  , u N
Aproximação por diferença central: du u u
 i 1 i 1
dx i 2h
d 2u ui 1  2ui  ui 1

dx 2 i h2
No ponto i:
du d 2u
ui K 2 0
dx i dx i
u  u   u  2ui  ui 1 
 ui  i 1 i 1   K  i 1 0
 2h   h2 
 K  2 K  u  u   K
   2 ui 1   2   i 1 i 1 ui    2 ui 1  0
 h  h  2h  
h
 
Ai Bi Ai

Para se obter as N equações necessárias para determinar as N incógnitas,


a aproximação deve ser satisfeita em todos os nós:

i  1  u1  VA (c.c.)
 K  2 K  u  u   K
i  2    2  u1   2   3 1 u2    2  u3  0
 h  h  2h    h 
 K  2 K  u  u   K
i  3    2  u 2   2   4 2   u3    2  u 4  0
 h  h  2h    h 

i  N  u N  VB (c.c.)
 u1  VA 
1 0 0 0  0    
A   u2   0 
 2 B2 A2 0  0
 u3   0 
 A3 B3 A3  0     
Função de    u4   0 
       
u1 e u3
 0 0 0 0  1    
u N  TB 
Os coeficientes da matriz dependem da solução do problema.

Sistema de equações Não-Linear


Solução de Sistema de Equações Não-Linear
Método de Picard:

1. Chute inicial; c
(0)

 u1( 0) , u2( 0) , u3( 0) ,  , u N( 0) 
2. Calcular coeficientes da matriz usando o valor atual das incógnitas;

A Ac  
(k )

3. Resolver o sistema de equações e determinar o novo valor das


incógnitas;

c
( k 1)
  
 Ac
(k ) 1
f

• Comparar solução atual com anterior;

• Se não covergiu, voltar para 2.

Convergência Ruim

Método de Newton:
Generalização do Método de Newton para 1 equação não-linear

f  x  x   f  x   x f  x   x 2 f  x   
f  x  x   0  f  x   x f  x 

f x 
x  
f  x 

PROCEDIMENTO ITERATIVO
Chute inicial : x( 0)
i0
While f ( x(i ) )   , do
f ( x( i ) )
x  
f ( x(i ) )
x(i 1)  x(i )  x
i  i 1
Raiz : x(i 1)
 f ( x , x , x ,, x )  0
Sistema a ser resolvido:  1 1 2 3 N

f ( x , x , x ,, xN )  0
 2 1 2 3 
 f 3 ( x1 , x2 , x3 ,  , x N )  0


 f N ( x1 , x2 , x3 ,  , x N )  0

Expansão por série de Taylor até termos de primeira ordem de cada equação:

f1 ( x1  x1 , x2  x2 ,  , x N  x N )  0 
f f f
f1 ( x1 , x2 ,  , x N )  1 x1  1 x2    1 x N
x1 x2 x N
f 2 ( x1  x1 , x2  x2 ,  , x N  x N )  0 
f f f
f 2 ( x1 , x2 ,  , x N )  2 x1  2 x2    2 x N
x1 x2 x N

f N ( x1  x1 , x2  x2 , , x N  x N )  0 
f f f
f N ( x1 , x2 , , x N )  N x1  N x2    N x N
x1 x2 x N

f1 f f
 f1 ( x1 , x2 ,  , x N )  x1  1 x2    1 x N
x1 x2 x N
f f f
 f 2 ( x1 , x2 , , x N )  2 x1  2 x2    2 x N
x1 x2 x N

f f f
 f N ( x1 , x2 , , x N )  N x1  N x2    N x N
x1 x2 x N

 f1 f1 f1 


 x 
Sistema em x2 x N   x1   f1 
Forma matricial  1 
 2f  f 2  f 2   x  f 
  2
 x1 x2 x N    2 
       
 
 x   

 N f f f N   N fN 
N

 x1 x2 x N  x f
  
f i
J

Matrix Jacobiana J ij 
x j
x  J 1 f
PROCEDIMENTO ITERATIVO

(0)
Chute inicial : c
i0
While f c     , do
(i )

x   J 1 f Solução de um sistema linear


( i 1)
 c  x
(i )
c
i  i 1
( i 1)
Raiz : c

Convergência Quadrática

Voltando ao Problema Não-Linear: du d 2u


u K 2 0
dx dx
u ( x  0)  VA
u ( x  L )  VB

Sistema de equações algébricas não-linear resultante:

f1 u1 ,  , ui 1 , ui , ui 1 ,  , u N   u1  VA  0
u  u   u  2ui  ui 1 
f i u1 ,  , ui 1 , ui , ui 1 ,  , u N   ui  i 1 i 1   K  i 1 2 0
 2 h   h 
i  2,3,  , N
f N u1 ,  , ui 1 , ui , ui 1 ,  , u N   u N  VB  0

Solução pelo Método de Newton…


Cálculo da matriz Jacobiana:

f1 f1 f
 1;  0 ;; 1  0
u1 u2 u N
f 2 K u f 2 2 K u3  u1 f 2 K u f 2 f
 2  2 ;  2  ;  2  2 ;  0 ; ; 2  0
u1 h 2h u2 h 2h u3 h 2h u4 u N
f 3 f 3 K u f 3 2 K u4  u2 f 3 K u f 3
0;  2  3 ;  2  ;  2  3 ;  0 ;
u1 u2 h 2h u3 h 2h u4 h 2h u5

f N f N f
 0 ;;  0 ; N 1
u1 u N 1 u N

Exercício

Вам также может понравиться