Escolar Documentos
Profissional Documentos
Cultura Documentos
Objectivos
No fim desta aula, os estudantes devem ser capazes de:
• Resolver equações diferenciais através dos métodos de Euler e Runge-Kutta (ordens 2 e 4).
. .
A solução numérica da equação diferencial (1) é uma função tabelada que pode ser dada pelo
conjunto T = {(x0 , y0 ), (x1 , y1 ), (x2 , y2 ), ..., (xn , yn )} que satisfaz, simultaneamente, a equação
y ′ = f (x, y) e a condição y(x0 ) = y0 no intervalo a ≤ x ≤ b. Para ilustrar o comporta-
mento da solução numérica de uma equação diferencial, no intervalo [a, b], frequentemente,
faz-se uma representação gráfica da função T = {(x0 , y0 ), (x1 , y1 ), (x2 , y2 ), ..., (xn , yn )}, onde
a = x0 < x1 < x2 < ... < xn−1 < xn = b.
yi+1 = yi + hφ(x, y, h)
Definição 2 (Ordem).
Um método de passo simples é de ordem n se a função incremento φ for tal que
(x − x0 )f ′ (x0 )
f (x) ≈ f (x0 ) +
1!
Fazendo x − x0 = h ⇐⇒ x = x0 + h.
A partir de (1), temos y ′ = f (x, y) =⇒ y ′ (x0 ) = f (x0 , y(x0 )) = f (x0 , y0 ). Portanto,
b−a
x0 = a, y0 = f (x0 ), h =
n
i = 0, 1, 2, ..., n.
yi+1 = yi + h · f (xi , yi )
xi+1 = xi + h
Resolução
x0 = 0, y0 = 1
yi+1 = yi − 0.1 · (xi ) · (yi )
Para i = 0 =⇒ y1 = y0 − 0.1 · (x0 · y0 ) = 1 − 0, 1 · (0 · 1) = 1 e x1 = x0 + 0.1 = 0 + 0.1 = 0.1
Para i = 1 =⇒ y2 = y1 − 0.1 · (x1 · y1 ) = 1 − 0.1 · 0.1 = 0.99
1
Leonhard Euler (1707–1783) — matemático alemão
2
Brook Taylor (1685–1731) — matemático inglês
3
O método de Euler não oferece uma exactidão adequada, porém pode ser usado para a obtenção
de uma visão geral sobre a variação da solução. Atendendo a simplicidade da equação consi-
derada no exemplo anterior, podemos mostrar esta situação, determinando a solução exacta e
compará-la com a obtida através do método de Euler. A tabela e a figura abaixo ilustram os
resultados obtidos:
b−a
x0 = a, y0 = y(x0 ), h =
n
i = 0, 1, 2, ..., n.
(i)
k1 = f (xi , yi )
( )
(i) h h (i)
k2 = f xi + , yi + k1
2 2
(i)
yi+1 = yi + h · k2
xi+1 = xi + h
b−a
x0 = a, y0 = y(x0 ), h =
n
i = 0, 1, 2, ..., n.
(i)
k1 = f (xi , yi )
(i) (i)
k2 = f (xi + h, yi + hk1 )
h ( (i) (i)
)
yi+1 = yi + · k1 + k2
2
xi+1 = xi + h
Resolução
Aplicando o algoritmo do método de Euler melhorado, obtemos as seguintes fórmulas:
f (x, y) = −xy, x0 = 0, y0 = 1, h = 0.1;
(i)
k1 = f (xi , yi ) = −xi · yi
(i) (i)
k2 = −(xi + 0.1)(yi + 0.1 · k1 )
h ( (i) (i)
)
yi+1 = yi + k1 + k2
2
xi+1 = xi + h
5
(i) (i)
Agora determinemos os valores das componentes k1 , k2 , yi , xi , i = 0, 1, 2, ....
Para i = 0, temos:
(0)
k1 = −x0 · y0 = −0 · 1 = 0
(0) (0)
k2 = −(x0 + 0.1)(y0 + 0.1 · k1 ) = −(0 + 0.1)(1 + 0.1 · 0) = −0.1000
0.1 ( (0) (0)
) 0.1
y1 = y0 + k1 + k2 =1+ (0 − 0.1000) = 0.9950
2 2
x1 = x0 + 0.1 = 0 + 0.1 = 0.1
Para i = 1, temos:
(1)
k1 = −x1 · y1 = −0.1 · 0.9950 = −0.0995
(1) (1)
k2 = −(x1 + 0.1)(y1 + 0.1 · k1 ) = −(0.1 + 0.1)[0.9950 + 0.1 · (−0.0995)] = −0.1970
0.1 ( (1) (1)
) 0.1
y2 = y1 + k1 + k2 = 0.9950 + (−0.0995 − 0.1970) = 0.9802
2 2
x2 = x1 + 0.1 = 0.1 + 0.1 = 0.2
b−a
x0 = a, y0 = y(x0 ), h =
n
i = 0, 1, 2, ..., n.
(i)
k1 = f (xi , yi )
( )
(i) h h (i)
k2 = f xi + , yi + k1
2 2
( )
(i) h h (i)
k3 = f xi + , yi + k2
2 2
( )
(i) (i)
k4 = f xi + h, yi + hk3
h ( (i) (i) (i) (i)
)
yi+1 = yi + k + 2k2 + 2k3 + k4
6 1
xi+1 = xi + h
Quando se pretende resolver a equação (1) através do método de RK4, com uma precisão
b−a
ε dada, o h pode ser calculado através da fórmula h = , onde o n é um número natural
n
escolhido de tal forma que h4 < ε. Deste modo, o número de subintervalos de [a, b] é estimado
através da seguinte relação:
b−a
n> √ .
4
ε
Resolução
Aplicando o algoritmo do método RK4, obtemos as seguintes fórmulas:
h
x0 = 0, y0 = 1, h = 0.1, = 0.05, f (x, y) = −xy .
2
(i)
k1 = f (xi , yi ) = −xi · yi
(i) (i)
k2 = −(xi + 0.05)(yi + 0.05 · k1 )
(i) (i)
k3 = −(xi + 0.05)(yi + 0.05 · k2 )
(i) (i)
k4 = −(xi + 0.1)(yi + 0.1 · k3 )
h ( (i) (i) (i) (i)
)
yi+1 = yi + · k1 + 2k2 + 2k3 + k4
6
xi+1 = xi + h.
7
Para i = 0, temos:
h
x0 = 0, y0 = 1, h = 0.1, = 0.05
2
(0)
k1 = −x0 · y0 = −0 · 1 = 0
(0) (0)
k2 = −(x0 + 0.05)(y0 + 0.05 · k1 ) = −(0 + 0.05)(1 + 0.05 · 0) = −0.05
(0) (0)
k3 = −(x0 + 0.05)(y0 + 0.05 · k2 ) = −(0 + 0.05)[1 + 0.05 · (−0.05)] = −0.0499
(0) (0)
k4 = −(x0 + 0.1)(y0 + 0.1 · k3 ) = −(0 + 0.1)[1 + 0.1 · (−0.0499)] = −0.0995
0.1 ( (0) (0) (0) (0)
) 0.1
y1 = y0 + · k1 + 2k2 + 2k3 + k4 = 1+ · [0 + 2 · (−0.05) + 2 · (−0.0499) − 0.0995]
6 6
=⇒ y1 = 0.9950
Para i = 1, temos:
(1)
k1 = −x1 · y1 = −0.1 · 0.9950 = −0.0995
(1) (1)
k2 = −(x1 + 0.05)(y1 + 0.05 · k1 ) = −(0.1 + 0.05)[1 + 0.05 · (−0.0995)] = −0.1485
(1) (1)
k3 = −(x1 + 0.05)(y1 + 0.05 · k2 ) = −(0.1 + 0.05)[0.9950 + 0.05 · (−0.1485)] = −0.1481
(1) (1)
k4 = −(x1 + 0.1)(y1 + 0.1 · k3 ) = −(0.1 + 0.1)[0.9950 + 0.1 · (−0.1481)] = −0.1960
0.1 ( (1) (1) (1) (1)
) 0.1
y2 = y1 + · k1 + 2k2 + 2k3 + k4 = 0.9950 + · [−0.0995 + 2 · (−0.1485) +
6 6
+ 2 · (−0.1481) − 0.1960] = 0.9802
Para verificar o alto grau de exactidão dos métodos de Runge-Kutta, neste caso em que a
equação diferencial considerada é muito simples, podemos comparar a solução exacta determi-
8
nada no exemplo 1 com as obtidas através destes métodos (RK2 e RK4) nos exemplos 2 e 3
(compare a quarta coluna da tabela 2 do exemplo 1 com a terceira coluna das tabelas 3 e 4 dos
exemplos 2 e 3, respectivamente).
Resolução
f (x, y) = e−x · cos(x + y)
x0 = 2, 15; y0 = 1, 4828
h
h = 0, 15; = 0, 0750
2
Determinemos as fórmulas para determinar yi
( )
h h (i)
= e−xi +0,0750 · cos(xi + 0, 0750 + yi + 0, 0750 · k1 )
(i) (i)
k2 = f xi + , yi + k1
2 2
( )
h h (i)
= e−xi +0,0750 · cos(xi + 0, 0750 + yi + 0, 0750 · k2 )
(i) (i)
k3 = f xi + , yi + k2
2 2
( )
k4 = f xi + h, yi + hk3 = e−xi +0,15 · cos(xi + 0, 15 + yi + 0, 15 · k3 )
(i) (i) (i)
h ( )
(i) (i) (i) (i)
yi+1 = yi + (k1 + 2k2 + 2k3 + k4 ) = yi + 0, 0250 · k1 + 2k2 + 2k3 + k4
6
xi+1 = xi + h, i = 0, 1, 2, ...
(1)
k1 = e−x1 · cos(x1 + y1 )
k2 = e−x1 +0,0750 · cos(x1 + 0, 0750 + y1 + 0, 0750 · k1 )
(1) (1)
k (1) = e−x1 +0,0750 · cos(x + 0, 0750 + y + 0, 0750 · k (1) )
3 1 1 2
Para i = 1=⇒ (1) −x1 +0,15 (1) ⇐⇒
k4 = e · cos(x
( 1 + 0, 15 + y1 + 0, 15 · k)3 )
(1) (1)
y2 = y1 + 0, 0250 · k1 + 2k2 + 2k3 + k4
(1) (1)
x2 = x1 + h
(1)
k1 = e−2,3000 · cos(2, 3000 + 1, 4690) = −0, 0812
k2 = e−2,3000+0,0750 · cos(2, 3000 + 0, 0750 + 1, 4690 + 0, 0750 · (−0, 0812)) = −0, 0714
(1)
(1)
⇐⇒ k3 = e−2,3000+0,0750 · cos(2, 3000 + 0, 0750 + 1, 4690 + 0, 0750 · (−0, 0714)) = −0, 0713
k4 = e−2,3000+0,15 · cos(2, 3000 + 0, 15 + 1, 4690 + 0, 15 · (−0, 0713)) = −0, 0621
(1)
y = y1 + 0, 0250 · (−0, 0812 + 2(−0, 0714) + 2(−0, 0713) − 0, 0621) = 1, 4583
2
x2 = 2, 3000 + 0, 15 = 2, 4500