Prévia do material em texto
Solução numérica de equações diferenciais ordinárias Problema de valor inicial (PVI) Uma equação diferencial ordinária é uma equação que envolve uma função incógnita y e algumas das suas derivadas avaliadas numa variável independente t : ))(,...),(''),('),(,()( )1()( tytytytytfty nn Nas ciências aplicadas, utilizam-se equações diferenciais para descrever o comportamento dinâmico de sistemas físicos; por exemplo, de circuitos. Introdução yt dt dy y é função de t e t é a única variável independente. Exemplo Exemplo 21)ln( ctcydt y dy dt y dy y dt dy .ctct eeey :obtemos , Tomando cek .)( tkety y dt dy Resolva a equação diferencial analiticamente. ,)ln( cty uma constante. c A solução da equação diferencial resulta numa família de curvas que dependem da constante k, como pode ser visto na figura abaixo. Uma solução particular pode ser obtida a partir das condições iniciais do problema. A especificação de uma condição inicial define uma solução entre a família de curvas. tkety )( No exemplo anterior, especificando uma condição inicial: 1)0(y y dt dy obtemos a solução .)( tety Certas equações diferenciais podem ser resolvidas analiticamente, como foi o caso no exemplo anterior. No entanto, isto nem sempre é possível e então temos que recorrer a um método numérico. O teorema seguinte fornece uma condição suficiente para a existência de uma única solução de um problema de valor inicial. Teorema Considere o problema de condição inicial: ].,[, )( ),()(' bat ay ytfty Seja e contínua em Se existir L > 0 tal que Lyt y f ),( para qualquer , então o problema tem uma solução única para Dyt , .],[ bat ybtaRytD ,:, 2 f .D )(ty O método de Picard aproxima a solução do problema de valores iniciais ],[, )( ),()(' 00 bat yty ytfty por outra função , recorrendo ao método iterativo ,...2,1,0,, 0 01 idxxyxfyty t t ii tyn )(ty Método de Picard Se forem satisfeitas as condições do teorema anterior então, quando tende para a solução do problema. Uma estimativa do erro absoluto da aproximação pode ser obtida por: )()( 1 tyty nn ty tyn ,n tyn Exemplo Considere o problema de valor inicial 1)0( 3)(' y ytty 1. Encontre uma aproximação do problema, utilizando o método de Picard. 2. Indique uma estimativa do erro absoluto da aproximação anterior, em ty3 ttdxxdxxfdxxyxfyty ttt 2 000 001 2 3 11311,1, 32 0 2 0 102 2 1 21 2 3 131, tttdxxxxdxxyxfyty tt 432 0 32 0 203 8 1 3 2 21 2 1 2131, ttttdxxxxxdxxyxfyty tt .1t O erro em pode ser estimado por .291666667.05.479166667.411 23 yy 1t Os métodos numéricos seguintes não determinam a expressão literal da solução y(t) do problema de valor inicial (PVI) , mas sim uma solução aproximada num conjunto discreto de pontos. Nos problemas das ciências aplicadas, estuda-se o comportamento dinâmico de determinadas variáveis, portanto necessita-se da evolução das variáveis em função da variável independente. A partir dos dados numéricos é possível gerar um esboço do gráfico da função incógnita. Considere a EDO de primeira ordem com condição inicial : ];,[, )( ),(' 00 bat yty ytfty Métodos de passo simples • métodos da série de Taylor • métodos de Runge-Kutta y t y(t1) t0 = a t1 t2 t3 tn = b y(t3) y(tn) y(t0) = y0 São métodos que determinam aproximações para a solução exacta em chamados pontos da malha. Consideremos equidistantes, sendo n o número de subintervalos de [a,b]; chama-se o passo da malha. nyyy ,...,, 21 )(,,...)(),( 21 ntytyty bttta n ...10 , n ab h .,...,1,0 niihtti h y(t2) ,,,...,, 21 battt n Métodos da série de Taylor Suponhamos que tem derivadas contínuas ate à ordem no intervalo Para cada a série de Taylor de em torno de é : )( )!1( )( )( ! )( )(" !2 )( )(')()()( )1( 1 1)(1 2 1 11 i k k ii i k k ii i ii iiiii y k tt ty k tt ty tt tytttyty . , com 1 iii tt Assim, desprezando o último termo do membro direito, ! )( )( !2 )(" )()(')()()( )( 1 2 111 k ty tt ty tttytttyty i k k ii i iiiiiii y 1ity .,ba 1k ,1,...,1,0 ni itt e, como satisfaz a equação diferencial (*) e podemos escrever )(ty .)(, ! )(,' !2 )(,)()( 1 2 1 ii k k iiiiii tytf k h tytf h tythftyty ,1 ii tth ).1,...,1,0( ! " !2 ')( );( )( 2 11 00 niy k h y h hyyyty tyy k i k iiiii O erro local é dado por: onde )( )!1( )()( )1( 1 111 i k k iii y k h ytyte Designando temos o método de Taylor de ordem k : ii kk i iii iii ytfy ytfy ytfy , ,' , 1 '' ' ., 1 iii tt Se y tem derivadas contínuas até à ordem k+1 no intervalo fechado [a,b] que contém os pontos sobre os quais estamos a fazer a discretização, então existe |)(|max )1( , tyM k bat e 11 )!1( |)(| kki Chh k M te .,|)(| )1( batMty k Assim temos um limite superior para o erro local: Um método numérico é dito de ordem se existe uma constante tal que 1|)(| mi Chte para i=0,1,…,n, onde depende das derivadas da função que define a equação diferencial. 0m 0C C Para aplicar o método da série de Taylor de ordem k : )( 2 1 ! '' !2 ' k i k iiii y k h y h hyyy temos de calcular .,...,''','',' k iiii yyyy Temos )('))(,())(,())(,(' tytytftytftytf yt onde ...,1,0),,(' 2 ),( 2 1 iytf h ythfyy iiiiii .,' tytfty Consideremos o método da série de Taylor de 2ª ordem: ou, em notação simplificada, ffff yt ' Nota: , t f ft etc. A expressão da terceira derivada já nos mostra a dificuldade dos cálculos de um método de Taylor de terceira ordem. Observe ainda que todos esses cálculos são efetuados para cada i = 1, ..., n. Observe que ),()('' ffffffffffff ytyyyyttytt Os métodos que usam o desenvolvimento em série de Taylor de y(t), teoricamente fornecem a solução aproximada de qualquer equação diferencial. No entanto, do ponto de vista computacional, os métodos da série de Taylor de ordem mais elevada são considerados inaceitáveis pois, a menos de uma classe restrita de funções f(t,y) ( f(t,y) = t2 + y2, por exemplo), o cálculo das derivadas totais envolvidas é extremamente complicado. O método da série de Taylor de ordem k = 1, chama-se método de Euler: ),('1 iiiiii ythfyhyyy onde )(" 2 )( 2 1 y h te i Exemplo Considere o PVI: Utilize o método de Euler para aproximar y(0.04) com erro menor ou igual a 5×10-4. O primeiro passo é encontrar h de modo que: .105)(" 2 )( 4 2 y h te i Neste caso, conhecemos a solução analítica do PVI: y(t) = et Então MyetyM t |)("|0408.1|)("|max 04.0 ]04.0,0[ 1)0( ' y yy donde 0408.1 10 0408.1 1052 então ;1052 0408.1 ]04.0,0[ 2 0408.1 |)(| 34 242 2 hh Ithte Portanto, .0310.0h Considerando pontos igualmente espaçados, temos h = 0.04/n, onde n é o número de subintervalos de I. Assim, .229.1 031.0 04.0 0310.0 04.0 nnn n Portanto, tomando n = 2, h = 0.02. Assim, 04.0 02.0 .1)0()( e0 2 1 000 t t yytyt Agora, 02.1 )02.01(1)1( ),()( 0 0000011 hy hyyythfyyty e 0404.1 02.1)02.1(02.1 )1(),()( 2 111122 hyythfyyty Dado que e0.04 = 1.0408, com quatro casas decimais, temos que o erro cometido é 1.0408 – 1.0404 = 4×10-4 < 5×10-4. t0 t1 t2 h h A idéia básica destes métodos é aproveitar as qualidades dos métodos de Taylor (ordem elevada) e ao mesmo tempo eliminar a sua maior dificuldade que é o cálculo das derivadas de f(t,y) que, conforme vimos, tornam os métodos de Taylor computacionalmente inaceitáveis. Métodos de Runge-Kutta Os métodos de Runge-Kutta de ordem n caracterizam-se pelas propriedades: • são de passo simples (isto é, o valor de pode ser calculdo se apenas é conhecido); • não exigem o cálculo de derivadas parciais de f(t,y); • necessitam apenas do cálculo de f(t,y) em determinados pontos (os quais dependem da ordem dos métodos); • desenvolvendo a série de Taylor de f(t,y) em torno de (ti ,yi) e agrupando os termos em relação às potências de h, a expressão do método de Runge-Kutta coincide com a do método de Taylor de mesma ordem. 1iy iy Uma formulação genérica para os métodos de Runge-Kutta de ordem m: hythyy iiii ,,1 com ,...2211 mmkakaka onde os ai são constantes e )...,( ),,( ),,( 11,122,111,11 11112 1 mmmmmimim ii ii hkqhkqhkqyhptfk hkqyhptfk ytfk As constantes ai , qi,j , pi são obtidas de modo que a precisão seja a mesma do método de Taylor de ordem m. Método de Runge-Kutta de 1ª ordem O método de Euler é um método de Runge-Kutta de ordem m=1: ,...2,1,0,,1 iythfyy iiii Métodos de Runge-Kutta de 2ª ordem Vamos determinar as constantes. )),(,(),( 111211 iiiiiiii ythfqyhptfhaytfhayy 22111 kakahyy ii ou seja, O desenvolvimento em série de Taylor da função f(ti + p1h, yi + q11hf(ti , yi )) em torno do ponto (ti , yi ) é dado por: ),(),(),(),()),(,( 111111 iiyiiiitiiiiii ytfythfqythfpytfythfqyhptf termos de h 2. )],(),(),(),([),( 111211 iiyiiiitiiiiii ytfythfqythfpytfhaythfayy termos de h 3. Desta forma, o método de Runge-Kutta pode ser reescrito na forma: )),(,(),( 111211 iiiiiiii ythfqyhptfhaytfhayy )],(),(),(),([),( 111211 iiyiiiitiiiiii ytfythfqythfpytfhaythfayy + termos de h3. A expressão: pode ser escrita na forma ),(),(),(),(),( 2 112 2 12211 iiyiiiitiiiiii ytfytfhqaytfhpaythfaythfayy )],(),(),([))(,( 11212 2 211 iiyiiiitiiii ytfytfqaytfpahaaythfyy + termos de h3. + termos de h3. Como o método de série de Taylor de 2ª ordem é dado por: e o método de Runge-Kutta de 2ª ordem é dado por: )],(),(),([))(,( 2212 2 211 iiyiiiitiiii ytfytfbaytfbahaaytfhyy Então, a concordância dos dois métodos até h2 é obtida se: + termos de h3. )],(),(),([ 2 1 ),( 21 iiiiyiitiiii ytfytfytthytfhyy + termos de h3, 2 1 22 2 1 12 21 1 ba ba aa ...,1,0, i ...,1,0i 211 2 kk h yy ii onde 12 1 , , hkyhtfk ytfk ii ii Dando um valor a a2 , por exemplo, 1/2 obtemos a seguinte fórmula : Métods de Runge-Kutta de ordens superiores De forma análoga, podemos construir métodos de Runge-Kutta de 3ª ordem, 4ª ordem, etc. A seguir apresentamos as fórmulas para os métodos de Runge-Kutta de 3ª e 4ª ordem: 3211 9 4 3 1 9 2 kkkyy ii Runge-Kutta de 3ª ordem onde ) 4 3 , 4 3 ( ) 2 , 2 ( ),( 23 1 2 1 kyhthfk k y h thfk ythfk ii ii ii Runge-Kutta de 4ª ordem onde )22( 6 1 43211 kkkkyy ii ),( ) 2 , 2 ( ) 2 , 2 ( ),( 34 2 3 1 2 1 kyhthfk k y h thfk k y h thfk ythfk ii ii ii ii Observação Os métodos de Runge-Kutta, apesar de serem auto-iniciáveis e não dependerem das derivadas de f(t,y), apresentam a desvantagem de não conhecermos para eles uma estimativa simples para o erro, o que poderia ajudar na escolha do passo h.