Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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)
&= 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)
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
= 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.
y = y(x)
Valor exato
y y
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 )
(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
4 5 6 7 8 9 10
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
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
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
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
y = y(x)
1 Condio de contorno
x0
x1
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)
(10)
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
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
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
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).
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:
10
pi +1 = pi +
h (k1 + k 2 ) 2
(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
-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.
11
-5
5 t
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)')
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
13