Você está na página 1de 13

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: dC A (1) Reao qumica de 1a ordem A = kC A , na qual CA a B , descrita pela equao dt 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 dQ C pela equao V0 = R + , para a qual V0 a tenso contnua de alimentao do circuito, dt Q dQ R a resistncia, C a capacitncia, Q a carga eltrica acumulada no capacitor e i = a dt corrente do circuito. dT & = kA (3) Conduo de calor num material slido, descrito pela equao de Fourier q , na qual dx & o fluxo trmico, k a condutividade trmica, A a rea de seco transversal ao fluxo q trmico, T a temperatura e x a coordenada espacial na direo do fluxo de calor. (4) Pndulo simples, descrito pela equao

d 2
2

dt 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 y + x 2 = 0 uma equao diferencial de 1o grau porque a derivada y de 1a ordem. J a equao diferencial y 2 xy + 5 y + y x + 8 = 0 uma equao diferencial de 3o grau porque o termo de derivada de maior ordem de 3a 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.

g sen , na qual o ngulo formado pelo l

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

y ( n ) = f ( x , y , y , y ,K , y ( n1 ) )
sendo que y ( n )

(1)

dny dx n

empregando a notao de Leibniz.

Equaes Diferenciais Ordinrias

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

y =

dy = f ( x, y) dx

(2)

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

&= y

dy = f ( y, t ) dt

(3)

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

que pode ser integrada diretamente como:


y=

f ( x ) dx + C

(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 0 , y 0 ) = C0

(6)

Se y = y(x) uma soluo, ento dy/dx = f(x,y) e y0 = y(x0) 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 1a 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 = Ce 0 = 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 = ex
Exemplo 2 Seja a E.D.O. de 1o grau, y' = x + y, cuja soluo analtica, obtida pelo Mtodo dos Fatores Integrantes1, expressa por: y(x) = Cex - 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

= 1, vem que y(0) = C - 1 = 1. Portanto, C = 2, que substituindo na soluo geral, resulta a soluo particular: y(x) = 2ex - 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 1a ordem, isto , ele aproxima a soluo da E.D.O. de 1o grau y(x) = y(x) por uma funo de 1o 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 = x0 at o valor de x para o qual desejase obter a soluo da E.D.O.

Soluo exata da E.D.O.

y = y(x)

Valor exato

y y

Aproximao de y(x) pelo mtodo de Euler (aproximao linear)

1 Condio de contorno Valor aproximado pelo mtodo de Euler

x0

x1

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 1o grau pelo Mtodo de Euler expressa por:
yi +1 = yi + hf ( xi , yi )

(7)

para a qual

h = x i +1 x i

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: yi +1 = yi + h.( xi + yi )

Equaes Diferenciais Ordinrias

(a) h = 1
i=0 x1 = x0 + h = 0 + 1 = 1 y1 = y0 + h.(x0 + y0) = 1 + 1.(0 + 1) = 2 x2 = x1 + h = 1 + 1 = 2 y2 = y1 + h.(x1 + y1) = 2 + 1.(1 + 2) = 5 x3 = x2 + h = 2 + 1 = 3 y3 = y2 + h.(x2 + y2) = 5 + 1.(2 + 5) = 12 x4 = x3 + h = 3 + 1 = 4 y4 = y3 + h.(x3 + y3) = 12 + 1.(3 + 12) = 27 x5 = x4 + h = 4 + 1 = 5 y5 = y4 + h.(x4 + y4) = 27 + 1.(4 + 27) = 58

i=1

i=2

i=3

i=4

300

250

Exato Euler

200

y = y(x)

150

100

50

0.5

1.5

2.5 x

3.5

4.5

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
0 1 2 3

xi
0 0,5 1,0 1,5

yi
1,0 1,5 2,5 4,25

f(xi,yi)
1,0 2,0 3,5 5,75

xi+1
0,5 1,0 1,5 2,0

yi+1
1,5 2,5 4,25 7,125

Equaes Diferenciais Ordinrias

4 5 6 7 8 9 10

2,0 2,5 3,0 3,5 4,0 4,5 5,0

7,125 11,6875 18,7813 29,6719 46,2578 71,3867 109,3301

9,125 14,1875 21,7813 33,1719 50,2578 75,8867

2,5 3,0 3,5 4,0 4,5 5,0

11,6875 18,7813 29,6719 46,2578 71,3867 109,3301

300

250

Exato Euler

200

y = y(x)

150

100

50

0.5

1.5

2.5 x

3.5

4.5

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

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 :
yi +1 = yi + h. yi

(a) h = 0,5

i
0 1 2

xi
1,0 1,5 2,0

yi
1,0 1,5 2,25

yi+1
1,5 2,25

(b) h = 0,25

i
0 1 2 3 4

xi
1,0 1,25 1,5 1,75 2,0

yi
1,0 1,25 1,5625 1,9531 2,4414

yi+1
1,25 1,5625 1,9531 2,4414

(c) A soluo analtica dada por:


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

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


y = Ce x

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


y (1) = 1 1 = Ce1 C = e 1

que, substituindo na soluo analtica geral, resultar na expresso: y = e x 1 como soluo analtica particular do problema. Calculando-se a soluo exata em x = 2, obtm-se y(2) = e2-1 = e1 = 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 6

Mtodo de Euler Modificado


Como o mtodo de Euler baseia-se no clculo da soluo pela aproximao de uma reta tangente traada em x0 para avaliar a soluo em x1, o Mtodo de Euler Modificado apresenta uma correo na estimativa da soluo em x1 calculando o valor de y1 e fazendo a mdia com o valor y0. Generalizando para o clculo do valor estimado yi +1 , toma-se a mdia entre as inclinaes das retas tangentes em xi e xi+1:
f medio ( xi , yi ) =

1 [ f (xi , yi ) + f (xi +1 , yi +1 )] 2

(8)

na qual o argumento yi +1 = yi + h.f(xi,yi) do segundo termo de (8) obtido a partir da soluo do mtodo de Euler. Substituindo o coeficiente angular mdio fmedio(xi,yi) substitudo em (7):
yi +1 = yi + h [ f ( xi , yi ) + f ( xi + h, yi +1 ] 2

(9)

y
Inclinao de y(x) em x1: correo do mtodo de Euler

Soluo exata da E.D.O.

y = y(x)

Soluo em x1 pelo mtodo de Euler Modificado

Inclinao de y(x) em x0 pelo mtodo de Euler

1 Condio de contorno

0 Retas de coeficiente angular fmedio

x0

x1

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 2a e 4a ordem. No caso do Mtodo de Runge-Kutta de 2a ordem, a expresso para o clculo aproximado de yi+1 equivalente do Mtodo de Euler Modificado, ou seja,
yi +1 = yi + h [ f ( xi , yi ) + f ( xi + h, yi +1 ] 2

(9)

que pode ser re-escrito na forma:

Equaes Diferenciais Ordinrias

h (k1 + k 2 ) 2 k1 = f ( xi , yi ) k 2 = f ( xi + h , yi + hk1 ) yi +1 = yi + A frmula do Mtodo de Runge-Kutta de 4a ordem dada por:

(10)

h (k1 + 2k 2 + 2k 3 + k 4 ) 6 k1 = f ( x i , y i ) y i +1 = y i + k 2 = f ( xi + h / 2, yi + hk1 / 2) k 3 = f ( xi + h / 2, y i + hk 2 / 2) k 4 = f ( xi + h, yi + hk 3 ) (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.

300

250

Exato RK 2a ordem RK 4a ordem

200

y = y(x)

150

100

50

0.5

1.5

2.5 x

3.5

4.5

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

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) que pode ser escrita como o sistema: y = z z = f (x , y , z ) (13) (12)

Para a qual definiu-se uma varivel auxiliar z. Para o sistema de E.D.O. de 1 ordem (13), devese aplicar as condies de contorno para cada E.D.O. de 1 ordem: y(z0) = y0 e z(x0) = z0. 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

m mg

Fig. 6 Pndulo simples. A equao diferencial ordinria que descreve o movimento angular do pndulo obtida a partir das leis de Newton:

r r F = ma
d 2 ml 2 = mg sen dt

(14) (15)

&& = sen

g l

(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 2a ordem, precisamos convertla em um sistema de E.D.O. de 1a ordem, aplicando as seguintes transformaes: g & = d p p & = sen dt l de modo a obter o sistema de E.D.O. de 1a ordem: dp g = sen dt l d =p dt (17)

(18)

com as condies iniciais: (0) = 0 e p(0) = p0 . 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

10

pi +1 = pi +

h (k1 + k 2 ) 2

g g k1 = seni , k 2 = seni l l i +1 = i + onde: h (k1 + k 2 ) 2 k1 = pi , k 2 = pi


h = t

(19)

(20)

(21)

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

10

p(t) = dq/dt (rad/s)

-5

-10

5 t

10

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

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

11

p(t) = dq/dt (rad/s)

-5

5 t

10

1.5 1 q(t) (radianos) 0.5 0 -0.5 -1 -1.5 0 1 2 3 4 5 t 6 7 8 9 10

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

12

Exerccios
1. Calcular a soluo das seguintes E.D.O. de 1o grau nos valores indicados, utilizando o mtodo de Euler e compare com a soluo exata partir da soluo analtica: (a) y + 2y = x2, y(0) = 0,25, y(2) h = 0,5 e h = 0,25 x2 x Soluo analtica: y = +C 2 2 (b) y + y = sen x, y(0) = -0,5, y(2) h = 1,0 e h = 0,5 Soluo analtica: y = C (sen x cos x) (c) y + 2y = x, y(0) = 1, y(3) h = 1 e h = 0,5 x 1 Soluo analtica: y = + Ce 2 x 2 4

Equaes Diferenciais Ordinrias

13

Você também pode gostar