Numerical Methods for Solving Linear Ordinary Differential Equations
Upcoming SlideShare
Loading in...5
×
 

Numerical Methods for Solving Linear Ordinary Differential Equations

on

  • 414 views

Numerical Methods for Solving Linear Ordinary Differential Equations with Focus on Initial Value Problems.

Numerical Methods for Solving Linear Ordinary Differential Equations with Focus on Initial Value Problems.

Statistics

Views

Total Views
414
Views on SlideShare
414
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Numerical Methods for Solving Linear Ordinary Differential Equations Numerical Methods for Solving Linear Ordinary Differential Equations Document Transcript

    • M´etodos Num´ericos para An´alise de Equa¸c˜oes Diferenciais Ordin´arias Lineares com Foco nos Problemas de Valor Inicial. Michel A. dos Santos ∗ Maio de 2010 Resumo Inicialmente iremos abordar alguns aspectos gerais da an´alise e resolu¸c˜ao num´erica de Equa¸c˜oes Diferenciais Ordin´arias Lineares. Exploraremos alguns conceitos como erros de truncamento local e global, uma breve introdu¸c˜ao a S´erie de Taylor e alguns exemplos de m´etodos de resolu¸c˜ao baseados em estrat´egias de passos simples e passos m´ultiplos. Ao longo do texto ser´a n´ıtida a percep¸c˜ao de que a maioria dos problemas de resolu¸c˜ao num´erica de equa¸c˜oes dessa natureza s˜ao fortemente direcionados a modelagem de problemas oriundos da observa¸c˜ao de fenˆomenos. Esse direcionamento possui aspectos que v˜ao desde a concep¸c˜ao de circuitos el´etricos at´e a an´alise de sistemas presa-predador. Por fim, ser˜ao analisados algumas caracter´ısticas relativas a empregabilidade dos m´etodos abordados. Palavras-Chave: Equa¸c˜oes Diferenciais Ordin´arias, M´etodo de Euler, M´etodo de Runge- Kutta, Solu¸c˜oes Num´ericas, Modelagem, C´alculo Num´erico, M´etodos Num´ericos, F´ormula de Heun. 1 Introdu¸c˜ao Modelagem ´e o tema que unifica o tratamento introdut´orio dado as equa¸c˜oes diferenciais. Tal- vez as aplica¸c˜oes mais importantes do c´alculo sejam pertencentes a natureza dessas equa¸c˜oes. Quando f´ısicos e cientistas sociais usam o c´alculo, em geral o fazem para analisar uma equa¸c˜ao diferencial surgida no processo de modelagem de algum fenˆomeno que eles estejam estudando. Embora seja freq¨uentemente imposs´ıvel encontrar uma f´ormula expl´ıcita para a solu¸c˜ao de uma equa¸c˜ao diferencial, podemos observar que m´etodos como aproxima¸c˜oes gr´aficas e num´ericas con- seguem fornecer bons resultados. Resultados estes, advindos de bons modelos matem´aticos que frequentemente possuem o formato de uma equa¸c˜ao diferencial, isto ´e, uma equa¸c˜ao que cont´em uma fun¸c˜ao desconhecida e algumas de suas derivadas. Isso n˜ao nos surpreende porque em um problema real normalmente notamos que as mudan¸cas ocorrem e queremos predizer o compor- tamento futuro com base na maneira como os valores presentem variam. Geralmente o processo de solu¸c˜ao dessas equa¸c˜oes consiste em uma transforma¸c˜ao das mesmas em equa¸c˜oes alg´ebricas atrav´es da discretiza¸c˜ao do dom´ınio e aproxima¸c˜ao de suas derivadas por diferen¸cas finitas (Hull et al., 1972). Atualmente a criatividade ´e o limite. As formas ou a empregabilidade de m´etodos para an´alise e resolu¸c˜ao num´erica de Equa¸c˜oes Diferenciais Ordin´arias permea v´arios campos, sendo empregados at´e mesmo algoritmos gen´eticos (Cao et al., 2000) e paraleliza¸c˜ao (Burrage, 1997; Burrage & Suhartanto, 1997, 2000) para aferi¸c˜ao de uma malha de pontos condizentes com uma determinada equa¸c˜ao pertencente a essa classe. O presente trabalho tem como objetivo ape- nas apresentar uma breve introdu¸c˜ao no que diz respeito ao tratamento de solu¸c˜oes num´ericas de ∗Bacharelando em Ciˆencia da Computa¸c˜ao, Universidade Federal do Estado de Alagoas(UFAL), Bolsista do Laborat´orio de Modelagem Geom´etrica e Vis˜ao Computacional do Centro de Pesquisa em Matem´atica Computacio- nal(CPMAT), Brasil - Macei´o/AL, Tel: 8805-0582 E-mail: michel.mas@gmail.com, michelalvessantos@hotmail.com 1
    • equa¸c˜oes diferenciais (ordin´arias) por´em, antes mesmo de adentrar ao assunto, forneceremos uma motiva¸c˜ao para o estudo s´erio e cuidadoso do c´alculo num´erico. 1.1 O C´alculo Num´erico O C´alculo Num´erico corresponde a um conjunto de ferramentas ou m´etodos usados para se obter a solu¸c˜ao de problemas matem´aticos de forma aproximada. Esses m´etodos se aplicam prin- cipalmente a problemas que n˜ao apresentam uma solu¸c˜ao exata (de origem anal´ıtica), portanto precisam ser resolvidos numericamente. Um bom exemplo que ilustra essa necessidade pode ser dado pela avalia¸c˜ao de circuitos el´etricos. Em um circuito el´etrico composto de uma fonte de tens˜ao e um resistor, a solu¸c˜ao exata (ou anal´ıtica) pode ser dada por: V − R · i = 0 i = V R (1) Por´em com a introdu¸c˜ao de um simples diˆodo no circuito, ter´ıamos um aumento na complexidade de avalia¸c˜ao dos estados pelos quais esse circuito passa, produzindo a seguinte situa¸c˜ao (Ruggiero & Lopes, 1996): v(i) = kT q · ln i Is + 1 v(i) = 0 ⇒ V − R · i − kT q · ln i Is + 1 = 0 (2) A complexidade de avalia¸c˜ao de v(i) quando a mesma ´e nula extrapola os m´etodos convencionais anal´ıticos. Logo a maneira mais indicada para avalia¸c˜ao dos estados desse circuito seria uma na qual houvesse o emprego de uma solu¸c˜ao baseada em m´etodos num´ericos. O caso acima evidenciado, aos olhos de muitos ainda possui caracter´ısticas anal´ıticas, onde uma solu¸c˜ao exata ainda seria uma boa sa´ıda. Por´em vale lembrar que introduzimos apenas, e s´o, um diˆodo. Os circuitos reais espalhados pela vida cotidiana possuem dezenas de milhares desses componentes. Por isso a necessidade de produzir resultados num´ericos. Pois mesmo que um problema matem´atico possa ser resolvido analiticamente, ainda assim, ele pode se tornar impratic´avel caso haja uma aumento consider´avel em seu tamanho. Um bom exemplo para ilustrar essa situa¸c˜ao seria a busca por solu¸c˜oes de sistemas de equa¸c˜oes lineares que modelam c´alculo de estruturas, componentes horizontais e verticais das for¸cas que atuam em um determinado corpo que se encontra em equil´ıbrio est´atico (Ruggiero & Lopes, 1996), redes el´etricas, etc. Logo, a maior motiva¸c˜ao para o emprego de m´etodos num´ericos seria a existˆencia de problemas para os quais n˜ao existem m´etodos matem´aticos exatos para a obten¸c˜ao de uma solu¸c˜ao (ou seja, n˜ao podem ser resolvidos analiticamente). Tal motiva¸c˜ao pode ser evidenciada quando avaliamos certos tipos de integrais que n˜ao possuem uma primitiva em forma simples, como ex2 dx, ou ten- tamos resolver determinadas equa¸c˜oes diferenciais parciais n˜ao lineares (que podem ser resolvidas analiticamente s´o em casos particulares.) 1.2 A Necessidade de Boas Aproxima¸c˜oes Os m´etodos num´ericos buscam solu¸c˜oes aproximadas para as formula¸c˜oes matem´aticas (Os- borne & Watson, 1968). Nos problemas reais os dados s˜ao medidas e como tal, n˜ao s˜ao exatas. Uma medida f´ısica n˜ao ´e um n´umero e sim um intervalo advindo da pr´opria imprecis˜ao das medidas. Da´ı, trabalha-se sempre com a figura do erro inerente `a pr´opria medi¸c˜ao. Os m´etodos aproximados buscam uma adequa¸c˜ao do que seria o valor exato. Dessa forma ´e inerente ao m´etodo se trabalhar com a figura da aproxima¸c˜ao, erro ou desvio. Na Figura 1 podemos visualizar um fluxograma no qual ocorre a confrota¸c˜ao entre etapas para obten¸c˜ao de modelos matem´aticos precisos (no sentido de exatos) e a resolu¸c˜ao de problemas atrav´es de m´etodos num´ericos. Por´em em certos casos devemos ter cuidado redobrado ao adotar um determinado modelo, pois a influˆencia dos erros nas solu¸c˜oes podem ocasionar acontecimentos indesejados, muitos deles com finais catastr´oficos tanto no ponto de vista monet´ario quanto do ponto de vista humano. 2
    • Figura 1: Etapas no desenvolvimento de m´etodos anal´ıticos e m´etodos de aproxima¸c˜ao. Observe que nos m´etodos de aproxima¸c˜ao existe uma etapa de an´alise dos resultados feita com o intuito de comprovar a veracidade da informa¸c˜ao obtida e uma verifica¸c˜ao final que comprova que o m´etodo adotado ´e o mais adequado ao modelo ou situa¸c˜ao. Exemplos para esses tipos de situa¸c˜ao seriam o afundamento da plataforma mar´ıtima Sleipner A, em 23/08/1991, na Noruega, com um preju´ızo de mais de 700 milh˜oes de d´olares e a explos˜ao do foguete Ariane 5 em 04/06/1996 na Guiana Francesa, com um preju´ızo de 7,5 bilh˜oes de d´olares. A maioria desses acontecimentos s˜ao causados por limita¸c˜oes na representa¸c˜ao num´erica. 1.3 No¸c˜oes B´asicas Sobre Erros No estudo de M´etodos Num´ericos para a resolu¸c˜ao de situa¸c˜oes/modelos que surgem das mais diversas ´areas ocasionalmente ocorrem problemas. A resolu¸c˜ao de tais problemas envolve v´arias fases. N˜ao ´e raro acontecer que os resultados finais estejam distantes do que se esperaria obter, ainda que todas as fases de resolu¸c˜ao tenham sido realizadas corretamente. O resultados obtidos dependem tamb´em: • da precis˜ao dos dados de entrada; • da forma como estes dados s˜ao representados no computador; • das opera¸c˜oes num´ericas efetuadas. Os dados de entrada contˆem uma imprecis˜ao inerente, isto ´e, n˜ao h´a como evitar que ocorram, uma vez que representam medidas obtidas usando equipamentos espec´ıficos, como, por exemplo, no caso de medidas de corrente e tens˜ao num circuito el´etrico, ou ent˜ao podem ser dados resultantes de pesquisas ou levantamentos, como no caso de dados populacionais obtidos num recenseamento. De modo corriqueiro a maioria das literaturas executam um estudo dos erros que surgem da representa¸c˜ao num´erica em computadores e erros resultantes das opera¸c˜oes num´ericas efetuadas que podem ocorrer na convers˜ao de n´umeros de um determinado sistema de representa¸c˜ao para outro (exemplo: convers˜ao de decimal para bin´aro), erros de arredondamento e truncamento e em opera¸c˜oes aritm´eticas de ponto flutuante (Ruggiero & Lopes, 1996). 2 Equa¸c˜oes Diferenciais Equa¸c˜oes diferenciais aparecem com grande frequˆencia em modelos que descrevem quantita- tivamente fenˆomenos em diversas ´areas, como por exemplo, mecˆanica dos fluidos, fluxo de calor, 3
    • vibra¸c˜oes, economia, ecologia, biomedicina, rea¸c˜oes qu´ımicas, nucleares, etc. Representam com alta fidelidade sistemas f´ısicos, estat´ısticos e comportamentais dos mais diferentes tipos e complexidades. Sendo assim, ´e de suma importˆancia o conhecimento de t´ecnicas de manipula¸c˜ao de tais equa¸c˜oes para uma an´alise detalhada dos sistemas anteriormente citados, visto que, sua aplica¸c˜ao ´e expandida dentro das mais diversas ´areas da ciˆencia. Estas equa¸c˜oes podem ter formas t˜ao variadas que se analisarmos as que possuem solu¸c˜ao ou m´etodos de resolu¸c˜ao anal´ıtica j´a desenvolvidas, veremos que estamos muito longe de poder modelar problemas f´ısicos reais, esperando assim que a Matem´atica nos forne¸ca uma express˜ao exata para a solu¸c˜ao de tais objetos. Por outro lado, os m´etodos num´ericos j´a s˜ao bem mais abrangentes e, quando levam a convergˆencia, ´e poss´ıvel se obter gr´aficos e tabelas com valores de solu¸c˜ao para um maior n´umero de problemas. 2.1 Equa¸c˜oes Diferenciais Gerais Em geral, uma equa¸c˜ao diferencial ´e aquela que cont´em uma fun¸c˜ao desconhecida e uma ou mais de suas derivadas. A ordem de uma equa¸c˜ao diferencial ´e a mesma da derivada mais alta que ocorre na equa¸c˜ao. Dessa maneira as equa¸c˜oes (3) e (4) visualizadas logo abaixo s˜ao exemplos de equa¸c˜ao de primeira ordem enquanto a equa¸c˜ao (5) ´e um exemplo de equa¸c˜ao de segunda ordem (Stewart, 2009). dP dt = kP (3) dP dt = kP · 1 − P K (4) m · d2 x dt2 = −kx (5) Em todas as trˆes equa¸c˜oes, a vari´avel independente ´e chamada t e representa o tempo, mas, em geral, a vari´avel independente n˜ao precisa representar o tempo. Por exemplo, quando consideramos a equa¸c˜ao diferencial y = xy (6) entendemos que y seja a fun¸c˜ao descohecida de x. Uma fun¸c˜ao f ´e denominada solu¸c˜ao de uma equa¸c˜ao diferencial se a equa¸c˜ao ´e satisfeita quando y = f(x) e suas derivadas s˜ao substitu´ıdas na equa¸c˜ao. Assim, f ´e uma solu¸c˜ao da Equa¸c˜ao (6) se f (x) = xf(x) (7) para todos os valores de x em algum intervalo. Quando tentamos resolver uma equa¸c˜ao dife- rencial, esperamos encontrar todas as solu¸c˜oes poss´ıveis da equa¸c˜ao. Algumas dessas equa¸c˜oes j´a s˜ao de conhecimento da maioria dos estudantes de c´alculo, pois representam equa¸c˜oes diferenciais particularmente simples; a saber, aquelas da forma y = f(x) (8) Por exemplo, sabemos que a solu¸c˜ao geral da equa¸c˜ao diferencial y = x3 (9) ´e dada por y = x4 4 + C (10) 4
    • onde C ´e uma constante arbitr´aria. Mas, em geral, resolver uma equa¸c˜ao diferencial n˜ao ´e uma tarefa f´acil. N˜ao existe uma t´ecnica sistem´atica que nos permita resolver todas as equa¸c˜oes diferenciais. Se uma equa¸c˜ao diferencial tem apenas uma vari´avel independente, como ´e o caso das equa¸c˜oes (3) e (4), ent˜ao ela ´e uma equa¸c˜ao diferencial ordin´aria (EDO), que ser´a o objeto do nosso estudo neste trabalho. Outros exemplos de equa¸c˜oes diferenciais ordin´arias s˜ao: dy dx = x + y; y = x2 + y2 ; y + (1 − y2 )y = 0 e u + e−u − eu = f(x) (11) Geralmente uma equa¸c˜ao diferencial ordin´aria de ordem n ´e uma equa¸c˜ao da seguinte forma: F(x, y(x), y (x), y (x), y (x), . . . , yn (x)) = 0 (12) onde est˜ao envolvidas a fun¸c˜ao inc´ognita y = y(x) e suas derivadas at´e ordem n, sendo x a vari´avel independente. A nota¸c˜ao yj representa a derivada de ordem j da fun¸c˜ao inc´ognita y em rela¸c˜ao `a vari´avel independente x e pode tamb´em ser representada por dj y dxj (Arenales & Darezzo, 2008). Se a equa¸c˜ao diferencial envolve mais do que uma vari´avel independente ent˜ao ela ´e uma equa¸c˜ao diferencial parcial, como a equa¸c˜ao ∂2 u ∂x2 + ∂2 u ∂y2 = 0 com u ≡ u(x, y) e ∂2 u ∂2β (13) indicando a derivada parcial segunda de u(x, y), em rela¸c˜ao `a vari´avel (β). Figura 2: Aplica¸c˜oes de Equa¸c˜oes Diferenciais Parciais. Em (A) Equa¸c˜oes Diferenciais Parciais s˜ao aplicadas `as leis da conserva¸c˜ao da massa, momento e energia que por sua vez s˜ao a base dos fenˆomenos de transporte. Em (B) Difus˜ao de macromol´eculas e liberta¸c˜ao controlada de medicamentos(Movimento do medicamento atrav´es da pele a partir do local de aplica¸c˜ao). Em (C) Migra¸c˜ao de c´elulas em material prot´estico vascular(Controle do movimento de leuc´ocitos em meio material devido a inflama¸c˜oes). Uma solu¸c˜ao de uma equa¸c˜ao diferencial ordin´aria ´e uma fun¸c˜ao da vari´avel independente que satisfa¸ca a equa¸c˜ao. Assim, 1. dy dx = ˙y = y tem y(x) = a · ex , a ∈ R como solu¸c˜ao; 2. u = 0 ´e satisfeita para u(x) = p2(x) onde p2(x) ´e qualquer polinˆomio de grau 2. Isto ilustra um fato bem geral: uma equa¸c˜ao diferencial possui uma fam´ılia de solu¸c˜oes e n˜ao apenas uma (Ruggiero & Lopes, 1996). Al´em disso uma equa¸c˜ao diferencial ordin´aria ´e dita linear se a fun¸c˜ao e suas derivadas aparecem linearmente na equa¸c˜ao. Assim, xy = x − y ´e linear e y + (1 − y2 )y + y = 0 e u + e−u = f(x) s˜ao n˜ao lineares. 5
    • Figura 3: Uma fam´ılia de solu¸c˜oes para ˙y = y e para ˙y = −y (Ruggiero & Lopes, 1996). Figura 4: Em (A) uma fam´ılia de solu¸c˜oes para dP/dt = kP. Em (B) solu¸c˜oes da equa¸c˜ao log´ıstica (Stewart, 2009). J´a que, como ilustramos anteriormente, uma equa¸c˜ao diferencial n˜ao possui solu¸c˜ao ´unica, vemos que para individualizar uma solu¸c˜ao temos de impor condi¸c˜oes suplementares. Em geral, uma equa¸c˜ao de ordem m requer m condi¸c˜oes adicionais a fim de ter uma ´unica solu¸c˜ao. Em princ´ıpio, estas condi¸c˜oes podem ser de qualquer tipo, por exemplo: y(0) = 1 (14) y (4) = −5 (15) y(2) + 5y (3) = 6 (16) 1 0 xy sin xdx = 0 (17) lim x→∞ y(x) = k (18) Se, dada uma equa¸c˜ao de ordem m, a fun¸c˜ao, assim como suas derivadas at´e ordem m -1, s˜ao especificadas em um mesmo ponto, ent˜ao temos um problema de valor inicial (Ruggiero & Lopes, 1996) (normalmente abreviado para PVI), como s˜ao os casos: 1. y (x) = y y(0) = 1 2. y + (x + 1)y + cos xy − (x2 − 1)y = x2 + y2 sin x + y y(0) = 1.1, y (0) = 2.2, y (0) = 3.3 Se, em problemas envolvendo equa¸c˜oes diferenciais ordin´arias de ordem m, m ≥ 2, as m con- di¸c˜oes fornecidas para a busca de solu¸c˜ao ´unica n˜ao s˜ao todas dadas num mesmo ponto, ent˜ao temos um problema de valor de contorno (Ruggiero & Lopes, 1996) (normalmente abreviado para PVC). 6
    • Um exemplo de problema de contorno ´e o de uma barra de comprimento L sujeita a uma carga uniforme q. Se, no ponto x0 = 0 est´a barra est´a presa e em xL = L ela est´a s´o apoiada, este problema ´e descrito pelo seguinte problema de contorno:    y (x) + ky(x) = q y(0) = y (0) = 0 y(L) = y (L) = 0 (19) onde k ´e uma constante que depende do material da barra. Ao contr´ario do que ocorre com os PVI, ´e comum que problemas de contorno n˜ao tenham unicidade de solu¸c˜ao. Por exemplo, para todo α ∈ R, y(x) = α · (1 + x) ´e a solu¸c˜ao do PVC (Ruggiero & Lopes, 1996):    y = 0 y(−1) = 0 y(1) − 2y (1) = 0 (20) Figura 5: Passos para a resolu¸c˜ao de uma EDO de maneira anal´ıtica. Uma das principais propriedades das equa¸c˜oes diferenciais ordin´arias (EDO), lineares e com coeficientes constantes ´e que elas sempre possuem uma solu¸c˜ao anal´ıtica que pode ser encontrada de forma sistem´atica. No entanto, nem todas as equa¸c˜oes diferenciais possuem esta propriedade, existindo equa¸c˜oes que n˜ao possuem solu¸c˜ao na forma anal´ıtica, logo sua solu¸c˜ao deve ser encontrada de forma num´erica. 2.2 Problemas de Valor Inicial A raz˜ao mais forte para a introdu¸c˜ao de m´etodos num´ericos para a aproxima¸c˜ao de solu¸c˜oes de problemas de valor inicial(PVI) ´e a dificuldade de se encontrar, analiticamente, as solu¸c˜oes da equa¸c˜ao. Em muitos casos, a teoria nos garante a existˆencia e unicidade de solu¸c˜ao, mas n˜ao sabemos qual ´e a express˜ao anal´ıtica desta solu¸c˜ao. Uma condi¸c˜ao que garante a existˆencia e a unicidade da solu¸c˜ao do PVI ´e dado pelo seguinte teorema: Teorema 1 (Existˆencia e Unicidade - Teorema de Picard). Considere uma fun¸c˜ao real f(x, y) cont´ınua no intervalo a ≤ x ≤ b, com a e b finitos e −∞ < y < +∞. Se existe uma constante L tal que para todo x ∈ [a, b] e para todo par (y, y1) tivermos: |f(x, y) − f(x, y1)| ≤ L|y − y1| (Condi¸c˜ao de Lipschitz) ent˜ao existe uma ´unica fun¸c˜ao y = y(x) satisfazendo as seguintes condi¸c˜oes: 1. y(x) ´e cont´ınua e diferenci´avel para todo x ∈ [a, b]; 2. y = f(x, y(x)) para x ∈ [a, b]; 3. y(x0) = y0, onde y0 ´e um valor conhecido. Em outras palavras, a solu¸c˜ao do PVI ´e uma fun¸c˜ao y = y(x) cont´ınua e diferenci´avel que satisfaz a equa¸c˜ao diferencial y = f(x, y) e passa pelo ponto (x0, y0) (a prova desse teorema pode ser encontrada em Sotomayor,J.D.. Vale a pena ressaltar que tal prova baseia-se no teorema do ponto fixo de Banach) (Arenales & Darezzo, 2008; Zill, 2003; Sotomayor, 1979; Zarowski, 2004). Os m´etodos que estudaremos neste pequeno trabalho introdut´orio se baseiam em: dado o PVI: y = f(x, y) y(x0) = y0 (21) 7
    • constru´ımos x1, x2, . . . , xn que, embora n˜ao necessariamente, para n´os ser˜ao igualmente espa- ¸cados, ou seja : xi+1 −xi = h, i = 0, 1, . . . , e calculamos as aproxima¸c˜oes yi y(xi) nestes pontos, usando informa¸c˜oes anteriores. Se, para calcular yj usamos apenas yj−1 teremos um m´etodo de passo simples ou passo um. Por´em, se usarmos mais valores, teremos um m´etodo de passo m´ultiplo. Como estamos trabalhando essencialmente com PVI de primeira ordem, temos uma aproxi- ma¸c˜ao inicial y(x0) para a solu¸c˜ao. Dessa forma, os m´etodos de passo um s˜ao classificados como auto-iniciantes. J´a para os m´etodos de passo m´ultiplo temos de lan¸car m˜ao de alguma estra- t´egia (como usar m´etodos de passo simples) para obtermos as aproxima¸c˜oes iniciais necess´arias (Ruggiero & Lopes, 1996). Outras caracter´ısticas dos m´etodos de passo simples s˜ao: • necessidade de c´alculo do valor de f(x, y) e suas derivadas em muitos pontos; • dificuldades em estimar o erro. 2.3 Discretiza¸c˜ao Resolver numericamente um PVI consiste em calcular aproxima¸c˜oes para y = y(x) em pontos discretos x0, x1, x2, . . . , xN de um intervalo [a, b]. Para discretizar o intervalo [a, b], tomamos N subintervalos N ≥ 1 e fazemos xn = x0 + nh, n = 0, 1, 2, . . . , N com x0 = a e xN = b, sendo h = (xN −x0) N . A este conjunto de pontos x0, x1, x2, . . . , xN denominamos rede ou malha de pontos discretos e calculamos aproxima¸c˜oes para y(x) nestes pontos, isto ´e, determinamos yn tal que yn ∼= y(xn), n = 0, 1, 2, . . . , N. A partir de um ponto inicial dado y(x0) = y0 (valor inicial), calculamos passo a passo, nos pontos x1 = x0 + h, x2 = x0 + 2h, x3 = x0 + 3h, . . . , xn = x0 + nh, solu¸c˜oes aproximadas yn para a solu¸c˜ao exata y(xn), n = 0, 1, 2, . . . , N, conforme ilustrado na Figura 6. Figura 6: O problema da discretiza¸c˜ao e a rela¸c˜ao entre as solu¸c˜oes exatas e num´ericas (Arenales & Darezzo, 2008). O erro local, cometido nas aproxima¸c˜oes em cada ponto, ´e a diferen¸ca entre o valor exato da equa¸c˜ao diferencial e eo valor num´erico aproximado em cada um dos pontos do intervalo [a, b], isto ´e: e(xn) = y(xn) − yn, n = 1, . . . , N (22) 8
    • 2.4 Modelagem de Problemas que Envolvem Equa¸c˜oes Diferenciais Nesta se¸c˜ao ser˜ao listados apenas alguns problemas que podem ser modelados atrav´es de Equa- ¸c˜oes Diferenciais Ordin´arias. A maioria dos problemas s˜ao de natureza f´ısica, por´em vale ressaltar que o escopo para uso das Equa¸c˜oes Diferenciais Ordin´arias ´e ilimitado. Como poder´a ser obser- vado com os modelos de Dinˆamica Populacional e Modelo Predador-Presa. Alguns exemplos de modelagem que podem ser citados s˜ao: Desintegra¸c˜ao Radioativa: Em muitos materiais radioativos, a sua massa decai ao longo do tempo de acordo com a equa¸c˜ao dM dt = −kM, em que M ´e a massa do material num dado instante. Arrefecimento de um Corpo: A temperatura de um corpo T em contacto com um ambiente a uma temperatura A, constante, ´e modelado pela equa¸c˜ao de arrefecimento de Newton dT dt = −k(T − A), em que k ´e uma constante de transmiss˜ao de calor. Circuito RC: Em um circuito constitu´ıdo por uma bateria com diferen¸ca de potencial V, uma resistˆencia R e um condensador de capacidade C. O circuito obedece `as seguintes equa¸c˜oes diferenciais V = RI + Q C e I = dQ dt (23) Dinˆamica Populacional: Um modelo simplificado de dinˆamica poulacional (modelo de Verhulst- Pearl) prevˆe que a varia¸c˜ao da popula¸c˜ao M se fa¸ca de acordo com a equa¸c˜ao diferencial dP dt = −kP 1 − P L (24) em que P ´e a popula¸c˜ao num dado tempo, k uma constante (de crescimento inicial) e L um valor limite. Modelo Predador-Presa: Um sistema ecol´ogico com duas esp´ecies (predador-presa) pode ser modelado pelas equa¸c˜oes abaixo (Lotka-Volterra), neste caso referentes `a varia¸c˜ao do n´umero de raposas (F) e de coelhos (R) dR dt = −aR − bRF e dF dt = ebRF − cF onde os parˆametros tˆem o seguinte significado • a ´e a taxa de crescimento natural de coelhos, na ausˆencia de predadores; • b ´e a taxa de mortalidade por encontro de coelhos com raposas; • c ´e a taxa de mortalidade natural de raposas na falta de coelhos; • e ´e a eficiˆencia de transforma¸c˜ao de coelhos em raposas. Movimento de um Pˆendulo: O movimento de um pˆendulo pode ser modelado atrav´es da equa- ¸c˜ao diferencial d2 α dt2 = − g L sin α − k dα dt (25) em que α ´e o ˆangulo de desvio da vertical em cada instante, m a masssa do pˆendulo (assumindo-se que a massa do fio ´e deprez´avel) g a acelera¸c˜ao da gravidade (9.8ms−2 ), L o comprimento do pˆendulo e k uma constante (nula no caso de um pˆendulo sem fric¸c˜ao). Circuito RLC: Em um circuito constitu´ıdo por uma bateria com diferen¸ca de potencial V, uma resistˆencia R, um condensador de capacidade C e uma bobina de indutˆancia L. O circuito obedece `as seguintes equa¸c˜oes diferenciais V = VR + VC + VL; VL = L dI dt ; VR = RI; VC = Q C e I = dQ dt (26) 9
    • Figura 7: Problemas que s˜ao cotidianamente modelados atrav´es de Equa¸c˜oes Diferenciais Ordin´arias: Circuitos RC, Movimento Pendular e Circuitos RLC. 3 Resolu¸c˜ao de Equa¸c˜oes Diferenciais Ordin´arias 3.1 M´etodos Num´ericos Para a Resolu¸c˜ao de Equa¸c˜oes Diferenciais Or- din´arias O estudo e a implementa¸c˜ao de m´etodos num´ericos para a solu¸c˜ao de equa¸c˜oes diferenciais ordin´arias(EDO) ´e uma ferramenta de grande utilidade para a solu¸c˜ao de muitos problemas, sejam em Matem´atica ou ´areas afins, cuja as t´ecnicas conhecidas de resolu¸c˜ao de equa¸c˜oes diferenciais mediante solu¸c˜oes anal´ıticas, como a integra¸c˜ao ou os desenvolvimentos em s´eries de potˆencias n˜ao se aplicam ou s˜ao de utiliza¸c˜ao muito complicada ou praticamente invi´avel. Desta forma,o emprego de m´etodos num´ericos tˆem a finalidade de se conseguir aproxima¸c˜oes num´ericas muito acuradas em rela¸c˜ao `a solu¸c˜ao exata de uma equa¸c˜ao diferencial do tipo y (x) = f(x, y(x)), onde f(x, y) ´e uma fun¸c˜ao estabelecida. Por´em, para se definir uma ´unica fun¸c˜ao y(x) temos de fornecer dados adicionais `a equa¸c˜ao diferencial para o qual ´e necess´ario uma condi¸c˜ao que denominamos de problema de valor inicial ou problema de valor de contorno, mais se restringiremos somente ao primeiro caso em nosso estudo. Num problema de valor inicial (PVI), procuramos y(x), solu¸c˜ao de uma equa¸c˜ao diferencial em estudo, que satisfa¸ca a seguinte condi¸c˜ao: y (x) = f(x, y); y(x0) = y0 (27) com x0 e y0 sendo valores conhecidos. No entanto o problema descrito acima ´e poss´ıvel de se implementar em uma linguagem de programa¸c˜ao para computadores e tamb´em em algumas calculadoras cient´ıficas port´ateis. Nas se¸c˜oes subsequentes trataremos dos m´etodos num´ericos de passo simples, onde estes re- querem somente o conhecimento de yn para a determina¸c˜ao de yn+1, como o M´etodo de Euler, M´etodo de Euler Inverso, M´etodo de Euler Aprimorado, assim como Runge-Kutta de ordem dois e quatro. Mais adiante trataremos dos m´etodos de passos m´ultiplos, onde estes utilizam dados de outros pontos al´em do ponto pr´evio, digamos yn, yn−1, yn−2 para a determina¸c˜ao de yn+1, como o M´etodo de Adams e f´ormulas inversas de diferencia¸c˜ao, assim como a discuss˜ao de erros e estabilidade destes m´etodos, podendo compar´a-los em rela¸c˜ao aos resultados obtidos nos m´etodos de passo simples. Por´em, antes mesmo da introdu¸c˜ao desses m´etodos, faz-se necess´ario a demostra¸c˜ao de algumas das f´ormulas matem´aticas que regem os mesmos, com a inten¸c˜ao de deixar mais claro e coeso o pr´oposito de nosso estudo. As nota¸c˜oes que ser˜ao usadas ao longo do trabalho s˜ao as seguintes. A solu¸c˜ao exata do problema de valor inicial dado pelas equa¸c˜oes (27) ser´a representada por φ ou y = φ(x), deste modo, o valor da solu¸c˜ao exata em xn ´e φ(xn). Para um dado procedimento num´erico, os s´ımbolos yn e yn = φ(xn, yn) representar˜ao os valores aproximados da solu¸c˜ao exata e de sua derivada no ponto xn. Obviamente, φ(x0) = y0, mas em geral, φ(xn) = yn, para n ≥ 1. De modo an´alogo, φ (x0) = y0, mas em geral, φ (xn) = f[xn, φ(xn)] n˜ao ´e igual a yn = f(xn, yn), para n ≥ 1. Al´em disso, em toda a discuss˜ao, utilizaremos um espa¸camento ou tamanho de passo uniforme h no eixo dos x. Assim, x1 = x0 + h, x2 = x1 + h = x0 + 2h e, em geral xn = x0 + nh. 10
    • 4 M´etodos de Passo Simples 4.1 O M´etodo de Euler O m´etodo de Euler ´e o m´etodo num´erico mais elementar de um passo para a resolu¸c˜ao de equa¸c˜oes diferenciais ordin´arias. Deste modo,vamos discutir o desenvolvimento e o emprego dos procedimentos num´ericos deste m´etodo. Primeiramente, vamos nos concentrar principalmente nos problemas de valor inicial de equa¸c˜oes diferenciais de primeira ordem, constitu´ıdos pela equa¸c˜ao diferencial y = f(x, y) eq.1 (28) e pela condi¸c˜ao inicial y(x0) = y0 eq.2 (29) e seguiremos o seguinte teorema Teorema 2. Sejam as fun¸c˜oes f e fy cont´ınuas num certo retˆangulo α < x < β; γ < y < δ que cont´em o ponto (x0, y0). Ent˜ao num certo intervalo x0 − h < x < x0 + h, contido em α < x < β h´a uma ´unica solu¸c˜ao y = f(x) do problema de valor inicial: y (x) = f(x, y); y(x0) = y0 (30) A primeira tentativa de resolu¸c˜ao num´erica de uma equa¸c˜ao diferencial foi feita por Eu- ler,aproximadamente em 1768. Usou o que se chama hoje o m´etodo da reta tangente, ou tamb´em m´etodo de Euler. Uma vez que, x0 e y0 s˜ao conhecidos, a inclina¸c˜ao ou coeficiente angular da reta tangente `a solu¸c˜ao em x = x0, especificamente f0(x0) = f(x0, y0), tamb´em ´e conhecida. Deste modo, podemos construir a reta tangente `a solu¸c˜ao em x0, e ent˜ao obter um valor aproximado y1 de f(x1) por meio de um deslocamento ao longo da reta tangente desde de x0 at´e x1. Assim, y1 = y0 + φ (x0)(x1 − x0) = y0 + f(x0, y0)(x1 − x0) eq.3 (31) Uma vez que se tenha determinado y1, podemos calcular y1 = f(x1, y1) e usar este valor como o coeficiente angular para uma nova aproxima¸c˜ao, ao nos deslocarmos de x1 at´e x2. Obtendo assim, y2 = y1 + y1(x2 − x1) = y1 + f(x1, y1)(x2 − x1) eq.4 (32) Em geral y1 = f(x1) e ent˜ao, em geral, f(x1, y1) n˜ao ´e igual a f[x1, f(x1)], que ´e o coeficiente angular da solu¸c˜ao exata em x1. Continuando desta maneira, usamos o valor de y calculado em cada passo para determinar o coeficiente angular da aproxima¸c˜ao do passo seguinte. A f´ormula geral da aproxima¸c˜ao de Euler ´e: yn+1 = yn + f(xn, yn)(xn+1 − xn) eq.5 (33) Se admitirmos que o incremento h entre os pontos x0, x1, x2, . . . seja uniforme, ent˜ao xn+1 = xn + h e a f´ormula de Euler assumem o aspecto yn+1 = yn + hf(xn, yn) = yn + hfn, n = 0, 1, 2, . . . eq.6 (34) Antes de discutirmos o m´etodo de Euler com mais profundidade, ilustraremos o seu uso num problema de valor inicial. 11
    • Consideremos o problema a seguir: y = x − 2xy (eq.7), y(0) = 1 (eq.8) (35) No decorrer deste trabalho, usaremos este pequeno exemplo para demostra¸c˜oes e compara¸c˜oes dos diferentes m´etodos num´ericos. A equa¸c˜ao (7)[35] ´e uma equa¸c˜ao diferencial ordin´aria linear de primeira ordem, cuja solu¸c˜ao satisfaz a condi¸c˜ao inicial (8)[35]. Deste modo, obteremos a solu¸c˜ao geral e particular da equa¸c˜ao diferencial proposta. Sabemos que uma equa¸c˜ao diferencial ordin´aria linear de primeira ordem, tem a forma: y + p(x)y = q(x) (eq.9), (36) onde p(x) e q(x) s˜ao fun¸c˜oes cont´ınuas dadas, num certo intervalo α < x < β , segundo o Teorema 2; Assim da eq.(9)[36], obtemos o fator integrante: µ(x) = e R p(x)dx (eq.10), (37) e a sua primitiva ´e: y(x)e R p(x)dx = q(x)e R p(x)dx dx + C (eq.11) (38) A constante arbitr´aria C ´e usada para satisfazer a condi¸c˜ao inicial estabelecida no problema. Desta maneira, podemos escrever a equa¸c˜ao(7) na forma da equa¸c˜ao(9) acima. y + 2xy = x (eq.12) (39) onde p(x) = 2x e q(x) = x s˜ao fun¸c˜oes cont´ınuas no intervalo [0, 1] escolhido. O fator integrante ´e: µ(x) = e R 2xdx = ex2 (eq.13) (40) e sua primitiva ´e: y(x)ex2 = xex2 dx + C (eq.14) (41) onde; xex2 dx = 1 2 ex2 + C (eq.15) (42) utilizando-se a integra¸c˜ao por mudan¸ca de vari´avel. Atrav´es da condi¸c˜ao inicial (8), encontramos que c = 1 2 e assim; y = φ(x) = 1 2 + 1 2 e−x2 (eq.16) (43) ´e a solu¸c˜ao particular do problema dado. Uma vez que a solu¸c˜ao exata ´e conhecida, n˜ao precisamos de m´etodos num´ericos para resolver o problema de valor inicial (7) e (8). Mas por outro lado, a disponibilidade de uma solu¸c˜ao exata facilitar´a o c´alculo da exatid˜ao dos diversos procedimentos num´ericos que ser˜ao adotados neste problema e nos demais seguintes. Tomemos como exemplo, a utiliza¸c˜ao da f´ormula de Euler (6), com um incremento h = 0, 1; e, em seguida para h = 0, 05, onde deseja-se calcular um valor aproximado da solu¸c˜ao y = φ(x) em x = 0, 2 para o problema de valor inicial (7) e (8). Identificamos inicialmente yn = f(x, y) = x − 2xy, de modo que a f´ormula de Euler (6) se escreve como : yn+1 = yn + h(xn − 2xnyn) Ent˜ao, para h = 0, 1, utilizando a f´ormula do m´etodo de Euler, calculamos inicialmente, y0 = f(0, 1) = 0 − 2 · 0 · 1 = 0 12
    • ent˜ao, y1 = y0 + hf(0, 1) = 1 + (0, 1) · 0 = 1 Na etapa seguinte, y2 = y1 + hf(x1, y1) = 1 + (0, 1)f(0, 1; 1) = 1 + (0, 1) · (0, 1 − 2 · 0, 1 · 1) = 1 + (0, 1) · (−0, 1) = 0, 99. Isto ´e uma estimativa do valor de y(0, 2) com x = 0, 2. Entretanto, tomando h = 0, 05, tornam-se necess´arias quatro itera¸c˜oes para chegarmos a x = 0, 2. Se prosseguirmos com a aproxima¸c˜ao do m´etodo de Euler, ao longo do intervalo desejado [0, 1], obedecendo os valores de incremento determinados h = 0, 1 e h = 0, 05, encontraremos os demais valores aproximados da solu¸c˜ao exata. Seguindo a elabora¸c˜ao de um algoritmo para o m´etodo (podendo utilizar um programa em linguagem C, por exemplo) obteremos os demais valores de xn ao longo do intervalo analisado. Desta forma, podemos construir uma tabela de dados que nos permitir´a estruturar, para uma melhor an´alise, `as demais solu¸c˜oes aproximadas.[Para uma melhor introdu¸c˜ao a algoritmos e linguagens de programa¸c˜ao ler ”Aprendendo a Programar Programando em C”] (Evaristo, 2001) Figura 8: Ilustra¸c˜ao do m´etodo de Euler. Observe como se comporta o gr´afico em rela¸c˜ao a solu¸c˜ao num´erica (m´etodo de Euler) e anal´ıtica de uma equa¸c˜ao diferencial ordin´aria de 1a ordem. O m´etodo pode ser aplicado com o uso de l´apis, papel e calculadora. No entanto, este processo ´e fastidioso pelo n´umero de itera¸c˜oes. Seu desenvol- vimento utilizando um computador ´e muito mais simples. Repare que o valor do passo ´e escolhido considerando-se o erro desejado. O erro no m´etodo de Euler ´e da ordem de O(h2). ALGORITMO DO M´ETODO DE EULER • No intervalo , selecione os pontos x0 < x1 < . . . < xn = x0 + nh com um incremento h = (x0+nh)−x0 n entre eles. • Calcule a aproxima¸c˜ao x1 de φ(x1) usando a f´ormula descrita pelo m´etodo x1 = x0 + hf(x0, y0) • Agora, calcule a aproxima¸c˜ao x2 de φ(x2) usando novamente a f´ormula descrita pelo m´etodo x2 = x1 + hf(x1, y1) • Continue o processo e obtenha as aproxima¸c˜oes x3, x4, . . . , xn usando sucessivamente a f´or- mula xn+1 = xn + hf(xn, yn) ao longo do intervalo [x0, x0 + nh]. 13
    •  ¨§ ¤ 1 Entre com a funcao f(x, y) . 2 Entre com os v a l o r e s i n i c i a i s x0 e y0 . 3 Entre com o passo h . 4 Enquanto xn < xfinal Execute : 5 Escreva n, xn, yn . 6 Avalie xn+1 = xn + h . 7 Avalie yn+1 = yn + h · f(xn, yn) . 8 Faca xn = xn+1 e yn = yn+1 9 Fim.  ©¦ ¥ C´odigo Fonte 1: Algoritmo Simplificado do M´etodo de Euler, tamb´em conhecido como m´etodo da reta secante. ´E um dos m´etodos mais antigos que se conhece para a solu¸c˜ao de equa¸c˜oes diferenciais ordin´arias. Problemas pr´aticos n˜ao devem ser resolvidos com o m´etodo de Euler. Existem outros m´etodos que proporcionam resultados com uma melhor precis˜ao e estabilidade se comparados ao m´etodo de Euler para o mesmo passo. Para ilustrar ainda mais a obten¸c˜ao dos valores do exemplo padr˜ao, exibiremos uma pequena implementa¸c˜ao do M´etodo de Euler em C++ [C´odigo Fonte 2]. Observe que neste exemplo de codifica¸c˜ao utilizamos h = 0.001 apenas a t´ıtutlo explorat´orio. Na tabela de valores utilizamos a equa¸c˜ao y = x − 2xy, y(0) = 1 que possibilitou gerar os demais valores aproximados xn ao longo do intervalo em [0, 1] com valores de incrementos h = 0, 1 e h = 0, 05.  ¨§ ¤ 1 #i n c l u d e <cmath> 2 #i n c l u d e <c s t d l i b > 3 #i n c l u d e <iostream> 4 5 /∗ Solucao y(x) da equacao − Definicao da funcao ∗/ 6 double y ( double x ) { return . . . } 7 8 /∗ A funcao f(x, y) ∗/ 9 double f ( double x , double y ) { return . . . } 10 11 /∗ Funcao P r i n c i p a l do Programa ∗/ 12 int main( int argc , char∗ argv [ ] ) 13 { 14 double xn , xn1 , xmax ; /∗ v a r i a v e i s xn e xn+1 ∗/ 15 double yn , yn1 ; /∗ v a r i a v e i s yn e yn+1 ∗/ 16 double y0 , x0 ; /∗ v a l o r e s i n i c i a i s de y e x ∗/ 17 double h ; /∗ passo ∗/ 18 int n ; 19 20 x0 = 0 . 0 ; /∗ v a lo r i n c i a l para x ∗/ 21 y0 = 1 . 0 ; /∗ v a lo r i n i c i a l para y ∗/ 22 xmax = 2 . 0 ; /∗ v a lo r maximo para x ∗/ 23 h = 0 . 0 0 1 ; /∗ o v a l or do passo ∗/ 24 xn = t0 ; 25 yn = y0 ; 26 n = 0 ; /∗ numero de i t e r a c o e s ∗/ 27 while ( xn < xmax) 28 { 29 /∗ Escreva os v a l o r e s das v a r i a v e i s ∗/ 30 std : : cout << n << " t " << xn << " t " << yn << " t " << y ( xn ) << std : : endl ; 31 32 /∗ Estime yn+1 pelo metodo de Euler ∗/ 33 yn1 = yn + h∗ f ( xn , yn ) ; 34 xn1 = xn + h ; 35 36 /∗ Atribua os v a l o r e s para a proxima i t e r a c a o ∗/ 37 n = n + 1 ; 38 yn = yn1 ; 39 xn = xn1 ; 40 } 41 42 /∗ Termino do programa ∗/ 43 return EXIT SUCCESS ; 44 }  ©¦ ¥ C´odigo Fonte 2: Exemplo de um programa em C++ para a solu¸c˜ao de uma EDO pelo m´etodo de Euler. Este programa foi escrito apenas com intuito did´atico, o uso de outras t´ecnicas inerentes a linguagem como Orienta¸c˜ao `a Objetos, defini¸c˜ao de classes para avalia¸c˜ao de fun¸c˜oes, Objetos-Fun¸c˜ao e o pr´oprio uso da STL podem dar um semblante mais profissional ao pequeno trecho de c´odigo apresentado. Nas tabelas [1] e [2], os valores encontrados para a solu¸c˜ao exata, foram calculados a partir 14
    • xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,10 1,0000 0,9950 0,0050 0,50 0,20 0,9900 0,9804 0,0096 0,97 0,30 0,9704 0,9570 0,0134 1,40 0,40 0,9422 0,9261 0,0161 1,73 0,50 0,9068 0,8894 0,0233 2,61 0,60 0,8661 0,8488 0,0174 2,04 0,70 0,8222 0,8063 0,0159 1,97 0,80 0,7771 0,7636 0,0135 1,76 0,90 0,7327 0,7224 0,0103 1,42 1,00 0,6908 0,6839 0,0069 1,00 Tabela 1: Resultado da aplica¸c˜ao do m´etodo de Euler, com valor do incremento h = 0, 1, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1 xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,05 1,0000 0,9988 0,0012 0,12 0,10 0,9975 0,9950 0,0025 0,25 0,15 0,9925 0,9889 0,0036 0,36 0,20 0,9851 0,9804 0,0047 0,47 0,25 0,9754 0,9697 0,0057 0,58 0,30 0,9635 0,9570 0,0065 0,67 0,35 0,9496 0,9424 0,0072 0,76 0,40 0,9339 0,9261 0,0078 0,84 0,45 0,9165 0,9083 0,0082 0,90 0,50 0,8978 0,8894 0,0084 0,94 0,55 0,8779 0,8695 0,0084 0,96 0,60 0,8571 0,8488 0,0083 0,97 0,65 0,8357 0,8277 0,0080 0,96 0,70 0,8138 0,8063 0,0075 0,93 0,75 0,7919 0,7848 0,0071 0,90 0,80 0,7700 0,7636 0,0064 0,83 0,85 0,7484 0,7428 0,0056 0,75 0,90 0,7273 0,7224 0,0049 0,67 0,95 0,7068 0,7028 0,0040 0,56 1,00 0,6871 0,6839 0,0032 0,46 Tabela 2: Resultado da aplica¸c˜ao do m´etodo de Euler, com valor do incremento h = 0, 05, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1. 15
    • da solu¸c˜ao anal´ıtica y = φ(x) = 1 2 + 1 2 e−x2 . Por outro lado, define-se o erro absoluto como: |exata − aprox|. Por outro lado, o erro relativo e erro relativo percentual s˜ao definidos como: |exata − aprox| |exata| e |exata − aprox| |exata| · 100 = erro absoluto |exata| · 100 Um programa de computador permite-nos examinar aproxima¸c˜oes do gr´afico da solu¸c˜ao y(x) de um problema de valor inicial, tra¸cando os gr´aficos de retas pelos pontos (xn, yn) gerados pelo m´etodo de Euler. Figura 9: Aqui comparamos no intervalo [0,1], o gr´afico da solu¸c˜ao exata do problema de valor inicial (B) com o gr´afico obtido pelo m´etodo de Euler (A) utilizando o valores para h = 0, 05. Se fizessemos um comparativo para h = 0, 1 seria f´acil observar que a aproxima¸c˜ao melhora quando o passo diminui. Um fato relevante, ao adotar um procedimento num´erico, como o m´etodo de Euler, ´e ter sempre em mente a quest˜ao de saber se os resultados s˜ao suficientemente muito pr´oximos da solu¸c˜ao exata para terem utilidade. No exemplo precedente, a exatid˜ao dos resultados num´ericos pode ser verificada graficamente, pela compara¸c˜ao com a solu¸c˜ao exata. Pois ´e natural, n˜ao se dispor, em geral, da solu¸c˜ao exata quando se adota um procedimento num´erico. Vamos agora apontar trˆes maneiras de demonstrar a f´ormula de Euler (6), que sugerem formas de se encontrar f´ormulas melhores, e que tamb´em ajudam na investiga¸c˜ao dos erros cometidos com ado¸c˜ao da equa¸c˜ao (6). Em primeiro lugar, vamos escrever a equa¸c˜ao diferencial (1) no ponto x = xn na forma dφ dt (xn) = f[xn, φ(xn)] (eq.17) (44) Em seguida, aproximamos a derivada da equa¸c˜ao (17) pela rela¸c˜ao [φ(xn+1)−φ(xn)]/xn+1−xn, e como, h = xn+1 − xn, obtendo-se assim φ(xn+1) − φ(xn) h ∼= f[xn, φ(xn)] (eq.18) (45) Finalmente, substitu´ımos φ(xn+1) e φ(xn) pelos valores aproximados yn+1 e yn respectiva- mente, obtendo a f´ormula de Euler (6) yn+1 = yn + hfn Em segundo lugar, como y = φ(x) ´e uma solu¸c˜ao do problema de valor inicial (1), (2), e φ (x) = f[x, φ(x)], desta forma integrando-se de xn a xn+1, obtemos xn+1 xn φ (x)dt = xn+1 xn f[x, φ(x)]dt Aplicando o 1o Teorema Fundamental do C´alculo no 1o membro da igualdade, temos que : 16
    • φ(x)|xn+1 xn = xn+1 xn f[x, φ(x)]dt φ(xn+1) − φ(xn) = xn+1 xn f[x, φ(x)]dt φ(xn+1) = φ(xn) + xn+1 xn f[x, φ(x)]dt (eq.19) (46) Se aproximarmos a integral, pela substitui¸c˜ao de f[x, φ(x)] por seu valor f[xn, φ(xn)] em x = xn. Desta maneira, obteremos : φ(xn+1) ∼= φ(xn) + f[xn, φ(xn)](xn+1 − xn) φ(xn+1) = φ(xn) + hf[xn, φ(xn)] (eq.20) (47) Finalmente para se ter uma aproxima¸c˜ao yn+1 para φ(xn+1) fazemos uma segunda aproxima¸c˜ao pela substitui¸c˜ao de φ(xn) por seu valor aproximado yn na equa¸c˜ao (20). Isto nos leva `a f´ormula de Euler (6) yn+1 = yn + hf(xn, yn) Pode-se obter uma f´ormula mais exata, se a integral for aproximada com maior exatid˜ao. Em terceiro lugar, vamos admitir que a solu¸c˜ao y = φ(x) tenha uma s´erie de Taylor em torno do ponto x = xn, ent˜ao : φ(xn + h) = φ(xn) + φ (xn)h + φ (xn) h2 2! + . . . ou φ(xn + h) = φ(xn) + f[xn, φ(xn)]h + φ (xn) h2 2! + . . . (eq.21) (48) Se a s´erie for truncada depois dos primeiros termos, e se φ(xn+1) e φ(xn) forem substitu´ıdas pelos valores aproximados yn+1 e yn obteremos outra vez a f´ormula de Euler (6) : yn+1 = yn + hf(xn, yn) Quando utilizamos mais termos da s´erie, conseguimos f´ormulas mais exatas e precis˜oes muito maiores. 4.1.1 F´ormula de Euler Inversa Uma variante da f´ormula de Euler pode ser obtida aproximando a derivada da equa¸c˜ao (17) pela express˜ao [φ(xn) − φ(xn−1)]/h em vez de usar a express˜ao do lado esquerdo da equa¸c˜ao (18). Desta forma, obtemos : φ(xn) − φ(xn−1) ∼= hf(xn, yn) ou yn = yn−1 + hf(xn, yn) Mudando o ind´ıce de n para n + 1, obtemos a f´ormula de Euler inversa yn+1 = yn + hf(xn+1, yn+1) (eq.22) (49) 17
    • Supondo que yn seja conhecido e que yn+1 deva ser calculado, observe que a equa¸c˜ao (22) n˜ao fornece uma f´ormula expl´ıcita para calcular yn+1. Em vez disso, a equa¸c˜ao define yn+1 implicitamente e deve ser resolvida para determinar o valor de yn+1. Como exemplo, use a f´ormula de Euler inversa (22) para determinar valores aproximados da solu¸c˜ao do problema de valor inicial (7) e (8). Use h = 0, 1 e determine y1 e y2. No primeiro passo, temos: y1 = y0 + hf(x1, y1) = 1 + (0, 1)(0, 1 − 2 · (0, 1) · y1) Tirando o valor de y1, obtemos: y1 = 1, 01/1, 02 = 0, 99019607 com uma precis˜ao de oito algarismos significativos. Observe que como a equa¸c˜ao diferencial ´e linear, a equa¸c˜ao impl´ıcita para calcular y1 tamb´em ´e linear e portanto f´acil de resolver. Em seguida, temos: y2 = y1 + hf(x2, y2) = 0, 99019607 + (0, 1)(0, 2 − 2 · (0, 2) · y2), o que leva a y2 = 1, 01019607/1, 04 = 0, 971342375 Os valores de y1 e y2 determinados podem ser comparados com os valores correspondentes da solu¸c˜ao exata, φ(0, 2) = 0, 9804. Continuando o processo iniciado no exemplo anterior e tomando os mesmos valores para o incremento h = 0, 1 e h = 0, 05, respectivamente, podemos gerar os dados que aparecem na Tabela (3) e (4) xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,10 0,9902 0,9950 0,0048 0,48 0,20 0,9713 0,9804 0,0091 0,93 0,30 0,9447 0,9570 0,0123 1,30 0,40 0,9117 0,9261 0,0143 1,57 0,50 0,8743 0,8894 0,0151 1,72 0,60 0,8342 0,8488 0,0146 1,75 0,70 0,7932 0,8063 0,0132 1,65 0,80 0,7527 0,7636 0,0109 1,45 0,90 0,7142 0,7224 0,0083 1,15 1,00 0,6785 0,6839 0,0055 0,80 Tabela 3: Resultado da aplica¸c˜ao do m´etodo de Euler inversa, com valor do incremento h = 0, 1, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1. Comparando os resultados da Tabela (1) e da Tabela (2), vemos que para este problema, a f´ormula de Euler inversa ´e um pouco menos precisa que a f´ormula de Euler expl´ıcita. J´a que ela tamb´em ´e um pouco mais dif´ıcil de usar, podemos ficar a nos perguntar por que nos demos o trabalho de mencion´a-la. A resposta ´e que trata do exemplo mais simples de uma classe de m´etodos conhecidos como f´ormulas inversas de diferencia¸c˜ao que podem ser muito ´uteis para resolver certas classes de equa¸c˜oes diferenciais (Boyce & DiPrima, 2005; Zill, 2003). 4.1.2 F´ormula de Euler Aprimorada Uma f´ormula aproximada melhor pode ser obtida se o integrando na equa¸c˜ao (19) for apro- ximado com maior exatid˜ao. Uma forma de conseguir esta melhoria ´e a de substituir o inte- grando pela m´edia dos seus valores nas duas extremidades do intervalo de integra¸c˜ao, ou seja, por {f[xn, φ(xn)] + f[xn+1, φ(xn+1)]}/2. Al´em disso, se substituirmos φ(xn) e φ(xn+1) pelos respectivos valores aproximados yn e yn+1, obteremos, da equa¸c˜ao (22), yn+1 = yn + f(xn, yn) + f(xn+1, yn+1) 2 h (eq.23) (50) 18
    • xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,05 0,9975 0,9988 0,0024 0,12 0,10 0,9926 0,9950 0,0025 0,24 0,15 0,9853 0,9889 0,0036 0,36 0,20 0,9758 0,9804 0,0046 0,47 0,25 0,9642 0,9697 0,0055 0,57 0,30 0,9507 0,9570 0,0063 0,66 0,35 0,9354 0,9424 0,0069 0,74 0,40 0,9187 0,9261 0,0074 0,80 0,45 0,9007 0,9083 0,0077 0,85 0,50 0,8816 0,8894 0,0078 0,88 0,55 0,8617 0,8695 0,0078 0,90 0,60 0,8412 0,8488 0,0076 0,90 0,65 0,8204 0,8277 0,0073 0,89 0,70 0,7994 0,8063 0,0069 0,86 0,75 0,7785 0,7848 0,0064 0,81 0,80 0,7579 0,7636 0,0057 0,75 0,85 0,7377 0,7428 0,0051 0,68 0,90 0,7180 0,7224 0,0044 0,60 0,95 0,6992 0,7028 0,0036 0,51 1,00 0,6810 0,6839 0,0029 0,42 Tabela 4: Resultado da aplica¸c˜ao do m´etodo de Euler inversa, com valor do incremento h = 0, 05, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1 Uma vez que a inc´ognita yn+1 aparece como um dos argumentos de f no segundo membro da equa¸c˜ao (23) ´e muitas vezes bastante dif´ıcil resolver esta equa¸c˜ao em yn+1. Esta dificuldade pode ser superada pela substitui¸c˜ao, no segundo membro da equa¸c˜ao (23), de yn+1 pelo valor obtido mediante a f´ormula de Euler (6). Assim, yn+1 = yn + f(xn, yn) + f[xn + h, yn + hf(xn, yn)] 2 h yn+1 = yn + fn + f[xn + h, yn + hfn] 2 h (eq.24) (51) onde xn+1 foi substitu´ıdo por xn + h. A equa¸c˜ao (24) d´a uma f´ormula para o c´alculo de yn+1, o valor aproximado de φ(xn+1), em termos dos dados em xn. ´E conhecido como f´ormula de Euler aprimorada ou f´ormula de Heun. O aprimoramento da equa¸c˜ao (22) em rela¸c˜ao `a f´ormula de Euler(6) est´a em que o erro de truncamento local, com a equa¸c˜ao (24) ´e proporcional a O(h3 ), enquanto com m´etodo de Euler ´e proporcional a O(h2 ). Nota-se que esta melhoria da exatid˜ao ´e conseguida `as custas de maior quantidade de trabalho computacional, pois se tem que estimar f(x, y) duas vezes a fim de passar de xn para xn+1. Se f(x, y) depender exclusivamente de x e n˜ao de y, a resolu¸c˜ao da equa¸c˜ao diferencial y = f(x, y) se reduz `a integra¸c˜ao de f(x). Neste caso, a f´ormula de Euler aprimorada (24) fica yn+1 − yn = h 2 [f(xn) + f(xn + h)] (eq.25) (52) que ´e a regra do trap´ezio para a integra¸c˜ao num´erica. 4.2 O M´etodo dos Trˆes Termos da S´erie de Taylor Vimos em uma se¸c˜ao anterior que a f´ormula de Euler, yn+1 = yn + hf(xn, yn), para resolver o problema de valor inicial y = f(x, y), y(x0) = y0 pode ser deduzida retendo-se os dois primeiros termos na s´erie de Taylor para a solu¸c˜ao y = φ(x) em torno do ponto y = xn. Pode-se obter uma f´ormula mais precisa usando-se os trˆes primeiros termos. Considerando-se que φ tem, pelo menos, trˆes derivadas cont´ınuas no intervalo de interesse (ou seja, ´e pelo menos de classe C3 e 19
    • xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,10 0,9950 0,9950 0,0000 0,00 0,20 0,9803 0,9804 0,0001 0,10 0,30 0,9569 0,9570 0,0001 0,01 0,40 0,9260 0,9261 0,0001 0,01 0,50 0,8894 0,8894 0,0000 0,00 0,60 0,8545 0,8488 0,0057 0,67 0,70 0,8114 0,8063 0,0051 0,63 0,80 0,7682 0,7636 0,0046 0,60 0,90 0,7264 0,7224 0,0040 0,55 1,00 0,6875 0,6839 0,0036 0,52 Tabela 5: Resultado da aplica¸c˜ao do m´etodo de Euler aprimorado, com valor do incremento h = 0, 1, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1. f tem derivadas parciais de segunda ordem cont´ınuas) e usando a s´erie de Taylor com um resto, obtemos φ(xn + h) = φ(xn) + φ (xn)h + φ (xn) h2 2! + φ (xn) h3 3! (eq.26) (53) onde xn ´e algum ponto no intervalo xn < xn < xn + h. Da equa¸c˜ao (17), φ (xn) = f[xn, φ(xn)] Al´em disso, φ (xn) pode ser calculado da equa¸c˜ao anterior : φ (x) = fx[x, φ(x)] + fy[x, φ(x)]φ (x) (eq.27) (54) Deste modo, φ (xn) = fx[xn, φ(xn)] + fy[xn, φ(xn)]φ (xn) (eq.28) (55) Obt´em-se a f´ormula dos trˆes termos da s´erie de Taylor substituindo φ(xn) por seu valor apro- ximado yn nas f´ormulas para φ (xn) e φ (xn) e ent˜ao desprezando o termo φ (xn)/3! na equa¸c˜ao (26). Assim, obtemos: yn+1 = yn + hyn + h2 2 yn (eq.29) (56) onde yn = f(xn, yn) (eq.30) (57) e yn = fx(xn, yn) + fy(xn, yn)yn (eq.31) (58) Assim, yn+1 = yn + hf(xn, yn) + h2 2 [fx(xn, yn) + fy(xn, yn)f(xn, yn)] (eq.32) (59) ´E trivial mostrar, considerando-se que φ(xn) = yn, que o erro de f´ormula local en+1 associado `a f´ormula |exata − aprox| ´e: en+1 = φ(xn+1) − yn+1 = 1 6 φ (xn)h3 (eq.33) (60) onde xn < xn < xn + h. Assim, o erro de f´ormula local para a f´ormula dos trˆes termos da s´erie de Taylor ´e proporcional a O(h3 ) exatamente como na f´ormula de Euler aprimorada discutida na se¸c˜ao anterior. Novamente, pode-se tamb´em mostrar que, para um intervalo finito, o erro de f´ormula acumulado n˜ao ´e maior que uma constante vezes O(h2 ). 20
    • A f´ormula dos trˆes termos da s´erie de Taylor requer o c´alculo de fx(x, y) e fy(x, y) e ent˜ao a avalia¸c˜ao destas fun¸c˜oes, bem como de f(x, y) em (xn, yn). Em alguns problemas, pode ser dif´ıcil, ou bastante demorado, o c´alculo de fx e fy. Se este for o caso, ser´a provavelmente melhor usar uma f´ormula com precis˜ao compar´avel, tal como a f´ormula de Euler aprimorada, que n˜ao requer as derivadas parciais fx e fy. Em princ´ıpio, f´ormulas de quatro termos, ou mesmo mais, da s´erie de Taylor podem ser desenvolvidas. Entretanto, tais f´ormulas envolvem derivadas parciais de f ainda menores e s˜ao, em geral, impr´oprias para uso. xn yn Solu¸c˜ao Exata Erro Absoluto Erro Relativo % 0,00 1,0000 1,0000 0,0000 0,00 0,10 0,9900 0,9950 0,0050 0,50 0,20 0,9793 0,9804 0,0011 0,11 0,30 0,9507 0,9570 0,0062 0,64 0,40 0,9150 0,9261 0,0111 1,19 0,50 0,8739 0,8894 0,0155 1,74 0,60 0,8297 0,8488 0,0191 2,25 0,70 0,7842 0,8063 0,0221 2,74 0,80 0,7393 0,7636 0,0243 3,18 0,90 0,6967 0,7224 0,0257 3,55 1,00 0,6226 0,6839 0,0613 8,96 Tabela 6: Resultado da aplica¸c˜ao dos trˆes termos da s´erie de Taylor, com valor do incremento h = 0, 1, na resolu¸c˜ao num´erica de y = x − 2xy, y(0) = 1 4.3 O M´etodo de Runge-Kutta Os m´etodos de Runge-Kutta s˜ao os mais usados dentre aqueles apropriados para os problemas de valor inicial. Os seus atrativos s˜ao simplicidade, alta precis˜ao e versatilidade nas aplica¸c˜oes a serem utilizadas (Hull et al., 1972; Stabrowski, 1997; Gear, 1971). Tomemos a equa¸c˜ao diferencial de primeira ordem, com o seguinte problema de valor inicial y = f(x, y), y(x0) = y0. Considerando a malha definida pelo passo h, podemos usar a f´ormula de diferen¸cas finitas avan¸cada para discretizar a derivada de y(x) no ponto xk. Assim, obtemos uma vers˜ao discretizada de (18) yk+1 − yk h = f(xk, yk) (eq.34) (61) Esta equa¸c˜ao permite que calculemos yk+1 a partir de yk, e define o M´etodo de Euler (1707-1783), estabelecido em 1768. Sua aplica¸c˜ao ´e muito simples: y0 = y(x0) yk+1 = yk + hf(xk, yk), para k = 0, 1, 2, . . . O m´etodo num´erico de Euler foi usado por Cauchy (1789-1857) em um procedimento matem´a- tico para demonstrar a existˆencia de solu¸c˜ao para o problema do valor inicial. O argumento de Cauchy foi generelizado por Lipschitz (1832-1903), exigindo menos da fun¸c˜ao f(x, y). Como vimos anteriormente, a f´ormula avan¸cada introduz erro da ordem de h em cada passo. E nas se¸c˜oes anteriores, como introduzimos a f´ormula de Euler, a f´ormula de Euler aprimorada e a f´ormula de Taylor com trˆes termos, verifica-se que os erros de truncamento locais nesses m´etodos s˜ao proporcionais a h2 , h3 e h3 , respectivamente. Todos eles pertencem `a chamada classe de m´etodos de Runge-Kutta. A id´eia de Euler tem vers˜oes de maior precis˜ao nos trabalhos de Runge em 1895, para o caso de uma equa¸c˜ao, e Kutta em 1901, para o caso de sistemas de equa¸c˜oes diferenciais de primeira ordem. 21
    • 4.3.1 O M´etodo Runge-Kutta de Segunda Ordem. Consideremos inicialmente os m´etodos Runge-Kutta de segunda ordem definidos pela expres- s˜ao: yk+1 − yk h = β0f(xk, yk) + β1f(xk + γh, yk + δh), onde os parˆametros β0, β1, γ e δ ser˜ao convenientemente calculados de modo a aumentar a precis˜ao do resultado. Explicitando yk+1 nesta rela¸c˜ao, temos : yk+1 = yk + hβ0f(xk, yk) + hβ1f(xk + γh, yk + δh) (eq.35) (62) O ´ultimo termo do lado direito desta equa¸c˜ao pode ser desenvolvido atrav´es da s´erie de Taylor para fun¸c˜oes de duas vari´aveis, isto ´e : f(xk + γh, yk + δh) = f(xk, yk) + hγfx(xk, yk) + hδfy(xk, yk) + 1 2 [h 2 γ 2 fxx(xk, yk) + 2h 2 γδfxy(xk, yk) + h 2 δ 2 fyy(xk, yk)] + O(h 3 ) Levando esta expans˜ao para a equa¸c˜ao (35) e agrupando os termos de iguais potˆencias de h teremos: yk+1 = yk + [(β0 + β1)f(xk, yk)] + h2 2 [2β1γfx(xk, yk) + 2β1δfy(xk, yk)] + h3 6 [3β1γ2 fxx(xk, yk) + 6β1γδfxy(xk, yk) + 3β1δ2 fyy(xk, yk)] + O(h4 ) Nos m´etodos de Runge-Kutta adota-se, como crit´erio de escolha dos quatro parˆametros β0, β1, γ e δ, a ordem de aproxima¸c˜ao dos valores de yk+1 obtidos. Detalharemos a seguir apenas o caso simples, que ´e chamado Runge-Kutta de segunda ordem. Tomando os desenvolvimentos feitos, vamos escolher β0, β1, γ e δ de modo que os multiplicadores de h e h2 sejam iguais nas duas express˜oes. Desta maneira, os parˆametros devem satisfazer `as trˆes rela¸c˜oes; β0 + β1 = 1 2β1γ = 1 2β1δ = f(xk, yk) Como s˜ao quatro os parˆametros e trˆes as condi¸c˜oes que eles devem satisfazer, existem v´arias escolhas de β0, β1, γ e δ de modo que o c´alculo de yk+1 coincida com o da s´erie de Taylor, at´e o termo de segunda ordem. Assim, poder´ıamos tomar : β0 = β1 = 1 2 , γ = 1 e δ = f(xk, yk) Isto caracteriza o chamado M´etodo de Euler modificado ou β0 = β1 = 1, γ = 1 2 e δ = 1 2 f(xk, yk) Enquanto, que para este valores caracteriza o chamado M´etodo de Euler aperfei¸coado. Desta forma, estes s˜ao os parˆametros que definem M´etodos de Runge-Kutta de segunda ordem. Para estabelecer outras f´ormulas mais gerais de Runge-Kutta, que coincidam com a s´erie de Taylor at´e os termos de ordem h3 , h4 , etc, generalizamos de modo que: yk+1 = yk + h[β0f(xk, yk) + β1f(xk + γ1h, yk + δ1h)] + β2f(xk + γ2h, yk + δ2h) + β2f(xk + γ3h, yk + δ3h) + . . .] e procedemos de maneira an´aloga para estabelecer rela¸c˜oes entre os parˆametros. 22
    • Figura 10: Ilustra¸c˜ao do M´etodo de Runge-Kutta de 2a Ordem ou M´etodo do Ponto M´edio. No m´etodo de Euler de passo h , a estimativa de yn+1 ´e realizada com os valores de xn e da derivada de yn. No m´etodo de Runge-Kutta de 2a ordem, o valor da estimativa de yn+1 ´e encontrado com o valor de yn e com uma estimativa da derivada em um ponto mais pr´oximo de xn+1, em xn + h/2. 23
    • 4.3.2 O M´etodo Runge-Kutta de Quarta Ordem. Nesta se¸c˜ao, discutimos um m´etodo tamb´em formulado originalmente por Runge e Kutta. Este m´etodo ´e hoje oficialmente conhecido como m´etodo cl´assico Runge-Kutta de quarta ordem e quatro est´agios, mas muitos autores o chamam simplesmente de m´etodo de Runge-Kutta, pode ser o mais usado, onde possui uma combina¸c˜ao de simplicidade, alta precis˜ao e economia. Neste m´etodo, o erro de truncamento local ´e proporcional a h5 , isto devido a sua f´ormula cl´assica ser equivalente a uma f´ormula de Taylor de cinco termos: yn+1 = yn + hyn + h2 2! yn + h3 3! yn + h4 4! yiv n (eq.36) (63) Assim, ele ´e duas ordens de grandeza mais preciso que o m´etodo de Euler aperfei¸coado e o m´etodo de Taylor de trˆes termos, e trˆes ordens de grandeza mais preciso que o m´etodo de Euler. ´E relativamente f´acil de usar e suficientemente preciso para resolver muitos problemas de forma eficiente. Melhor ainda, ´e o m´etodo de Runge-Kutta adaptativo, no qual se faz variar o incremento de acordo com as necessidades. Desta forma, a f´ormula de Runge-Kutta envolve uma m´edia ponderada dos valores de f(x, y) tomados em diferentes pontos do intervalo xn ≤ x ≤ xn+1. Tal forma ´e dado por: yn+1 = yn + h 6 (kn1 + 2kn2 + 2kn3 + kn4) (eq.37) (64) onde; kn1 = f(xn, yn) kn2 = f(xn + 1 2 h, yn + 1 2 hkn1) kn3 = f(xn + 1 2 h, yn + 1 2 hkn2) kn4 = f(xn + h, yn + hkn3) Podemos interpretar a soma (kn1 + 2kn2 + 2kn3 + kn4)/6 como um coeficiente angular m´edio. Note que kn1 ´e o coeficiente angular na extremidade esquerda do intervalo, kn2 ´e o coeficiente angular no ponto m´edio estimado pela f´ormula de Euler para ir de xn at´e xn + h/2, kn3 ´e uma segunda aproxima¸c˜ao do coeficiente angular no ponto m´edio e, finalmente, kn4 ´e o coeficiente angular em xn + h estimado pela f´ormula de Euler e pelo coeficiente angular kn3 indo de xn at´e xn + h. Apesar de n˜ao ser muito dif´ıcil demonstrar, em princ´ıpio, que as equa¸c˜oes anteriormente esta- belecidas [eq.36 e eq.37] diferem por termos no desenvolvimento de Taylor da solu¸c˜ao φ por termos que s˜ao proporcionais a h5 , a ´algebra envolvida ´e bastante extensa. Deste modo, aceitaremos o fato de que o erro de truncamento local ao usarmos a equa¸c˜ao (37) ´e proporcional a h5 e que, para um intervalo finito, o erro de truncamento acumulado ´e, no m´aximo, igual a uma constante vezes h4 . Obviamente a f´ormula de Runge-Kutta nas equa¸c˜oes (36)[63] e (37)[64] ´e mais complexa do que qualquer uma das f´ormulas discutidas anteriormente. Por outro lado, devemos lembrar que ela ´e uma f´ormula muito precisa, isto ´e, reduzindo o tamanho do passo `a metade, reduzimos o erro de truncamento local por um fator de 1/32; al´em disso, n˜ao ´e necess´ario calcularmos nenhuma derivada parcial de f. Al´em do mais, os c´alculos aqui descritos s˜ao rotineiros num computador de alta velocidade e podem ser feitos em segundos para qualquer fun¸c˜ao f, exceto para aquelas extremamente complicadas e longas. Note tamb´em que, se f n˜ao depende de y, ent˜ao kn1 = f(xn), kn2 = kn3 = f(xn, h/2), kn4 = f(xn + h) 24
    • e a eq.(37)[64] ´e idˆentica `aquela obtida usando-se a regra de Simpson para avaliar a integral de y = f(x); yn+1 yn dy = xn+h xn f(x)dx ou yn+1 − yn = h 6 [f(xn) + 4f(xn + h/2) + f(xn + h)] O fato de a regra de Simpson possuir um erro proporcional a h5 est´a de acordo com o coment´ario anterior sobre o erro na f´ormula de Runge-Kutta. A f´ormula de Runge-Kutta, nas eqs.(36)[63] e (37)[64], s˜ao todas de um passo, de modo que s˜ao amplamente usadas com maior sucesso em uma implementa¸c˜ao num´erica. Um fato interessante de se realizar, seria a implementa¸c˜ao de um programa de computador que utiliza-se o m´etodo num´erico descrito nesta se¸c˜ao. A estrutura do programa seria a mesma de um programa usado para implementar o m´etodo de Euler. A diferen¸ca fundamental estaria na linha referente ao sexto passo do algoritmo de Euler. Essa linha, ou as intru¸c˜oes contidas na mesma, deveriam ser substitu´ıdas pelas estruturas do algoritmo de Runge-Kutta. ALGORITMO DO M´ETODO DE RUNGE-KUTTA DE QUARTA ORDEM (RK4)  ¨§ ¤ 1 Entre com a funcao f(x, y) . 2 Entre com os v a l o r e s i n i c i a i s x0 e y0 . 3 Entre com o v a lo r para o incremento h e o numero de passos n . 4 Escreva x0 e y0 . 5 Desde do passo 1 Ate o passo n Faca . 6 Avalie k1 = f(x, y) 7 Avalie k2 = f(x + 0.5 ∗ h, y + 0.5 ∗ h ∗ k1) 8 Avalie k3 = f(x + 0.5 ∗ h, y + 0.5 ∗ h ∗ k2) 9 Avalie k4 = f(x + h, y + h ∗ k3) 10 Avalie y = y + (h/6) ∗ (k1 + 2 ∗ k2 + 2 ∗ k3 + k4) 11 Avalie x = x + h 12 Escreva x e y . 13 Fim.  ©¦ ¥ C´odigo Fonte 3: O m´etodo de Runge-Kutta pode ser entendido como um aperfei¸coamento do m´etodo de Euler, com uma melhor estimativa da derivada da fun¸c˜ao. No m´etodo de Euler a estimativa do valor de yn+1 ´e realizado com o valor de yn e com a derivada no ponto xn . No m´etodo de Runge-Kutta, busca-se uma melhor estimativa da derivada com a avalia¸c˜ao da fun¸c˜ao em mais pontos no intervalo [xn, xn+1]. Um m´etodo de Runge-Kutta de ordem n possui um erro da ordem de O(hn+1). O m´etodo de Runge-Kutta de 4a ordem ´e o mais usado na solu¸c˜ao num´erica de problemas com equa¸c˜oes diferenciais ordin´arias. A seguir ser´a apresentado um pequeno exemplo usando o m´etodo de Runge-Kutta na solu¸c˜ao de uma equa¸c˜ao diferencial [C´odigo Fonte 4]. O passo neste exemplo ser´a reduzido para 0,01s. A solu¸c˜ao da equa¸c˜ao diferencial ´e encontrada pelo uso iterativo das equa¸c˜oes descritas pela equa¸c˜ao (37)[64] relacionada aos termos kn1, kn2, kn3 e kn4.  ¨§ ¤ 1 #i n c l u d e <cmath> 2 #i n c l u d e <c s t d l i b > 3 #i n c l u d e <iostream> 4 5 /∗ Solucao y(x) da equacao − Definicao da funcao ∗/ 6 double y ( double x ) { return . . . } 7 8 /∗ A funcao f(x, y) ∗/ 9 double f ( double x , double y ) { return . . . } 10 11 /∗ Funcao P r i n c i p a l do Programa ∗/ 12 int main( int argc , char∗ argv [ ] ) 13 { 14 double xn , xn1 , xmax ; /∗ v a r i a v e i s xn e xn+1 ∗/ 15 double yn , yn1 ; /∗ v a r i a v e i s yn e yn+1 ∗/ 16 double y0 , t0 ; /∗ v a l o r e s i n i c i a i s de y e x ∗/ 17 double h ; /∗ passo ∗/ 18 double k1 , k2 , k3 , k4 ; /∗ v a r i a v e i s a u x i l i a r e s ∗/ 19 int n ; /∗ numero de i t e r a c o e s ∗/ 20 21 x0 = 0 . 0 ; /∗ v a lo r i n c i a l para x ∗/ 25
    • 22 y0 = 1 . 0 ; /∗ v a lo r i n i c i a l para y ∗/ 23 xmax = 2 . 0 ; /∗ v a lo r maximo para x ∗/ 24 h = 0 . 0 1 ; /∗ o v a l or do passo ∗/ 25 xn = t0 ; 26 yn = y0 ; 27 n = 0 ; /∗ numero de i t e r a c o e s ∗/ 28 while ( xn < xmax) 29 { 30 /∗ Escreva os v a l o r e s das v a r i a v e i s ∗/ 31 std : : cout << n << " t " << xn << " t " << yn << " t " << y ( xn ) << std : : endl ; 32 33 /∗ a p l i c a o metodo de Runge−Kutta ∗/ 34 k1 = h∗ f ( xn , yn ) ; 35 k2 = h∗ f ( xn+h/2 , yn+k1 / 2 . 0 ) ; 36 k3 = h∗ f ( xn+h/2 , yn+k2 / 2 . 0 ) ; 37 k4 = h∗ f ( xn+h , yn+k3 ) ; 38 xn1 = xn + h ; 39 yn1 = yn + ( k1+2∗k2+2∗k3+k4 ) / 6 . 0 ; 40 41 /∗ atribua os v a l o r e s para a proxima i t e r a c a o ∗/ 42 n = n + 1 ; 43 xn = xn1 ; 44 yn = yn1 ; 45 } 46 47 /∗ Termino do programa ∗/ 48 return EXIT SUCCESS ; 49 }  ©¦ ¥ C´odigo Fonte 4: Exemplo de um programa em C++ para a solu¸c˜ao de uma equa¸c˜ao diferencial pelo m´etodo de Runge-Kutta. Comparando-se os resultados da solu¸c˜ao num´erica usando o m´etodo de Euler com os resultados da solu¸c˜ao usando o m´etodo de Runge-Kutta, observa-se que neste segundo m´etodo a precis˜ao ´e maior, mesmo com o uso de um passo 10 vezes maior (Press et al., 1988). 4.3.3 O M´etodo de Runge-Kutta-Fehlberg. Este m´etodo implementa procedimentos para verificar se o valor do passo de integra¸c˜ao h ´e adequado. Em cada itera¸c˜ao s˜ao obtidas duas aproxima¸c˜oes para a solu¸c˜ao y(x). Se as duas respostas satisfazem uma precis˜ao pr´e-estabelecida, a aproxima¸c˜ao ´e aceita. Se n˜ao, o tamanho do passo de integra¸c˜ao ´e reduzido e uma nova itera¸c˜ao ´e realizada. Se as duas respostas possuem mais d´ıgitos significativos que o requerido, o tamanho do passo de integra¸c˜ao ´e aumentado e uma nova itera¸c˜ao ´e realizada. Cada itera¸c˜ao requer o c´alculo dos fatores : f1 = h · f (xi, yi) f2 = h · f xi + 1 4 h, yi + 1 4 f1 f3 = h · f xi + 3 8 h, yi + 3 32 f1 + 9 32 f2 f4 = h · f xi + 12 13 h, yi + 1932 2197 f1 − 7200 2197 f2 + 7296 2197 f3 f5 = h · f xi + h, yi + 439 216 f1 − 8f2 + 3680 513 f3 − 845 4104 f4 f6 = h · f xi + 1 2 h, yi − 8 27 f1 + 2f2 − 3544 2565 f3 + 1859 4104 f4 − 11 40 f5 Uma aproxima¸c˜ao para y(x) ´e obtida pela equa¸c˜ao: yi+1 = yi + 256 216 f1 + 1408 2565 f3 + 2197 4104 f4 − 1 5 f5 Uma outra aproxima¸c˜ao, melhor que a primeira, ´e obtida atrav´es da utiliza¸c˜ao da equa¸c˜ao: 26
    • yi+1 = yi + 16 135 f1 + 6656 12825 f3 + 28561 56430 f4 − 9 5 f5 + 2 55 f6 O passo de integra¸c˜ao ´otimo, qh, ´e determinado multiplicando-se o valor de h pelo fator: q = δh 2|f(xi+1, yi+1) − yi+1| 1 4 sendo δ a precis˜ao desejada. O valor do passo de integra¸c˜ao obedece a rela¸c˜ao hmin ≤ h ≤ hmax. Nesta rela¸c˜ao hmin e hmax s˜ao os limites m´ınimo e m´aximo permitidos para a varia¸c˜ao do passo de integra¸c˜ao. 4.4 Erros nos Procedimentos Num´ericos A ado¸c˜ao de um procedimento num´erico, como o da f´ormula de Euler yn+1 = yn + hf(xn, yn), xn = x0 + nh para resolver um problema de valor inicial y = f(x, y), y(x0) = y0 levanta diversas quest˜oes que devem ser respondidas antes que a solu¸c˜ao num´erica aproximada seja aceita como sa- tisfat´oria. Uma das quest˜oes ´e a de convergˆencia. Isto ´e, `a medida que o incremento h tende para zero, os valores da solu¸c˜ao num´erica y1, y2, . . . , yn, . . . se aproximam dos valores correspondentes aos da solu¸c˜ao exata? Com a hip´otese da resposta ser afirmativa, ainda permanece a importante quest˜ao pr´atica da velocidade com que a aproxima¸c˜ao num´erica se se estabelece perante a solu¸c˜ao exata. Enfim, qual o tamanho necess´ario do incremento para que se garanta um n´ıvel de extid˜ao dado? Queremos usar um incremento que seja suficientemente pequeno para assegurar a exatid˜ao desejada, mas n˜ao o queremos muito pequeno. Um incremento desnecessariamente pequeno torna o processo dos c´alculos lento, tornando-os mais caros e, em alguns casos, pode at´e provocar a perda de exatid˜ao. H´a duas fontes fundamentais de erro na resolu¸c˜ao num´erica de um problema de valor ini- cial. Vamos admitir, inicialmente que o nosso computador possa efetuar todos os c´alculos com exatid˜ao absoluta; isto ´e, que podemos garantir um n´umero infinito de casas decimais. A diferen¸ca En entre a solu¸c˜ao exata y = φ(x) e a solu¸c˜ao aproximada do problema de valor inicial y = f(x, y), y(x0) = y0 ´e dado por En = φ(xn) − yn (eq.38) (65) denominado de erro de f´ormula ou erro de f´ormula acumulado ou erro de trunca- mento acumulado. Esse erro prov´em de duas causas: 1. em cada passo, usamos uma f´ormula aproximada para determinar yn+1 2. os dados de entrada, em cada passo, n˜ao concordam, em geral, com a solu¸c˜ao exata, pois tamb´em, em geral, φ(xn) n˜ao ´e igual a yn. Se admitirmos que os dados de entrada s˜ao corretos, o ´unico erro, quando se avan¸ca um passo no processo, se deve ao uso de uma f´ormula aproximada. Este erro ´e o erro de truncamento local ou erro de f´ormula local ou erro de arrendondamento local en. Depois, em virtude das limita¸c˜oes de todos os computadores, ´e imposs´ıvel, na pr´atica, cal- cular exatamente yn+1 apartir da f´ormula dada. Temos, ent˜ao um erro de arrendodamento provocado pela ausˆencia de exatid˜ao computacional. Analisemos juntos, esta situa¸c˜ao, se um computador puder operar com apenas oito algarismos, e se y0 for 1, 017325842, os dois ´ultimos algarismos devem ser arrendodados, o que introduz, imediatamente, um erro no c´alculo de y1. Ou ent˜ao, se y = f(x, y) envolver fun¸c˜oes, tais como, a logar´ıtmica ou a exponencial, temos um erro de arrendodamento ao se efetuarem estas opera¸c˜oes. Como no erro de f´ormula, ´e poss´ıvel falar de erro de truncamento local e de erro de truncamento acumulado. O erro de truncamento Rn se define como: Rn = yn − Yn (eq.39) (66) 27
    • onde yn ´e o valor aproximado pelo procedimento num´erico dado e Yn ´e o valor realmente calculado pelo procedimento num´erico dado - por exemplo, pela f´ormula de Euler o valor absoluto do erro total no c´alculo de φ(xn) ´e dado por: |φ(xn) − Yn| = |φ(xn) − yn + yn − Yn| (eq.40) (67) Utilizando-se a desigualdade triangular, |a + b| ≤ |a| + |b|, e aplicando na equa¸c˜ao(40)[67], temos: |φ(xn) − Yn| ≤ |φ(xn) − yn| + |yn − Yn| ≤ |En| + |Rn| (eq.41) (68) O erro total est´a assim limitado pela soma dos valores absolutos dos erros de truncamento e dos erros de arrendondamento. Nos procedimentos num´ericos discutidos ´e poss´ıvel conseguir estimativas ´uteis dos erros de f´ormula. Por´em, vamos nos limitar a discutir principalmente os erros de f´ormula locais, que s˜ao um tanto mais simples, enquanto os erros de arrendondamento tˆem, evidentemente, uma natureza mais aleat´oria. Pois a sua efic´acia, depende de um bom sistema computacional de alta velocidade, da sequˆencia de execu¸c˜ao de seus c´alculos, assim como do m´etodo de arrendondamento utilizado. 4.4.1 Erro de truncamento local no m´etodo de Euler Vamos admitir que a solu¸c˜ao y = φ(x), do problema de valor inicial anteriormente fornecido tenha derivada segunda cont´ınua no intervalo considerado. Para garantir esta hip´otese, pode- mos admitir que f, fx, fy sejam cont´ınuas no intervalo mencionado. De fato, se f tiver estas propriedades, e se φ for solu¸c˜ao do problema de valor inicial, ent˜ao: φ (x) = f[x, φ(x)] e pela regra da cadeia, temos: φ (x) = fx[x, φ(x)] + fy[x, φ(x)]φ (x) φ (x) = fx[x, φ(x)] + fy[x, φ(x)]f[x, φ(x)] (eq.42) (69) Uma vez que o segundo membro desta equa¸c˜ao ´e cont´ınuo, φ tamb´em ´e cont´ınua. Ent˜ao, desenvolvendo φ em torno de xn, por uma s´erie de Taylor com resto, obtemos: φ(xn + h) = φ(xn) + φ (xn)h + 1 2 φ (xn)h2 (eq.43) (70) onde xn ´e qualquer ponto no intervalo xn < xn < xn + h. Subtraindo a equa¸c˜ao (43)[70] da equa¸c˜ao (6)[34], e observando que φ(xn + h) = φ(xn+1) e φ (xn) = f[xn, φ(xn)], temos que: φ(xn+1) − yn+1 = [φ(xn) − yn] + h[f(xn, φ(xn)) − f(xn, yn)] + 1 2 φ (xn)h2 (eq.44) (71) Para calcular o erro de f´ormula local, consideramos que os dados no en´esimo passo est˜ao corretos, isto ´e, yn = φ(xn). Ent˜ao, obtemos imediatamente da equa¸c˜ao (44)[71] que o erro de f´ormula local en+1 ´e: en+1 = φ(xn+1) − yn+1 = 1 2 φ (xn)h2 (eq.45) (72) Deste modo, o erro de truncamento local para o m´etodo de Euler ´e proporcional ao quadrado do incremento h e o fator de proporcionalidade depende da segunda derivada da solu¸c˜ao φ. A 28
    • express˜ao da equa¸c˜ao (45)[72] depende de n e em geral ´e diferente para cada passo. Um limite uniforme para o erro, v´alido para um intervalo [a, b], ´e dado por: |en| ≤ Mh2 2 (eq.46) (73) onde M ´e o m´aximo de |φ (x)| no intervalo [a, b]. Como a equa¸c˜ao (45)[72] se baseia no pior caso poss´ıvel de |φ (x)|, pode ser que o erro local seja consideravelmente superestimado em algumas regiˆoes do intervalo [a, b]. A equa¸c˜ao (45)[72] pode ser usada, entre outras coisas, para escolher um incremento que resulte em um erro de truncamento local que n˜ao exceda um determinado limite de tolerˆancia. Por exemplo: se o erro de truncamento local n˜ao for maior do que ε, a equa¸c˜ao (46)[73] revela que: Mh2 2 ≤=⇒ h ≤ 2ε/M (eq.47) (74) A dificuldade prim´aria para com o uso das equa¸c˜oes (45)[72], (46)[73] e (47)[74] na estimativa do erro de f´ormula local est´a na obten¸c˜ao de uma estimativa precisa de M ou |φ (x)|. Seja como for, essas equa¸c˜oes mostram que o erro de truncamento local ´e proporcional a h2 (note que M ´e independente de h); deste modo, reduzindo h por um fator de 1 2 , reduzimos o limite do erro por um fator de 1 4 , e uma redu¸c˜ao por um fator de 1 10 em h reduz o limite do erro por um fator de 1 100 , (reduzimos h `a metade, o erro ´e reduzido `a quarta parte e assim por diante). Mais importante, que o erro de truncamento local ´e o erro de truncamento global En. No entanto, uma estimativa do erro de truncamento local fornece uma melhor compreens˜ao do pro- cedimento num´erico e um modo de comparar a precis˜ao dos diferentes procedimentos num´ericos. A an´alise para estimar En ´e mais dif´ıcil que no caso de en. Entretanto, conhecendo o erro de truncamento local podemos fazer uma estimativa intuitiva do erro de truncamento global para um valor fixo x > x0 da seguinte forma. Suponha que damos n passos para ir de x0 a x = x0 + nh. Em cada passo, o erro ´e no m´aximo de Mh2 2 ; assim, o erro total nos n passos ´e no m´aximo de Mh2 2 . Observando que, n = (x − x0)/h, descobrimos que o erro de truncamento global para o m´etodo de Euler, ao passarmos de x0 para x, ´e dado no m´aximo por: n Mh2 2 = (x − x0) Mh 2 (eq.48) (75) Apesar deste argumento n˜ao ser totalmente correto por n˜ao levar em conta o efeito que um erro cometido num passo causar´a nos pr´oximos passos, Entretanto, ´e poss´ıvel mostrar que, em qualquer intervalo finito, o erro de truncamento global ao usarmos o m´etodo de Euler, nunca ´e maior do que o produto de h por uma constante. Assim, ao irmos de x0 a um ponto fixado x, o erro de truncamento global pode ser reduzido tomando-se um tamanho de passo h, menor. Infelizmente, isto n˜ao ´e o fim da est´oria. Se tomarmos h muito pequeno, isto ´e, se usarmos muitos passos para irmos de x0 a x, o erro de truncamento acumulado poder-se-´a tornar mais importante que o erro de truncamento global. Na pr´atica, devemos considerar ambas as fontes de erro e devemos fazer uma escolha ”´otima” de h de modo que nenhum dos erros seja muito grande. Como o erro de truncamento global ´e mais f´acil de calcular, deste modo ele ser´a usado como nossa medida principal da precis˜ao de cada um dos m´etodos num´ericos e para comparar diferentes m´etodos. Mais vale ressaltar, que o m´etodo de Euler ´e considerado um m´etodo de primeira ordem, pois o erro de truncamento global ´e proporcional ´a primeira potˆencia do tamanho do incremento. 4.4.2 Aplica¸c˜ao do Erro de Truncamento Acumulado no M´etodo de Euler Vamos discutir o erro de truncamento acumulado associado ao m´etodo de Euler na resolu¸c˜ao do problema de valor inicial y = f(x, y), y(x0) = y0. Admitindo que as fun¸c˜oes f e fy sejam cont´ınuas numa regi˜ao R do plano xy que inclui o ponto (x0, y0), pode-se mostrar que existe uma constante L tal que |f(x, y) − f(x, y)| < L|y − y| onde (x, y) e (x, y) s˜ao dois pontos quaisquer em R com a mesma coordenada x. Al´em disso, vamos admitir que fx seja cont´ınua, de modo que a 29
    • solu¸c˜ao φ tem uma derivada segunda cont´ınua. Com base nas constru¸c˜oes exibidas at´e o presente momento teremos: • Utilizando a equa¸c˜ao (41)[68], mostrar que |En+1| ≤ |En|+h|f[xn, φ(xn)]−f(xn, yn)|+ frac12h2 |φ (xn)| ≤ α|En|+βh2 (eq.49) (76) onde a = 1 + hL e β = max|φ (x)|/2 em x0 ≤ x ≤ xn. • Admitindo, sem provas, que se E0 = 0, e que se |En| obedecer a equa¸c˜ao (41)[68], ent˜ao |En| ≤ βh2 (αn − 1) α − 1 , para α = 1 [***] Mostrar que; |En| ≤ (1 − hL)n − 1 L βh (eq.50) (77) A equa¸c˜ao (50)[77] d´a um limite para |En| em termos de h, L, n e β. Observar que para um h fixo, este limite de erro cresce quando n cresce; isto ´e, o limite de erro aumenta quando aumenta a distˆancia ao ponto de partida x0. • Mostrar que (1 + hL)n ≤ enhL e ent˜ao que : |En| ≤ enhL − 1 L βh = e(xn−x0)L − 1 L βh Para um ponto fixo xn = x0 + nh, (isto ´e, nh ´e constante e h = (xn − x0)/n este limite de erro tem a forma do produto de uma constante por h e se aproxima de zero quando h → 0.) Observar tamb´em que quando nhL = (xn −x0)L for pequeno, o segundo membro da equa¸c˜ao anterior ´e aproximadamente nh2 β = (xn −x0)βh, que foi obtido nas equa¸c˜oes anteriores por um racioc´ınio intuitivo. Solu¸c˜ao: • Da defini¸c˜ao de erro de truncamento acumulado, podemos escrever En+1 = φ(xn+1) − yn+1, deste modo |En+1| = |φ(xn+1) − yn+1| = |φ(xn + h) − yn+1| (eq.51) (78) Pela eq.(43)[70], temos: φ(xn + h) = φ(xn) + φ (xn)h + 1 2 φ (xn)h2 e pela eq.(6)[34] temos yn+1 = yn + hf(xn, yn). Assim, substituindo as equa¸c˜oes (6)[34] e (43)[70] em (51)[78] teremos: |En+1| = |φ(xn) + φ (xn)h + 1 2 φ (xn)h2 − [yn + hf(xn, yn)]| Substituindo φ (xn) por f[xn, φ(xn)] na equa¸c˜ao anterior; |En+1| = |φ(xn) + f[xn, φ(xn)]h + 1 2 φ (xn)h2 − [yn + hf(xn, yn)]| |En+1| = |φ(xn) − yn + h[f[xn, φ(xn)] − f(xn, yn)] + 1 2 φ (xn)h2 | Aplicando a desigualdade triangular, tˆem-se |En+1| ≤ |φ(xn) − yn| + |h[f[xn, φ(xn)] − f(xn, yn)]| + | 1 2 φ (xn)h2 | |En+1| ≤ |φ(xn) − yn| + |h[f[xn, φ(xn)] − f(xn, yn)]| + | 1 2 h2 ||φ (xn)| |En+1| ≤ |En| + h|[f[xn, φ(xn)] − f(xn, yn)]| + 1 2 h2 |φ (xn)| 30
    • Com isso teremos : |En+1| ≤ |En| + h|[f[xn, φ(xn)] − f(xn, yn)]| + 1 2 h2 |φ (xn)| (eq.52) (79) Mas; como φ ´e cont´ınua e β = max|φ (xn)/2| em x0 < xn < xn, ent˜ao da equa¸c˜ao (52)[79] podemos afirmar que : |[f[xn, φ(xn)] − f(xn, yn)]| < L|φ(xn) − yn|, onde queremos que a nossa hip´otese seja uma fun¸c˜ao lipschitziana quando existe uma constante L > 0 (chamada constante de Lipschitz da fun¸c˜ao f) tal que |f(x, y) − f(x, y)| < L|y − y| seja quais forem (x, y) e (x, y) dois pontos quaisquer em R. Temos φ(xn) ∼= [f[xn, φ(xn)], assim como, yn ∼= f(xn, yn) podemos obter: |En+1| ≤ |En| + h|[f[xn, φ(xn)] − f(xn, yn)]| + 1 2 h2 |φ (xn)| |En+1| ≤ |En| + hL|φ(xn) − yn| + 1 2 h2 |φ (xn)| |En+1| ≤ |En| + hL|En| + 1 2 h2 |φ (xn)| |En+1| ≤ (1 + hL)|En| + 1 2 h2 |φ (xn)| |En+1| ≤ α|En| + 1 2 h2 |φ (xn)| Logo; |En+1| ≤ |En| + h|[f[xn, φ(xn)] − f(xn, yn)]| + 1 2 h2 |φ (xn)| ≤ α|En| + βh2 • Temos que, a = 1 + hL ⇒ hL = a − 1. Assim, da equa¸c˜ao [***], onde substituindo o valor de hL obtemos: |En| ≤ βh2 (αn − 1) hL |En| ≤ βh(αn − 1) L |En| ≤ (1 + hL)n − 1) L βh Utilizando, o fato de que ´e v´alido a desigualdade (1 + x) ≤ ex , ∀x ∈ R e a expans˜ao de ex = 1 + (x − 0)e0 + (x − 0)2 ex /2!, segundo a s´erie de Taylor,com x0 < x < xn; A partir da´ı, podemos tamb´em afirmar que (1 + x)n < (ex )n e tomando x = hL; temos: (1 + hL)n ≤ (ehL )n Assim ehL = 1 + (hL − 0)e0 + (hL − 0)2 ex /2! ≥ 1 + hL ⇒ 1 + hL ≤ ehL Ent˜ao : (1 + hL)n ≤ (ehL )n , ∀ hL > 0 Assim, mostraremos por indu¸c˜ao matem´atica que : |En| ≤ βh2 (αn − 1) α − 1 Sabemos que, E0 = 0 e |En+1| ≤ α|En| + βh2 . Tomando n = 0; verifiquemos a equa¸c˜ao anterior: |E1| ≤ α|E0| + βh2 |E1| ≤ βh2 = βh2 (α − 1)/(α − 1) 31
    • Tomando n = 1; verifiquemos a equa¸c˜ao acima: |E2| ≤ α|E1| + βh2 ≤ αβh2 + βh2 = βh2 (α + 1) = βh2 (α + 1)(α − 1)/(α − 1) = βh2 (α2 − 1)/(α − 1) Supondo-se, que vale para n = k − 1, temos: |Ek| ≤ α|Ek−1| + βh2 ≤ βh2 (αk − 1)/(α − 1) Por hip´otese, tomemos para n = k; |Ek+1| ≤ α|Ek| + βh2 ≤ αβh2 (αk − 1)/(α − 1) + βh2 = βh2 [(αk+1 − α)/(α − 1)] + 1 = βh2 (αk+1 − α + α − 1)/(α − 1) = βh2 (αk+1 − 1)/(α − 1) Logo, o fato de |Ek+1| ≤ βh2 (αk+1 −1)/(α−1) ´e verdadeiro, assim |En| ≤ βh2 (αn −1)/(α−1) tamb´em ´e verdadeiro. • Mostrar que (1 + hL)n = enhL , e ent˜ao que |En| ≤ [enhL − 1/L]βh = [e(xn−x0)L − 1/L]βh sabemos do item anterior que; |En| ≤ (1 + hL)n − 1 L βh Utilizando, o fato de (1 + hL)n = enhL , temos que: |En| ≤ (1 + hL)n − 1 L βh ≤ [e(nh)L − 1/L]βh Por´em, xn = x0 +nh ⇒ nh = xn −x0. Assim, substituindo o valor de nh na equa¸c˜ao acima, obtemos: |En| ≤ (1 + hL)n − 1 L βh ≤ [e(xn−x0)L − 1/L]βh Quando; h → 0, temos que |En| → 0. 5 M´etodos de Passos M´ultiplos At´e o atual momento, vinhamos discutindo procedimentos num´ericos para resolver o problema de valor inicial y = f(x, y), y(x0) = y0 nos quais os dados no ponto x = xn eram usados para calcular um valor aproximado da solu¸c˜ao φ(xn+1) no ponto seguinte da rede x = xn+1. Em outros termos, o valor calculado de φ em qualquer ponto da rede de pontos dependia somente dos dados no ponto precedente, que denominamos de m´etodos de passo simples ou m´etodos de partida. A partir de agora, uma vez que se tenham conseguidos valores aproximados da solu¸c˜ao y = φ(x) em alguns pontos al´em de x0, ´e natural perguntar se n˜ao pode usar parte da informa¸c˜ao conseguida nestes outros pontos em lugar de se limitar ao valor obtido no ´ultimo ponto para calcular o valor de f no ponto seguinte. Mais especificamente, se y1 em x1, y2 em x2, . . . , yn em xn forem conhecidos. Ent˜ao, surge o seguinte questionamento. Como se pode usar esta informa¸c˜ao a fim de determinar yn+1 em xn+1? Desta forma, surge m´etodos que usam informa¸c˜ao em mais de um ponto, al´em do ´ultimo de uma rede, denominados m´etodos de passos m´ultiplos. Em futuros trabalhos iremos descrever dois m´etodos de passos m´ultiplos: o M´etodo de Adams e o M´etodo Inverso de Diferencia¸c˜ao. Dentro de cada m´etodo, ´e poss´ıvel conse- guir diferentes graus de precis˜ao, dependendo do n´umero de pontos precedentes que s˜ao utilizados. 32
    • 6 Considera¸c˜oes Finais Introduzimos o estudo e a implementa¸c˜ao dos m´etodos num´ericos para a solu¸c˜ao de equa¸c˜oes diferenciais ordin´arias (EDO), de forma a ser observada a efic´acia destas ferramentas para a apro- xima¸c˜ao de solu¸c˜oes inerentes ou muito semelhantes a uma solu¸c˜ao anal´ıtica de um problema de valor inicial. Por´em, ´e da´ı que devemos estar atentos `as v´arias fontes de erros que podem deses- tabilizar a precis˜ao de cada m´etodo apresentado(como o erro de arrendondamento, truncamento local e global). Vimos que o erro de truncamento local e global no m´etodo de Euler ´e de O(h2 ) e O(h), enquanto nos demais m´etodos observamos varia¸c˜oes conforme a ordem de h, e ainda conforme o truncamento na s´erie de Taylor. Al´em disso tivemos a possibilidade de verificar que os m´etodos de Runge-Kutta de quarta ordem s˜ao os que mais se aproximam da solu¸c˜ao exata de um problema de valor inicial. Em futuros estudos poderemos abordar outros m´etodos como o de Newmark, o de Crank-Nicholson, o M´etodo de Dormand-Prince, o M´etodo Preditor-Corretor, o M´etodo Adams-Bashforth-Moulton, o M´etodo Gear(para equa¸c˜oes stiff) e M´etodos de Passo Adaptativo al´em do uso desses para Sistemas de Equa¸c˜oes de Primeira Ordem. Referˆencias Arenales, S. & Darezzo, A. (2008), C´alculo Num´erico: Aprendizagem com Apoio de Software, Vol. 1, 1 ed., S˜ao Paulo: Thomson Learning. Boyce, W. & DiPrima, R. (2005), Elementary Differential Equations and Boundary Value Pro- blems, 8 ed., Hoboken, New Jersey: Wiley. Burrage, K. (1997), ‘Parallel methods for odes’, Advances in Computational Mathematics 7(1- 2), 1–3. Burrage, K. & Suhartanto, H. (1997), ‘Parallel iterated method based on multistep runge-kutta of radau type for stiff problems’, Advances in Computational Mathematics 7(1-2), 59–77. Burrage, K. & Suhartanto, H. (2000), ‘Parallel iterated methods based on variable step-size mul- tistep runge-kutta methods of radau type for stiff problems’, Advances in Computational Mathe- matics 13(3), 257–270. Cao, H., Kang, L., Chen, Y. & Yu, J. (2000), ‘Evolutionary modeling of systems of ordinary differential equations with genetic programming’, Genetic Programming and Evolvable Machines 1(4), 309–337. Evaristo, J. (2001), Aprendendo a Programar Programando em C, Vol. 1, Book Express - Rio de Janeiro. 3a Reimpress˜ao. Gear, C. W. (1971), ‘The automatic integration of ordinary differential equations’, Commun. ACM 14(3), 176–179. Hull, T. E., Enright, W. H., Fellen, B. M. & Sedgwick, A. E. (1972), ‘Comparing numerical methods for ordinary differential equations’, Siam Journal on Numerical Analysis 9(4), 603–637. Osborne, M. & Watson, G. (1968), ‘Note on two methods of solving ordinary linear differential equations’, Computer Journal 10(4), 383–&. Times Cited: 5. Press, W., Teukolsky, S. A., Vetterling, W. T. & Flannery, B. P. (1988), Numerical Recipes in C (The Art of Scientific Computing), 2 ed., Cambridge University Press. Ruggiero, M. & Lopes, V. (1996), C´alculo Num´erico: Aspectos Te´oricos e Computacionais, 2 ed., Makron Books. 33
    • Sotomayor, J. (1979), Li¸c˜oes de Equa¸c˜oes Diferenciais Ordin´arias, Publica¸c˜ao do IMPA - Projeto Euclides. Stabrowski, M. M. (1997), ‘An efficient algorithm for solving stiff ordinary differential equati- ons’, Simulation Practice and Theory 5(4), 333 – 344. URL http://www.sciencedirect.com/ science/article/B6V19-3SNV443-3/2/4e1e94c6bd30fb117691a3bf0764db3a. Stewart, J. (2009), C´alculo - Volume II, Vol. 2, 5 ed., S˜ao Paulo: Cengage Learning. Zarowski, C. (2004), An Introduction to Numerical Analysis for Electrical and Computer Engine- ers, Wiley Interscience. Zill, D. (2003), Equa¸c˜oes Diferenciais com Aplica¸c˜oes em Modelagem, Pioneira Thomson Learning. 34