You are on page 1of 13

Equaes Diferenciais Ordinrias 1

Mtodos Numricos para Equaes Diferenciais Ordinrias




Introduo

Diversos problemas tcnicos e cientficos so descritos matematicamente por equaes
diferenciais que representam variaes das quantidades fsicas que os descrevem. Alguns
exemplos de equaes diferenciais so:
(1) Reao qumica de 1
a
ordem B A

, descrita pela equao


A
A
kC
dt
dC
= , na qual C
A
a
concentrao do reagente A, k a constante da reao e t o tempo decorrido desde o incio da
reao.
(2) Descarga de um circuito eltrico contendo uma resistor em srie com um capacitor, descrito
pela equao
Q
C
dt
dQ
R V + =
0
, para a qual V
0
a tenso contnua de alimentao do circuito,
R a resistncia, C a capacitncia, Q a carga eltrica acumulada no capacitor e
dt
dQ
i = a
corrente do circuito.
(3) Conduo de calor num material slido, descrito pela equao de Fourier
dx
dT
kA q = & , na qual
q& o fluxo trmico, k a condutividade trmica, A a rea de seco transversal ao fluxo
trmico, T a temperatura e x a coordenada espacial na direo do fluxo de calor.
(4) Pndulo simples, descrito pela equao =

sen
g
dt
d
l
2
2
, na qual o ngulo formado pelo
pndulo em relao ao eixo vertical, g a acelerao da gravidade, l o comprimento do
pndulo e t o tempo.

Dos exemplos citados, vemos que o grau (ou ordem) de uma equao diferencial pode
variar. O grau de uma equao diferencial definido pelo termo da equao que contm a
derivada de maior ordem. Por exemplo, a seguinte equao diferencial 0 2 = +x y uma
equao diferencial de 1
o
grau porque a derivada y de 1
a
ordem. J a equao diferencial
0 8 5 2 = + + + x y y y x y uma equao diferencial de 3
o
grau porque o termo de derivada
de maior ordem de 3
a
ordem. Se a soluo de uma equao diferencial y for uma funo de uma
nica varivel x, isto , se y = y(x), ento a equao diferencial chamada de equao diferencial
ordinria.

Definio

Uma equao diferencial ordinria de grau n uma equao que pode ser descrita na
forma geral como:

) y , , y , y , y , x ( f y
) n ( ) n ( 1
= K (1)

sendo que
n
n
) n (
dx
y d
y empregando a notao de Leibniz.

Equaes Diferenciais Ordinrias 2
Uma equao diferencial ordinria (E.D.O.) de 1
a
ordem para duas variveis x e y
definida como uma equao da forma espacial:

= = y
dy
dx
f x y ( , ) (2)

ou para duas variveis y e t, na forma temporal como:

& ( , ) y
dy
dt
f y t = = (3)

No caso particular, f(x,y) = f(x), podemos obter a soluo geral para E.D.O. de 1
a
ordem
(2) por separao de variveis:

dx ) x ( f dy ) x ( f
dx
dy
y = = = (4)

que pode ser integrada diretamente como:

+ = C dx ) x ( f y (5)

onde C a constante de integrao. Para obtermos uma soluo particular (ou seja, um valor
especfico para a constante C), necessrio fornecer a condio de contorno para a equao (2):

f x y C ( , )
0 0 0
= (6)

Se y = y(x) uma soluo, ento dy/dx = f(x,y) e y
0
= y(x
0
) a condio de contorno da
equao (2).
Se considerarmos a E.D.O. (3) na qual a varivel t representa o tempo, ento a condio
para obteno de uma soluo particular de (3) chamada condio inicial (anloga condio
de contorno, somente que esta se aplica a problemas envolvendo apenas coordenadas espaciais).

Exemplo 1
Seja a E.D.O. de 1
a
ordem: y y = , cuja soluo analtica geral expressa por y Ce
x
= . Se
impusermos como condio de contorno y(0) = 1, isto , em x = 0, y = 1 e substituirmos na
soluo geral, vem que, 1
0
= = Ce C.
Portanto, a soluo particular da E.D.O. y = y obtida substituindo-se o valor da constante de
integrao C calculada da condio de contorno y(0) = 1, resultando:

y e
x
=

Exemplo 2
Seja a E.D.O. de 1
o
grau, y' = x + y, cuja soluo analtica, obtida pelo Mtodo dos
Fatores Integrantes
1
, expressa por: y(x) = Ce
x
- x - 1. Se adotarmos a condio de contorno y(0)

1
Matemtica Superior, E. Kreyszig, Livros Tcnicos e Cientficos, Rio de Janeiro,1969, p.69.

Equaes Diferenciais Ordinrias 3
= 1, vem que y(0) = C - 1 = 1. Portanto, C = 2, que substituindo na soluo geral, resulta a
soluo particular: y(x) = 2e
x
- x - 1.
importante salientar que a soluo geral representa uma famlia de solues (isto , um
conjunto infinito de solues) e que a soluo particular representa uma soluo nica. Como
nos mtodos numricos pressupe-se que a soluo do problema seja nica, isto ir requerer na
descrio do problema a especificao da condio de contorno juntamente com a equao
diferencial.


Mtodo de Euler

O Mtodo de Euler um mtodo aproximado de 1
a
ordem, isto , ele aproxima a soluo
da E.D.O. de 1
o
grau y(x) = y(x) por uma funo de 1
o
grau, isto , por uma reta. A Fig. 1 ilustra a
aproximao da soluo exata y = y(x) por uma soluo aproximada y , obtida pelo
prolongamento da reta tangente curva de y = y(x) em x = x
0
at o valor de x para o qual deseja-
se obter a soluo da E.D.O.

y
x
y = y(x)
Soluo exata da E.D.O.
x
y
0
0
Condio de
contorno
x
1
y
1
y
1
Valor exato
Valor
aproximado
pelo mtodo de
Euler
Aproximao de y(x)
pelo mtodo de
Euler (aproximao
linear)

Fig. 1 Soluo grfica da E.D.O. pelo mtodo de Euler.

A equao genrica para o clculo da soluo de uma E.D.O. de 1
o
grau pelo Mtodo de
Euler expressa por:

y y hf x y
i i i i +
= +
1
( , ) (7)
para a qual
h x x
i i
=
+1


Exemplo 1
Seja a E.D.O. y = x + y, com a condio de contorno y(0) = 1. A soluo da E.D.O. empregando
o mtodo de Euler ser calculada no intervalo [0; 5].
A equao do mtodo de Euler para a E.D.O. deste exemplo tem a forma:
( )
i i i i
y x . h y y + + =
+1


Equaes Diferenciais Ordinrias 4
(a) h = 1

i = 0 x
1
= x
0
+ h = 0 + 1 = 1
y
1
= y
0
+ h.(x
0
+ y
0
) = 1 + 1.(0 + 1) = 2

i = 1 x
2
= x
1
+ h = 1 + 1 = 2
y
2
= y
1
+ h.(x
1
+ y
1
) = 2 + 1.(1 + 2) = 5

i = 2 x
3
= x
2
+ h = 2 + 1 = 3
y
3
= y
2
+ h.(x
2
+ y
2
) = 5 + 1.(2 + 5) = 12

i = 3 x
4
= x
3
+ h = 3 + 1 = 4
y
4
= y
3
+ h.(x
3
+ y
3
) = 12 + 1.(3 + 12) = 27

i = 4 x
5
= x
4
+ h = 4 + 1 = 5
y
5
= y
4
+ h.(x
4
+ y
4
) = 27 + 1.(4 + 27) = 58

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
50
100
150
200
250
300
x
y

=

y
(
x
)
Exato
Euler

Fig. 2 Grfico comparativo entre a soluo exata e a soluo pelo mtodo de Euler (h = 1)


Clculo com h = 0,5.
(b) h = 0,5
Os resultados esto apresentados na tabela seguinte.

i x
i
y
i
f(x
i
,y
i
) x
i+1
y
i+1
0 0 1,0 1,0 0,5 1,5
1 0,5 1,5 2,0 1,0 2,5
2 1,0 2,5 3,5 1,5 4,25
3 1,5 4,25 5,75 2,0 7,125

Equaes Diferenciais Ordinrias 5
4 2,0 7,125 9,125 2,5 11,6875
5 2,5 11,6875 14,1875 3,0 18,7813
6 3,0 18,7813 21,7813 3,5 29,6719
7 3,5 29,6719 33,1719 4,0 46,2578
8 4,0 46,2578 50,2578 4,5 71,3867
9 4,5 71,3867 75,8867 5,0 109,3301
10 5,0 109,3301

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
50
100
150
200
250
300
x
y

=

y
(
x
)
Exato
Euler

Fig. 3 Grfico comparativo entre a soluo exata e a soluo pelo mtodo de Euler (h = 0,5)

Programa Matlab

% euler1 Programa para o calculo da E.D.O. y' = x + y
% Metodo de Euler
% Condicao de contorno: y(0) = 1

clear;
% Condicao de contorno
x(1) = 0;
y(1) = 1;
n = input('Numero de intervalos: ');
xf = input('Valor de x final: ');
h = (xf - x(1))/n;
for i = 1:n
f(i) = x(i) + y(i);
x(i+1) = x(i) + h;
y(i+1) = y(i) + h*f(i);
end
% Calculo da solucao exata
xe = 0:0.1:xf;
ye = 2*exp(xe) - xe - 1;
% Grafico comparativo: solucao pelo metodo de Euler e a solucao exata
plot(xe,ye,'-r',x,y,'ob');
xlabel('x'); ylabel('y = y(x)');
legend('Exato','Euler'); shg

Equaes Diferenciais Ordinrias 6

Exemplo 2
Seja a E.D.O. y = -ky, com a condio de contorno y(1) = 1. Calcular a soluo da E.D.O.
empregando o mtodo de Euler em x = 2, para h = 0,5 e h = 0,25.
Neste exemplo, por questo de convenincia, vamos realizar os clculos numa tabela que
sumariza os resultados.
A equao do mtodo de Euler para a E.D.O. y = y :

i i i
y h y y .
1
+ =
+


(a) h = 0,5

i x
i
y
i
y
i+1
0 1,0 1,0 1,5
1 1,5 1,5 2,25
2 2,0 2,25

(b) h = 0,25

i x
i
y
i
y
i+1
0 1,0 1,0 1,25
1 1,25 1,25 1,5625
2 1,5 1,5625 1,9531
3 1,75 1,9531 2,4414
4 2,0 2,4414

(c) A soluo analtica dada por:


+ = = = C x y dx
y
dy
y
dx
dy
ln

Reescrevendo a soluo analtica na forma y = f(x), resulta:

x
Ce y =

A constante de integrao C calculada a partir da condio de contorno do problema:

1 1
1 1 ) 1 (

= = = e C Ce y

que, substituindo na soluo analtica geral, resultar na expresso:
1
=
x
e y como soluo
analtica particular do problema.
Calculando-se a soluo exata em x = 2, obtm-se y(2) = e
2-1
= e
1
= 2,7183. Comparando-se o
resultado exato com os resultados aproximados de (a) e (b), resulta:
h = 0,5 erro = 2,7183 2,25 = 0,47
h = 0,25 erro = 2,7183 2,4414 = 0,28
o que corresponde a uma reduo de 1,7 vezes no erro quando o intervalo h reduzido pela
metade.

Equaes Diferenciais Ordinrias 7
Mtodo de Euler Modificado

Como o mtodo de Euler baseia-se no clculo da soluo pela aproximao de uma reta
tangente traada em x
0
para avaliar a soluo em x
1
, o Mtodo de Euler Modificado apresenta
uma correo na estimativa da soluo em x
1
calculando o valor de
1
y e fazendo a mdia com o
valor y
0
. Generalizando para o clculo do valor estimado y
i+1
, toma-se a mdia entre as
inclinaes das retas tangentes em x
i
e x
i+1
:

( ) ( ) ( ) [ ]
1 1
2
1
+ +
+ =
i i i i i i medio
y , x f y , x f y , x f (8)

na qual o argumento y
i+1
= y
i
+ h.f(x
i
,y
i
) do segundo termo de (8) obtido a partir da soluo do
mtodo de Euler. Substituindo o coeficiente angular mdio f
medio
(x
i
,y
i
) substitudo em (7):

[ ]
y y
h
f x y f x h y
i i i i i i + +
= + + +
1 1
2
( , ) ( , (9)

y
x
y = y(x)
Soluo exata da E.D.O.
x
y
0
0
Condio de
contorno
x
1
y
1
y
1
Inclinao de y(x)
em x
1
: correo do
mtodo de Euler
Soluo em x
1
pelo mtodo de
Euler Modificado
Inclinao de y(x)
em x
0
pelo mtodo
de Euler
Retas de coeficiente
angular f
medio

Fig. 4 Soluo grfica da E.D.O. pelo mtodo de Euler Modificado.


Mtodos de Runge-Kutta

Os Mtodos de Runge-Kutta consistem em mtodos preditores-corretores de 2
a
e 4
a

ordem. No caso do Mtodo de Runge-Kutta de 2
a
ordem, a expresso para o clculo aproximado
de y
i+1
equivalente do Mtodo de Euler Modificado, ou seja,

[ ]
y y
h
f x y f x h y
i i i i i i + +
= + + +
1 1
2
( , ) ( , (9)

que pode ser re-escrito na forma:


Equaes Diferenciais Ordinrias 8
( )
) hk y , h x ( f k ) y , x ( f k
k k
h
y y
i i i i
i i
1 2 1
2 1 1
2
+ + = =
+ + =
+
(10)

A frmula do Mtodo de Runge-Kutta de 4
a
ordem dada por:

( )
) , (
) 2 / , 2 / (
) 2 / , 2 / (
) , (
2 2
6
3 4
2 3
1 2
1
4 3 2 1 1
hk y h x f k
hk y h x f k
hk y h x f k
y x f k
k k k k
h
y y
i i
i i
i i
i i
i i
+ + =
+ + =
+ + =
=
+ + + + =
+
(11)

Exemplo
Recalculando a soluo da E.D.O. y = x + y, com a condio de contorno y(0) = 1 no intervalo
[0; 5] utilizando os mtodos de Runge-Kutta de 2 e 4 ordem com h = 1, obtm-se o grfico
mostrado na Fig. 5.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
50
100
150
200
250
300
x
y

=

y
(
x
)
Exato
RK 2a ordem
RK 4a ordem

Fig. 5 Grfico comparativo entre a soluo exata e as solues pelos mtodos de Runge-Kutta de
2 e 4 ordem (h = 1,0). Observar que a soluo aproximada pelo mtodo de 4 ordem uma
soluo bastante prxima exata.


Programa Matlab

% rungekutta Programa para o calculo da E.D.O. y' = x + y
% pelos metodos de Runge-Kutta de 2a e 4a ordem
% Condicao de contorno: y(0) = 1
% Solucao analitica: y(x) = 2 exp(x) - x - 1


Equaes Diferenciais Ordinrias 9
clear;
x(1) = 0; % valor inicial
y2(1) = 1; % condicao de contorno (Runge-Kutta de 2a ordem)
y4(1) = 1; % condicao de contorno (Runge-Kutta de 4a ordem)
h = input('Incremento h: ');
xf = input('Valor final de x: ');
n = floor((xf - x(1)) / h + 1); % Numero de intervalos
for i = 1:n-1
x(i+1) = x(i) + h;
% Metodo de Runge-Kutta de 2a ordem
k12 = x(i) + y2(i);
k22 = x(i) + h + (y2(i) + h*k12);
y2(i+1) = y2(i) + h/2*(k12 + k22);
% Metodo de Runghe-Kutta de 4a ordem
k14 = x(i) + y4(i);
k24 = x(i) + h/2 + (y4(i) + h*k14/2);
k34 = x(i) + h/2 + (y4(i) + h*k24/2);
k44 = x(i) + h + (y4(i) + h*k34);
y4(i+1) = y4(i) + h/6*(k14 + 2*k24 + 2*k34 + k44);
end
% Solucao exata
xe = 0:0.1:xf;
ye = 2*exp(xe) - xe - 1;
% Grafico: solucoes pelos metodos de Runge-Kutta e solucao exata
plot(x,y2,'sr',x,y4,'ob',xe,ye,'-k');
xlabel('x'); ylabel('y = y(x)');
legend('Exato','RK 2a ordem','RK 4a ordem'); shg


Equaes Diferenciais Ordinrias de 2 Ordem

Os mtodos numricos vistos at aqui se aplicam somente soluo de E.D.O. de 1
ordem. Entretanto, uma E.D.O. de 2 ordem pode ser escrita como um sistema de duas E.D.O. de
1 ordem. Assim, pode-se utilizar os mtodos de Runge-Kutta na soluo de E.D.O. de 2 ordem
e ordem superior.
Considerando a E.D.O. genrica de 2 ordem,

y = f (x,y,y) (12)

que pode ser escrita como o sistema:

( ) z , y , x f z
z y
=
=
(13)

Para a qual definiu-se uma varivel auxiliar z. Para o sistema de E.D.O. de 1 ordem (13), deve-
se aplicar as condies de contorno para cada E.D.O. de 1 ordem: y(z
0
) = y
0
e z(x
0
) = z
0
.
Observar que esta segunda condio de contorno se refere condio de contorno da derivada da
varivel y = y(x).

Exemplo aplicado: Pndulo simples.

Considere o pndulo simples mostrado na Fig. 6.


Equaes Diferenciais Ordinrias 10

l
mg
m


Fig. 6 Pndulo simples.

A equao diferencial ordinria que descreve o movimento angular do pndulo obtida
a partir das leis de Newton:

a m F
r
r
= (14)

sen
2
2
mg
dt
d
m = l (15)

sen
l
& &
g
= (16)

A condio inicial (condio de contorno) do problema
0
) 0 ( = (ngulo inicial do
pndulo). Vamos calcular agora a soluo da E.D.O. de 2 ordem (16) atravs do Mtodo de
Runge-Kutta de 2 ordem. Como a equao (16) uma E.D.O. de 2
a
ordem, precisamos convert-
la em um sistema de E.D.O. de 1
a
ordem, aplicando as seguintes transformaes:

=

= sen
g
p p
dt
d
l
&
&


de modo a obter o sistema de E.D.O. de 1
a
ordem:

sen
l
g
dt
dp
= (17)

p
dt
d
=

(18)

com as condies iniciais:
0
) 0 ( = e
0
) 0 ( p p = .
Para resolver este sistema de equaes, calculamos a soluo da equao (17) para obter o
valor da varivel p, e a equao (18) para obter a soluo em cada intervalo de tempo t.
Aplicando o Mtodo de Runge-Kutta nas equaes (17) e (18), resulta, respectivamente,
em:

Equaes Diferenciais Ordinrias 11
( )
i i
i i
sen
g
k , sen
g
k
k k
h
p p
= =
+ + =
+
l l
2 1
2 1 1
2
(19)

( )
i i
i i
p k , p k
k k
h
= =
+ + =
+
2 1
2 1 1
2 (20)
onde:
t h = (21)

Consideremos os seguintes valores numricos: g = 9,8 m/s
2
, l = 0,5 m, (0) = 60 e p(0) = d/dt
= 0 (velocidade inicial).

0 1 2 3 4 5 6 7 8 9 10
-10
-5
0
5
10
t
p
(
t
)

=

d
q
/
d
t

(
r
a
d
/
s
)
0 1 2 3 4 5 6 7 8 9 10
-3
-2
-1
0
1
2
3
t
q
(
t
)

(
r
a
d
i
a
n
o
s
)

Fig. 7. Grfico da velocidade angular p = d/dt e do deslocamento angular versus tempo
usando o Mtodo de Runge-Kutta de 2 ordem (h = t = 0,01 s). Observe a instabilidade da
soluo para valores crescentes de tempo.


Equaes Diferenciais Ordinrias 12
0 1 2 3 4 5 6 7 8 9 10
-5
0
5
t
p
(
t
)

=

d
q
/
d
t

(
r
a
d
/
s
)
0 1 2 3 4 5 6 7 8 9 10
-1.5
-1
-0.5
0
0.5
1
1.5
t
q
(
t
)

(
r
a
d
i
a
n
o
s
)

Fig. 8. Grfico da velocidade angular p = d/dt e do deslocamento angular versus tempo
usando o Mtodo de Runge-Kutta de 2 ordem (h = t = 0,001 s). Observe que esta soluo
estvel e no apresenta instabilidade na resposta para tempos crescentes.


Programa Matlab

% PENDULO Calculo da E.D.O. de 2a. ordem do pendulo simples
% Metodo de Runge-Kutta de 2a ordem
% Condicoes de contorno: p(0) = 0, q(0) = 60

clear;
t(1) = 0;
p(1) = 0;
q(1) = 60; q(1) = q(1)*pi/180; % Conversao de angulo de graus para radianos
g = 9.81; % Aceleracao da gravidade
L = 0.5; % Comprimento do pendulo
h = input('Incremento h: ');
tf = input('Valor final de t: ');
n = floor((tf - t(1)) / h + 1); % Numero de intervalos
for i = 1:n-1
t(i+1) = t(i) + h;
% Metodo de Runghe-Kutta de 2a ordem
% Calculo de p(t)
k11 = -g/L*sin(q(i));
k21 = -g/L*sin(q(i));
p(i+1) = p(i) + h/2*(k11 + k21);
% Calculo de q(t)
k12 = p(i);
k22 = p(i);
q(i+1) = q(i) + h/2*(k12 + k22);
end
% Graficos das solucoes de p(t) e q(t)
figure(2); clf;
subplot(2,1,1)
plot(t,p); xlabel('t'); ylabel('p(t) = dq/dt (rad/s)')
subplot(2,1,2)
plot(t,q); xlabel('t'); ylabel('q(t) (radianos)')

Equaes Diferenciais Ordinrias 13
Exerccios

1. Calcular a soluo das seguintes E.D.O. de 1
o
grau nos valores indicados, utilizando o mtodo
de Euler e compare com a soluo exata partir da soluo analtica:

(a) y + 2y = x
2
, y(0) = 0,25, y(2)
h = 0,5 e h = 0,25
Soluo analtica: C
x x
y + =
2 2
2


(b) y + y = sen x, y(0) = -0,5, y(2)
h = 1,0 e h = 0,5
Soluo analtica: ) cos (sen x x C y =

(c) y + 2y = x, y(0) = 1, y(3)
h = 1 e h = 0,5
Soluo analtica:
x
Ce
x
y
2
4
1
2

+ =

You might also like