7. Resolução Numérca de Equações Dferencas Ordnáras Fenômenos físcos em dversas áreas, tas como: mecânca dos fludos, fluo de calor, vbrações, crcutos elétrcos, reações químcas, dentre váras outras, podem ser modelados por equações dferencas: equações que envolvem uma função e algumas de suas dervadas. Se uma equação dferencal possu apenas uma varável ndependente então ela é uma equação dferencal ordnára. Eemplos: d d = () + que pode ser escrta como: ' = + " + ( - )' + = (equação dferencal ordnára de ª ordem) Se a equação dferencal envolve mas de uma varável ndependente então ela é uma equação dferencal parcal. Eemplo: u u + = onde u é uma função u(,) Neste capítulo, vamos estudar métodos numércos de solução de equações dferencas ordnáras. 5 Equações Dferencas Ordnáras Uma equação dferencal ordnára de ordem n pode ser escrta como: ( n) ( n ) ( ) = F(, ( ), ' ( ), "( ),..., ( )) [ a, b] A solução desta equação é uma função = f() defnda em [a,b], com n dervadas e que satsfaz a equação. Eemplo. A solução da equação dferencal ordnára de ª ordem = - é a função () = sen() + cos(), pos: () = sen() + cos(); '() = cos() - sen(); "() = -sen() - cos(). Logo: ''() = - (sen() + cos()) = -() Note que, pela notação acma, essa equação devera ser escrta como: () = F(,(), ()) = -(). E uma solução numérca, o que é? É uma função conecda de forma numérca, ou seja, por uma tabela de pontos. = - Método numérco.... ()..8.9 -.8.5 -.5.5.5.5 5
Equações Dferencas Ordnáras Na verdade, uma equação dferencal ordnára possu uma famíla de soluções. Por eemplo: a solução da equação = - pode se uma função () = asen() + bcos(), pos: '() = acos() - bsen() e "() = -asen() - bcos() = - () Assm, dependendo dos valores de a e b teremos dversas soluções, como lustra a fgura. -.5.5 Para que uma equação dferencal tena solução únca é precso mpor condções suplementares. Em geral, uma equação dferencal de ordem n requer n condções suplementares para ter uma únca solução. Com sso, temos dos tpos de problemas: problema de valor ncal (PVI) problema de valor de contorno (PVC) 5 Equações Dferencas Ordnáras Problema de valor ncal (PVI) Equação dferencal de ordem n (n ) e mas n condções dadas pela função e suas dervadas até ordem n-, especfcadas em um mesmo ponto, que corresponde ao valor ncal da varável ndependente. Eemplo. = ( ) + cos(); () = ; () = ; [,]. equação dferencal de ª odem Problema de valor de contorno (PVC) condções ncas observe que a função e sua ª dervada estão especfcadas para o ponto ncal do ntervalo da varável ndependente. Equação dferencal de ordem n (n ) e mas n condções dadas pela função e/ou suas dervadas até ordem n-, especfcadas em pontos dferentes do domíno da varável ndependente. Eemplo. = cos(); () = ; () = ; [,]. observe que, em geral, as condções são especfcadas no contorno do domíno da varável ndependente. 5
Problemas de Valor Incal Para problemas de valor ncal, basta consderar apenas equações dferencas de ª ordem, pos uma equação dferencal ordnára de ordem n pode ser transformada faclmente em um sstema de n equações de ª ordem, utlzando mudanças de varáves. Eemplo. Seja o PVI: = + e + + ; ()=; ()=; ()=-; [,]. Fazendo: = = ; () = = = ; () = = = + e + + ; () = - Sstema de equações de ª ordem Portanto, os métodos que vamos estudar para PVIs rão consderar apenas uma equação dferencal de ª ordem: = f(,), com uma condção ncal ( ) =. Quando for precso resolver um problema de ordem n, vamos transformar o problema em um sstema de n equações de ª ordem e aplcar o método a cada uma delas, smultaneamente. 55 Método de Euler Seja uma equação dferencal de ª ordem: = f(,), com uma condção ncal ( ) =. Seja = + - ( =,,...). Pelo teorema de Talor podemos escrever: ( + ) = ( + ) = ( ) + '( ) + "( ξ) ξ (, + ) Portanto, como ( ) = f(,( )), podemos escrever: ( + ) ( ) + f(, ( )) Portanto, com esta epressão do método de Euler, conecdo o valor ( ) (condção ncal) é possível determnar outros valores ( ) ( =,,...) e assm construr uma tabela para a função (). Métodos como o de Euler em que os valores de () podem ser obtdos dretamente são denomnados métodos eplíctos. Além dsto, como ( + ) depende apenas do ponto medatamente precedente (, ( )), tal método é conecdo como de passo smples. Estem métodos em que os valores de () podem ser obtdos somente por teração (métodos mplíctos). Em outros, o valor de ( + ) depende de m pontos medatamente precedentes (métodos de passo múltplo). 56
Método de Euler Eemplo. Resolver o PVI: = +; () = ; [.,.5]; =. = +.f(, ) =. + (.)f(.,.) =. + (.)(.(.)+) =.5 = +.f(, ) =.5 + (.)f(.,.5) =.5 + (.)(.(.)+) =. = +.f(, ) =. + (.)f(.,.) =. + (.)(.(.)+) =.56 = +.f(, ) =.56 + (.)f(.,.56) =.56 + (.)(.(.)+) =. 5 = +.f(, ) =. + (.)f(.,.) =. + (.)(.(.)+) =.7.... ()..5..56.5.5.5.5...5.5.5.7.....5.....5 Solução analítca: () = +- (curva vermela). À medda que a solução avança, os erros vão se tornando maores (pos um ponto da solução depende do ponto anteror). Com um passo menor, o erro será menor. 57 Método de Euler Eemplo. Resolver o PVI: = +; () = ; () = ; [,]; =. Transformando em um sstema com a mudança de varável: = ; = = f (,, ) = () = = f (,, ) = + () = (.) = (.) +.f (., (.), (.)) =. + (.)(.) =. (.) = (.) +.f (., (.), (.)) =. + (.)(.+.) =. (.) = (.) +.f (., (.), (.)) =. + (.)(.) =. (.) = (.) +.f (., (.), (.)) =. + (.)(.+.) =. contnuando () ()..........6.8.78.8.7.7..88.88.8.6.....6.8. =.5.7.6.5.......6.8 58
Métodos Baseados em Regras de Quadratura Mutos métodos para solução de problemas de valor ncal podem ser obtdos a partr de regras de ntegração numérca, uma vez que para o problema: = f(,) com ( )=, podemos escrever: '( ) d = ] = ( ) ( ) = Por outro lado, pela regra dos trapézos temos: ' ( ) d = [ ' ( ) + ' ( )] + E T Portanto: + f + f [ (, ) (, )] é uma apromação para o valor de () no ponto =. Devemos notar que esta apromação, baseada na regra dos trapézos, consttu um esquema de passo smples (o valor de depende de apenas um valor anteror - ). Entretanto este esquema é mplícto, uma vez que o valor de depende do própro valor. Portanto, neste caso, será necessáro um processo teratvo para determnar o valor de ( =,,...). 59 Métodos Baseados em Regras de Quadratura Para ser obtdo teratvamente é necessáro uma estmatva ncal []. Mutas escolas são possíves para a estmatva ncal. Alguns eemplos são: o valor anteror - o valor de obtdo pelo método de Euler: - + f( -, - ) Dado um valor para [], temos o segunte esquema teratvo: [ n] f f [ n = + [ (, ) + (, ] )] ( n =,,...) Eemplo. Seja o PVI: = ; ()=.5; [,]; =. =.5 [] (estmatva ncal pelo método de Euler):.5 + (.)(.5 ) =.65. Seja ε = -. [] [] []. =.5+ [(.5) + (.65) ] =.6. =.5+ [(.5) + (.6) ] =.67. =.5+ [(.5) + (.67) ] =.67 Valor eato: =(.) (.) = =.66. 6 5
Métodos de Runge-Kutta Os métodos numércos de resolução de PVIs vstos até aqu tem pouca mportânca prátca. O método de Euler requer um passo muto pequeno para alcançar uma precsão razoável. Já o método baseado na regra dos trapézos, por consttur um esquema mplícto, requer um processo teratvo para determnar cada uma das apromações. Os métodos de Runge-Kutta, ao contráro, são muto empregados na prátca pos possuem as seguntes característcas: são métodos eplíctos de passo smples que alcançam uma boa precsão com passos razoáves. Pela sére de Talor temos: + = ( + ) = ( + ) = ( ) + '( ) + "( ) + E T df(, ) Como = f(,) temos: + ( ) + f (, ) + d = Calcular df(, ) é dfícl pos () é uma função desconecda. d Vamos consderar o polnômo nterpolador de º grau no ntervalo [, + ]: 6 Métodos de Runge-Kutta p() Portanto: escrever: + =.( ) +.(+ ) = [( )(+ ) ( + )( )] + + p '( ) = Usando este resultado, podemos [ ( + ) ( )] Mas, pelo método de Euler, temos: + = + f(, ) e portanto: f( +, + ) = f( +, f(, )). Então: df(, ) [f (+, + ) f(, )] d Portanto: f f f + ( ) + (, ) +. [ ( +, + ) (, )] = + f (, ) + f ( +, + ) Fazendo: + = + f + f + + f [ (, ) (, (, ))] k = f (, ) k = f ( +, + f(, )) = f ( +, + k) + = + k + k [ ] método de Runge-Kutta de º grau 6 6
Métodos de Runge-Kutta Eemplo. ' = - ; ()=; [,]; =. + = + k + k [ ] k = f(, ) k = f( +, + k ) k k.. -. -.8. -.9 -.96.6 -. -.8.8 -.8 -.67. -.7 -.7 k =.f(.,.) =.(-.) = -. k =.f(.,.-.) =.f(.,.6) =.(-.) = -.8 (.) =. + (-.-.8)/ =. -. =.66 k =.f(.,.66) =.(-.6) = -.9 k =.f(.,.66-.9) =.f(.,.68) =.(-.968) = -.96 (.) =.66 + (-.9-.96)/ =.66 -.8 =.7..66.7.5.56....6.8...6.8.8.8.6.6.... 6 Métodos de Runge-Kutta Eemplo. Resolver o PVI: = +; () = ; () = ; [,]; =. Transformando em um sstema com a mudança de varável: = ; = = f (,, ) = () = = f (,, ) = + () = (.) = (.) + [k +k ]/ (.) = (.) + [k +k ]/ k =.f (.,.,.) =.(.) =. k =.f (.,.,.) =.(.) =. k =.f (.,.+.,.+.) =. k =.f (.,.+.,.+.) =. (.) =. + [.+.]/ =. (.) =. + [.+.]/ =. contnuando mesmo eemplo do método de Euler.. ().. ()...7.6.5.7 =.5.6.5..6.8..88.59.5.77.88.858.5.77...........6.8...6.8 6 7
Métodos de Runge-Kutta Um dos métodos de Runge-Kutta mas utlzados é o de º grau, dado por: k = f (, ) + = + k [ k + k + k + k 6 ] k f = ( +, + ) k k f = ( +, + ) k = f( +, + k) Eemplo. ' = - ; ()=; [,]; =.5 k k k k..5 -.. -..5 -.5..69 -.65 -.788 -.86 -.95.858.5.87.77.. -.96. -..5.7.7.8..67.6.5.967.75.8.79.767...766.75.998.67.97. Comparando os métodos: º grau º grau.5.5.5 65 Métodos de Passo Múltplo Os métodos de resolução de PVIs vstos anterormente são todos de passo únco, sto é, para calcular + leva-se em conta apenas os valores de f(,) em torno do ponto anteror. Os métodos de passo múltplo levam em conta não apenas o valor de como também pontos anterores -, -,..., -k+ (método de k-passos). A fórmula geral de um método de k-passos é dada por: k k + = α j j+ + β jf j+ j+ j= j= (, ) f j + Dependendo do valor de β tem-se duas classes de métodos de passo múltplo: métodos eplíctos e métodos mplíctos. Se β = então: k k + = α j j+ + β jf j+ = ( α + α +... + αk k+ ) + ( βf + βf +... + β kf k+ ) j= j= ou seja, para determnar o prómo ponto da solução, +, são necessáros os k valores anterores da solução:, -, -,..., -k+, além dos respectvos valores de f( j, j ) (j =, -, -,..., -k+). Portanto, quando β = tem-se um método eplícto de passo múltplo. Se β então, além destes pontos, será necessáro também o valor de f +. Neste caso, para calcular + será precso um esquema teratvo levando, portanto, a um método mplícto de passo múltplo. 66 8
Métodos Eplíctos de Passo Múltplo Dada a equação ' = f(,()) podemos obter por ntegração: + ( + ) = ( ) + f(, ( )) d Supondo já conecdos os valores anterores (j =, -,..., -k+), podemos substtur f(,()) por um polnômo nterpolador que passa por estes pontos anterores. Neste caso tem-se uma famíla de métodos (dependendo da escola do grau do polnômo) para resolver a equação dferencal conecdos como métodos de Adams-Basfort. Para k =, o polnômo é do º grau e tem-se um método de º grau: + ( ) + + + = + [ f f d f d f d + = + ( ). ( ) ( ). ] [ ( ) ( ) ] Essas ntegras podem ser calculadas faclmente. Assm: + = + f f f f [ = + ] [ ] (método de Adams-Basfort de º grau). 67 Métodos Eplíctos de Passo Múltplo (de Adams-Basfort) Para k =, o polnômo é do º grau e tem-se o método de º grau: + = + f f + f [ 6 5 ] Para k =, o polnômo é do º grau e tem-se o método de º grau: + = + f f + f f [ 55 59 7 9 ] Para k = 5, o polnômo é do º grau e tem-se o método de 5º grau: + = + f f + f f + f 7 [ 9 77 66 7 5 ] Pode-se notar que, à medda que aumenta o grau do polnômo nterpolador, aumentam os coefcentes de (j =, -, -,..., -k+) e portanto o método torna-se mas sensível a erros de arredondamento. Os métodos de Adams-Basfort não são auto-ncalzáves, porque necesstam de um conjunto de k pontos anterores da solução para que possam ser aplcados (de níco, tem-se apenas um ponto da solução: a condção ncal). Portanto, para aplcar um método de Adams-Basfort é precso, prmeramente, obter este conjunto ncal de k pontos através de um método de passo únco. 68 9
Métodos Implíctos de Passo Múltplo Os métodos mplíctos de passo múltplo são obtdos da mesma forma que os métodos eplíctos, só que agora, β. Tas métodos são conecdos como métodos de Adams-Moulton. Para k = (método de Adams-Moulton de º grau): + f f d + + + + = + [ ( ) ( ) + + = + f d f d ] [ + ( ) ( ( ) ( ) + ) ] + + ou seja: + = + f + + f [ Para k = (método de º grau): + = + f+ + f f 5 Para k = (método de º grau): + = + f+ + f f + f 9 Para k = 5 (método de 5º grau): + = + f+ + f f + f f 7 [ 5 66 6 6 9 ] Pode-se notar que as fórmulas mplíctas são menos sensíves a erros de arredondamento (pos os coefcentes são menores) do que as fórmulas eplíctas, mas necesstam teração. 69 Métodos de Prevsão e Correção Os métodos de passo múltplo possuem algumas característcas nteressantes: Os métodos mplíctos são menos sujetos a erros de arredondamento e apresentam lmtes de erro de truncamento menores que os métodos eplíctos de mesmo grau. Entretanto, nos métodos mplíctos o cálculo de + requer o valor de f + e, portanto, um processo teratvo. Já os métodos eplíctos tem a vantagem de poder calcular + somente com base em valores anterores da solução. Pode-se, então, combnar estes dos tpos de métodos de modo a empregar as vantagens de cada um. Esta combnação é conecda como método de prevsão e correção, que corresponde a: ncalzar o processo por um método de passo únco (por eemplo, um método de Runge-Kutta); calcular o valor de + pelo método de passo múltplo eplícto (valor prevsto); recalcular o valor de + usando o método de passo múltplo mplícto de mesmo grau (valor corrgdo). Portanto, nos métodos de prevsão e correção, o método eplícto (método de Adams-Basfort) é usado como fórmula prevsora e o método mplícto (método de Adams-Moulton) corresponde à fórmula corretora (que pode ser usada váras vezes, até que se consga um resultado consderado satsfatóro). 7
Métodos de Prevsão e Correção Eemplo. Seja o PVI: ' = ; () =.5; [,]; =.. Vamos usar um método de prevsão e correção de a ordem, ou seja: ncalzação (RK-): + = + [k + k ]; k = f (, ); k = f( +, + k ) prevsão (AB-): + = + [f f ] / correção (AM-): + = + [f + + f ]/ k =.f(.,.5) =.(.65) =.5 k =.f(.,.5+.5) =.(.689) =.8 (.) =.5 + (.5+.8)/ =.6....6.8. ().5 RK- AB- + AM- (.p) =.6 +.[f(.,.65)-f(.,.5)]/ =.776 (.c) =.6 +.[f(.,.776) + f(.,.65)]/ =.778.... ().5.6.778...6.8.6.9.8.8.5.6.. 7 Método das Dferenças Fntas Pelo teorema de Talor, podemos escrever o desenvolvmento em sére de uma função () em torno do ponto = como: ( ) ( ) = ( ) + ( ) ' ( ) + "(! ) +... Portanto, o valor de () no ponto = + = +, pode ser escrto como: ( + ) ( + ) = ( ) + ( + )'() + "( ) + L = ( ) + '( ) + "( ) +L! ( + ) ( ) ou seja: = '( ) + "( ) +... ( + ) ( ) Tem-se, portanto: '( ) = + O() onde O() (ldo como ordem de ) ndca que a magntude dos termos restantes depende da ordem de grandeza do valor de. Assm, pode-se escrever: ( ) ( '( ) ) + Dzemos, nesse caso, que () é apromada por uma dferença fnta ascendente, com erro da ordem de. 7
Método das Dferenças Fntas Se, no desenvolvmento de Talor: ( ) ( ) = ( ) + ( ) ' ( ) + "(! ) +... substturmos por - teremos: ( ) = ( ) + ( )'( ) + "( ) +... = ( ) '( ) + "( ) +... ( ) ( ) e, portanto: '( ) ( )! Dzemos, nesse caso, que () é apromada por uma dferença fnta descendente, com erro também da ordem de. Uma tercera apromação para () pode ser obtda subtrando-se a epressão para ( - ) da epressão para ( + ), ou seja: ( ou seja: ) = ( ) + '( ) + "( ) L () '( ) + "() ( + ) ( ) logo: '( ) = + ) ( + + L ( + ) ( ) = '( ) + O( ) ( + ) ( ) Portanto: '( ) + O( ) ou seja, () é apromada por uma dferença fnta central, com erro da ordem de. 7 Método das Dferenças Fntas Pode-se obter uma apromação para a dervada segunda (), somando-se as epressões para ( + ) e para ( - ), ou seja: ( ) = ( ) + ' ( ) + " ( ) L + () ' ( ) + "( ) + ) + ( + + L ou seja: ( + ) + ( ) = ( ) + "() + O( ) ( ) ( ) + ( + ) Portanto: " ( ) Esta epressão aproma o valor de () com erro da ordem de. Apromações para dervadas de ordens mas altas podem ser obtdas de forma análoga. O método das dferenças fntas para solução de equações dferencas decorre da substtução, na equação, das dervadas da função pelas suas correspondentes apromações por dferenças fntas. Consderando a notação para desgnar o valor de ( ), temos: Dervada Prmera Segunda Apromação () @ ( + - )/ () @ ( - - )/ () @ ( + - - )/ () @ ( + - + - )/ Ordem do Erro 7
Método das Dferenças Fntas: Problemas de Valor de Contorno O método das dferenças fntas se aplca muto bem a problemas de valor de contorno. Eemplo. Seja o PVC: = - - e ( + ); ()=; ()=.78; [,]; =.. Nesse caso, a solução será uma tabela da forma:....6.8. ()..78 Substtundo, na equação dferencal, as dervadas pelas apromações por dferenças fntas (usando, para a dervada prmera, a dferença central, por ser mas eata) obtemos: + + + + e = ( + ) =,,, ( + ) + ( ) + ( ) + = e ( + ) =,,, Temos, então: = ( + ) ( ) ( ) e ( + + = + ) = ( + ) + ( ) + ( ) = e ( + ) = ( + ) ( ) ( ) e ( + + = + ) = ( + ) ( ) ( ) e ( + + 5 = + ) O que é sso? Quas são as ncógntas? 75 Método das Dferenças Fntas: Problemas de Valor de Contorno É um sstema de equações lneares: ( ) (+ ) ( ) ( ) (+ ) ( ) ( ) (+ ) ( ) ( ) = e ( + ) ( + ) e ( + ) e ( + ) e ( + ) ( ) 5 ou seja: 98.. 8.. 968. 8.. 95. 8. 96. =. 8. 98.. 6....6.8. ()...595.97.779.78.5.5.5...6.8 Nesse caso, não á propagação de erro de um ponto para outro, pos todos os pontos da solução são obtdos de uma vez. A dfculdade, com pequeno, está na dmensão do sstema de equações lneares (por eemplo: =.5 9 equações). 76
Método das Dferenças Fntas: Problemas de Valor Incal O método das dferenças fntas também se aplca a problemas de valor ncal. Eemplo. Seja o PVI: ' = - ; ()=; [,]; =.5 Nesse caso, a solução será uma tabela da forma:..5..5..5. (). 5 6 Substtundo, na equação dferencal, as dervadas pelas apromações por dferenças fntas (usando, para a dervada prmera, a dferença descendente) obtemos: = =, L,6 Temos, então: = ( ) + ( + ) = ( + ) + ( + ) ( + ) ( + ) ( + ) ( + ) 5 6 = 5 6 ( =, L,6) 77 Método das Dferenças Fntas: Problemas de Valor Incal Substtundo os valores:.5.5.5.5.5.5 5 6 =.5.5.75..5.5..5..5..5. ()..5..889.596.895.6...5.5.5.5.5.5.8.8.6.6.... 78
Método das Dferenças Fntas Nem sempre o método das dferenças fntas leva a um problema lnear. Dependendo da equação dferencal podemos ter um problema não lnear. Eemplo. Seja o PVC: = - ; () = ; ()=.5; [,]; =.. Nesse caso, a solução será uma tabela da forma:....6.8. ()..5 Substtundo, na equação dferencal, as dervadas pelas apromações por dferenças fntas, obtemos: Teremos, então: + + + = (,,,) = + + + ( + ) = ( =,,,) + +.( ) = + +. ( ) = + +. ( ) = +.5+.(.5 ) = ()...6.8....8..7.6.65.8.5556.9.8.7.6.5..5 79 5