Numerical Methods for Solving Linear Ordinary Differential Equations

34
etodos Num´ ericos para An´ alise de Equa¸ 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¸ ao num´ erica de Equa¸c˜oesDiferenciaisOrdin´ariasLineares. Exploraremos alguns conceitos como erros de truncamento local e global, uma breve introdu¸ c˜aoa erie de Taylor e alguns exemplos de etodos de resolu¸ 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¸ ao num´ erica de equa¸c˜ oes dessa natureza s˜ ao fortemente direcionados a modelagem de problemas oriundos da observa¸ c˜aodefenˆ omenos. Esse direcionamento possui aspectos que v˜ ao desde a concep¸ 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¸ oes Diferenciais Ordin´ arias, M´ etodo de Euler, M´ etodo de Runge- Kutta, Solu¸ oes Num´ ericas, Modelagem, C´alculo Num´ erico, M´ etodos Num´ ericos, F´ ormula de Heun. 1 Introdu¸ 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¸ 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¸ ao de uma equa¸c˜ ao diferencial, podemos observar que m´ etodos como aproxima¸ 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¸ 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 desolu¸c˜ ao dessas equa¸ oes consiste em uma transforma¸ ao das mesmas em equa¸ 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¸ 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¸ 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: [email protected], [email protected] 1

description

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

Transcript of Numerical Methods for Solving Linear Ordinary Differential Equations

Page 1: Numerical Methods for Solving Linear Ordinary Differential Equations

Metodos Numericos para Analise de Equacoes DiferenciaisOrdinarias Lineares com Foco nos Problemas de Valor

Inicial.

Michel A. dos Santos ∗

Maio de 2010

Resumo

Inicialmente iremos abordar alguns aspectos gerais da analise e resolucao numerica deEquacoes Diferenciais Ordinarias Lineares. Exploraremos alguns conceitos como erros detruncamento local e global, uma breve introducao a Serie de Taylor e alguns exemplos demetodos de resolucao baseados em estrategias de passos simples e passos multiplos. Ao longodo texto sera nıtida a percepcao de que a maioria dos problemas de resolucao numerica deequacoes dessa natureza sao fortemente direcionados a modelagem de problemas oriundos daobservacao de fenomenos. Esse direcionamento possui aspectos que vao desde a concepcao decircuitos eletricos ate a analise de sistemas presa-predador. Por fim, serao analisados algumascaracterısticas relativas a empregabilidade dos metodos abordados.

Palavras-Chave: Equacoes Diferenciais Ordinarias, Metodo de Euler, Metodo de Runge-Kutta, Solucoes Numericas, Modelagem, Calculo Numerico, Metodos Numericos, Formula deHeun.

1 Introducao

Modelagem e o tema que unifica o tratamento introdutorio dado as equacoes diferenciais. Tal-vez as aplicacoes mais importantes do calculo sejam pertencentes a natureza dessas equacoes.Quando fısicos e cientistas sociais usam o calculo, em geral o fazem para analisar uma equacaodiferencial surgida no processo de modelagem de algum fenomeno que eles estejam estudando.Embora seja frequentemente impossıvel encontrar uma formula explıcita para a solucao de umaequacao diferencial, podemos observar que metodos como aproximacoes graficas e numericas con-seguem fornecer bons resultados. Resultados estes, advindos de bons modelos matematicos quefrequentemente possuem o formato de uma equacao diferencial, isto e, uma equacao que contemuma funcao desconhecida e algumas de suas derivadas. Isso nao nos surpreende porque em umproblema real normalmente notamos que as mudancas ocorrem e queremos predizer o compor-tamento futuro com base na maneira como os valores presentem variam. Geralmente o processode solucao dessas equacoes consiste em uma transformacao das mesmas em equacoes algebricasatraves da discretizacao do domınio e aproximacao de suas derivadas por diferencas finitas (Hullet al., 1972). Atualmente a criatividade e o limite. As formas ou a empregabilidade de metodospara analise e resolucao numerica de Equacoes Diferenciais Ordinarias permea varios campos,sendo empregados ate mesmo algoritmos geneticos (Cao et al., 2000) e paralelizacao (Burrage,1997; Burrage & Suhartanto, 1997, 2000) para afericao de uma malha de pontos condizentes comuma determinada equacao pertencente a essa classe. O presente trabalho tem como objetivo ape-nas apresentar uma breve introducao no que diz respeito ao tratamento de solucoes numericas de∗Bacharelando em Ciencia da Computacao, Universidade Federal do Estado de Alagoas(UFAL), Bolsista do

Laboratorio de Modelagem Geometrica e Visao Computacional do Centro de Pesquisa em Matematica Computacio-nal(CPMAT), Brasil - Maceio/AL, Tel: 8805-0582 E-mail: [email protected], [email protected]

1

Page 2: Numerical Methods for Solving Linear Ordinary Differential Equations

equacoes diferenciais (ordinarias) porem, antes mesmo de adentrar ao assunto, forneceremos umamotivacao para o estudo serio e cuidadoso do calculo numerico.

1.1 O Calculo Numerico

O Calculo Numerico corresponde a um conjunto de ferramentas ou metodos usados para seobter a solucao de problemas matematicos de forma aproximada. Esses metodos se aplicam prin-cipalmente a problemas que nao apresentam uma solucao exata (de origem analıtica), portantoprecisam ser resolvidos numericamente. Um bom exemplo que ilustra essa necessidade pode serdado pela avaliacao de circuitos eletricos. Em um circuito eletrico composto de uma fonte detensao e um resistor, a solucao exata (ou analıtica) pode ser dada por:

V −R · i = 0 i =V

R(1)

Porem com a introducao de um simples diodo no circuito, terıamos um aumento na complexidadede avaliacao dos estados pelos quais esse circuito passa, produzindo a seguinte situacao (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 avaliacao de v(i) quando a mesma e nula extrapola os metodos convencionaisanalıticos. Logo a maneira mais indicada para avaliacao dos estados desse circuito seria uma naqual houvesse o emprego de uma solucao baseada em metodos numericos.

O caso acima evidenciado, aos olhos de muitos ainda possui caracterısticas analıticas, ondeuma solucao exata ainda seria uma boa saıda. Porem vale lembrar que introduzimos apenas, eso, um diodo. Os circuitos reais espalhados pela vida cotidiana possuem dezenas de milharesdesses componentes. Por isso a necessidade de produzir resultados numericos. Pois mesmo queum problema matematico possa ser resolvido analiticamente, ainda assim, ele pode se tornarimpraticavel caso haja uma aumento consideravel em seu tamanho. Um bom exemplo para ilustraressa situacao seria a busca por solucoes de sistemas de equacoes lineares que modelam calculo deestruturas, componentes horizontais e verticais das forcas que atuam em um determinado corpoque se encontra em equilıbrio estatico (Ruggiero & Lopes, 1996), redes eletricas, etc.

Logo, a maior motivacao para o emprego de metodos numericos seria a existencia de problemaspara os quais nao existem metodos matematicos exatos para a obtencao de uma solucao (ou seja,nao podem ser resolvidos analiticamente). Tal motivacao pode ser evidenciada quando avaliamoscertos tipos de integrais que nao possuem uma primitiva em forma simples, como

∫ex2

dx, ou ten-tamos resolver determinadas equacoes diferenciais parciais nao lineares (que podem ser resolvidasanaliticamente so em casos particulares.)

1.2 A Necessidade de Boas Aproximacoes

Os metodos numericos buscam solucoes aproximadas para as formulacoes matematicas (Os-borne & Watson, 1968). Nos problemas reais os dados sao medidas e como tal, nao sao exatas. Umamedida fısica nao e um numero e sim um intervalo advindo da propria imprecisao das medidas.Daı, trabalha-se sempre com a figura do erro inerente a propria medicao.

Os metodos aproximados buscam uma adequacao do que seria o valor exato. Dessa formae inerente ao metodo se trabalhar com a figura da aproximacao, erro ou desvio. Na Figura 1podemos visualizar um fluxograma no qual ocorre a confrotacao entre etapas para obtencao demodelos matematicos precisos (no sentido de exatos) e a resolucao de problemas atraves de metodosnumericos.

Porem em certos casos devemos ter cuidado redobrado ao adotar um determinado modelo,pois a influencia dos erros nas solucoes podem ocasionar acontecimentos indesejados, muitos delescom finais catastroficos tanto no ponto de vista monetario quanto do ponto de vista humano.

2

Page 3: Numerical Methods for Solving Linear Ordinary Differential Equations

Figura 1: Etapas no desenvolvimento de metodos analıticos e metodos de aproximacao. Observe que nos metodos

de aproximacao existe uma etapa de analise dos resultados feita com o intuito de comprovar a veracidade da

informacao obtida e uma verificacao final que comprova que o metodo adotado e o mais adequado ao modelo ou

situacao.

Exemplos para esses tipos de situacao seriam o afundamento da plataforma marıtima Sleipner A,em 23/08/1991, na Noruega, com um prejuızo de mais de 700 milhoes de dolares e a explosao dofoguete Ariane 5 em 04/06/1996 na Guiana Francesa, com um prejuızo de 7,5 bilhoes de dolares.A maioria desses acontecimentos sao causados por limitacoes na representacao numerica.

1.3 Nocoes Basicas Sobre Erros

No estudo de Metodos Numericos para a resolucao de situacoes/modelos que surgem das maisdiversas areas ocasionalmente ocorrem problemas. A resolucao de tais problemas envolve variasfases. Nao e raro acontecer que os resultados finais estejam distantes do que se esperaria obter,ainda que todas as fases de resolucao tenham sido realizadas corretamente. O resultados obtidosdependem tambem:

• da precisao dos dados de entrada;

• da forma como estes dados sao representados no computador;

• das operacoes numericas efetuadas.

Os dados de entrada contem uma imprecisao inerente, isto e, nao ha como evitar que ocorram,uma vez que representam medidas obtidas usando equipamentos especıficos, como, por exemplo, nocaso de medidas de corrente e tensao num circuito eletrico, ou entao podem ser dados resultantesde 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 darepresentacao numerica em computadores e erros resultantes das operacoes numericas efetuadasque podem ocorrer na conversao de numeros de um determinado sistema de representacao paraoutro (exemplo: conversao de decimal para binaro), erros de arredondamento e truncamento e emoperacoes aritmeticas de ponto flutuante (Ruggiero & Lopes, 1996).

2 Equacoes Diferenciais

Equacoes diferenciais aparecem com grande frequencia em modelos que descrevem quantita-tivamente fenomenos em diversas areas, como por exemplo, mecanica dos fluidos, fluxo de calor,

3

Page 4: Numerical Methods for Solving Linear Ordinary Differential Equations

vibracoes, economia, ecologia, biomedicina, reacoes 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 importancia o conhecimento de tecnicasde manipulacao de tais equacoes para uma analise detalhada dos sistemas anteriormente citados,visto que, sua aplicacao e expandida dentro das mais diversas areas da ciencia.

Estas equacoes podem ter formas tao variadas que se analisarmos as que possuem solucaoou metodos de resolucao analıtica ja desenvolvidas, veremos que estamos muito longe de podermodelar problemas fısicos reais, esperando assim que a Matematica nos forneca uma expressaoexata para a solucao de tais objetos. Por outro lado, os metodos numericos ja sao bem maisabrangentes e, quando levam a convergencia, e possıvel se obter graficos e tabelas com valores desolucao para um maior numero de problemas.

2.1 Equacoes Diferenciais Gerais

Em geral, uma equacao diferencial e aquela que contem uma funcao desconhecida e uma oumais de suas derivadas. A ordem de uma equacao diferencial e a mesma da derivada mais alta queocorre na equacao. Dessa maneira as equacoes (3) e (4) visualizadas logo abaixo sao exemplos deequacao de primeira ordem enquanto a equacao (5) e um exemplo de equacao de segunda ordem(Stewart, 2009).

dP

dt= kP (3)

dP

dt= kP ·

(1− P

K

)(4)

m · d2x

dt2= −kx (5)

Em todas as tres equacoes, a variavel independente e chamada t e representa o tempo, mas, emgeral, a variavel independente nao precisa representar o tempo. Por exemplo, quando consideramosa equacao diferencial

y′ = xy (6)

entendemos que y seja a funcao descohecida de x. Uma funcao f e denominada solucao de umaequacao diferencial se a equacao e satisfeita quando y = f(x) e suas derivadas sao substituıdas naequacao. Assim, f e uma solucao da Equacao (6) se

f ′(x) = xf(x) (7)

para todos os valores de x em algum intervalo. Quando tentamos resolver uma equacao dife-rencial, esperamos encontrar todas as solucoes possıveis da equacao. Algumas dessas equacoes jasao de conhecimento da maioria dos estudantes de calculo, pois representam equacoes diferenciaisparticularmente simples; a saber, aquelas da forma

y′ = f(x) (8)

Por exemplo, sabemos que a solucao geral da equacao diferencial

y′ = x3 (9)

e dada por

y =x4

4+ C (10)

4

Page 5: Numerical Methods for Solving Linear Ordinary Differential Equations

onde C e uma constante arbitraria. Mas, em geral, resolver uma equacao diferencial nao euma tarefa facil. Nao existe uma tecnica sistematica que nos permita resolver todas as equacoesdiferenciais.

Se uma equacao diferencial tem apenas uma variavel independente, como e o caso das equacoes(3) e (4), entao ela e uma equacao diferencial ordinaria (EDO), que sera o objeto do nosso estudoneste trabalho. Outros exemplos de equacoes diferenciais ordinarias sao:

dy

dx= x+ y; y′ = x2 + y2; y′′ + (1− y2)y′ = 0 e u′′ + e−u − eu = f(x) (11)

Geralmente uma equacao diferencial ordinaria de ordem n e uma equacao da seguinte forma:

F (x, y(x), y′(x), y′′(x), y′′′(x), . . . , yn(x)) = 0 (12)

onde estao envolvidas a funcao incognita y = y(x) e suas derivadas ate ordem n, sendo x avariavel independente. A notacao yj representa a derivada de ordem j da funcao incognita y emrelacao a variavel independente x e pode tambem ser representada por djy

dxj (Arenales & Darezzo,2008).

Se a equacao diferencial envolve mais do que uma variavel independente entao ela e umaequacao diferencial parcial, como a equacao

∂2u

∂x2+∂2u

∂y2= 0 com u ≡ u(x, y) e

∂2u

∂2β(13)

indicando a derivada parcial segunda de u(x, y), em relacao a variavel (β).

Figura 2: Aplicacoes de Equacoes Diferenciais Parciais. Em (A) Equacoes Diferenciais Parciais sao aplicadas as

leis da conservacao da massa, momento e energia que por sua vez sao a base dos fenomenos de transporte. Em (B)

Difusao de macromoleculas e libertacao controlada de medicamentos(Movimento do medicamento atraves da pele a

partir do local de aplicacao). Em (C) Migracao de celulas em material protestico vascular(Controle do movimento

de leucocitos em meio material devido a inflamacoes).

Uma solucao de uma equacao diferencial ordinaria e uma funcao da variavel independente quesatisfaca a equacao. Assim,

1. dydx = y = y tem y(x) = a · ex, a ∈ R como solucao;

2. u′′′ = 0 e satisfeita para u(x) = p2(x) onde p2(x) e qualquer polinomio de grau 2.

Isto ilustra um fato bem geral: uma equacao diferencial possui uma famılia de solucoes e naoapenas uma (Ruggiero & Lopes, 1996). Alem disso uma equacao diferencial ordinaria e dita linearse a funcao e suas derivadas aparecem linearmente na equacao. Assim, xy′ = x − y e linear ey′′ + (1− y2)y′ + y = 0 e u′′ + e−u = f(x) sao nao lineares.

5

Page 6: Numerical Methods for Solving Linear Ordinary Differential Equations

Figura 3: Uma famılia de solucoes para y = y e para y = −y (Ruggiero & Lopes, 1996).

Figura 4: Em (A) uma famılia de solucoes para dP/dt = kP . Em (B) solucoes da equacao logıstica (Stewart,

2009).

Ja que, como ilustramos anteriormente, uma equacao diferencial nao possui solucao unica,vemos que para individualizar uma solucao temos de impor condicoes suplementares. Em geral,uma equacao de ordem m requer m condicoes adicionais a fim de ter uma unica solucao. Emprincıpio, estas condicoes podem ser de qualquer tipo, por exemplo:

y(0) = 1 (14)y′(4) = −5 (15)

y(2) + 5y′(3) = 6 (16)∫ 1

0

xy sinxdx = 0 (17)

limx→∞

y(x) = k (18)

Se, dada uma equacao de ordem m, a funcao, assim como suas derivadas ate ordem m -1, saoespecificadas em um mesmo ponto, entao temos um problema de valor inicial (Ruggiero & Lopes,1996) (normalmente abreviado para PVI), como sao os casos:

1.{y′(x) = yy(0) = 1

2.{y′′′ + (x+ 1)y′′ + cosxy′ − (x2 − 1)y = x2 + y2 sinx+ yy(0) = 1.1, y′(0) = 2.2, y′′(0) = 3.3

Se, em problemas envolvendo equacoes diferenciais ordinarias de ordem m, m ≥ 2, as m con-dicoes fornecidas para a busca de solucao unica nao sao todas dadas num mesmo ponto, entaotemos um problema de valor de contorno (Ruggiero & Lopes, 1996) (normalmente abreviado paraPVC).

6

Page 7: Numerical Methods for Solving Linear Ordinary Differential Equations

Um exemplo de problema de contorno e o de uma barra de comprimento L sujeita a uma cargauniforme q. Se, no ponto x0 = 0 esta barra esta presa e em xL = L ela esta so apoiada, esteproblema e descrito pelo seguinte problema de contorno: y′′′′(x) + ky(x) = q

y(0) = y′(0) = 0y(L) = y′′(L) = 0

(19)

onde k e uma constante que depende do material da barra.Ao contrario do que ocorre com os PVI, e comum que problemas de contorno nao tenham

unicidade de solucao. Por exemplo, para todo α ∈ R, y(x) = α · (1 + x) e a solucao do PVC(Ruggiero & Lopes, 1996): y′′ = 0

y(−1) = 0y(1)− 2y′(1) = 0

(20)

Figura 5: Passos para a resolucao de uma EDO de maneira analıtica. Uma das principais propriedades das

equacoes diferenciais ordinarias (EDO), lineares e com coeficientes constantes e que elas sempre possuem uma

solucao analıtica que pode ser encontrada de forma sistematica. No entanto, nem todas as equacoes diferenciais

possuem esta propriedade, existindo equacoes que nao possuem solucao na forma analıtica, logo sua solucao deve

ser encontrada de forma numerica.

2.2 Problemas de Valor Inicial

A razao mais forte para a introducao de metodos numericos para a aproximacao de solucoesde problemas de valor inicial(PVI) e a dificuldade de se encontrar, analiticamente, as solucoesda equacao. Em muitos casos, a teoria nos garante a existencia e unicidade de solucao, mas naosabemos qual e a expressao analıtica desta solucao. Uma condicao que garante a existencia e aunicidade da solucao do PVI e dado pelo seguinte teorema:

Teorema 1 (Existencia e Unicidade - Teorema de Picard). Considere uma funcao real f(x, y)contınua no intervalo a ≤ x ≤ b, com a e b finitos e −∞ < y < +∞. Se existe uma constante L talque para todo x ∈ [a, b] e para todo par (y, y1) tivermos: |f(x, y)− f(x, y1)| ≤ L|y− y1| (Condicaode Lipschitz) entao existe uma unica funcao y = y(x) satisfazendo as seguintes condicoes:

1. y(x) e contınua e diferenciavel 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 solucao do PVI e uma funcao y = y(x) contınua e diferenciavel quesatisfaz a equacao diferencial y′ = f(x, y) e passa pelo ponto (x0, y0) (a prova desse teorema podeser encontrada em Sotomayor,J.D.. Vale a pena ressaltar que tal prova baseia-se no teorema doponto fixo de Banach) (Arenales & Darezzo, 2008; Zill, 2003; Sotomayor, 1979; Zarowski, 2004).

Os metodos que estudaremos neste pequeno trabalho introdutorio se baseiam em:

dado o PVI:{y′′ = f(x, y)y(x0) = y0

(21)

7

Page 8: Numerical Methods for Solving Linear Ordinary Differential Equations

construımos x1, x2, . . . , xn que, embora nao necessariamente, para nos serao igualmente espa-cados, ou seja : xi+1−xi = h, i = 0, 1, . . . , e calculamos as aproximacoes yi ' y(xi) nestes pontos,usando informacoes anteriores.

Se, para calcular yj usamos apenas yj−1 teremos um metodo de passo simples ou passo um.Porem, se usarmos mais valores, teremos um metodo de passo multiplo.

Como estamos trabalhando essencialmente com PVI de primeira ordem, temos uma aproxi-macao inicial y(x0) para a solucao. Dessa forma, os metodos de passo um sao classificados comoauto-iniciantes. Ja para os metodos de passo multiplo temos de lancar mao de alguma estra-tegia (como usar metodos de passo simples) para obtermos as aproximacoes iniciais necessarias(Ruggiero & Lopes, 1996).

Outras caracterısticas dos metodos de passo simples sao:

• necessidade de calculo do valor de f(x, y) e suas derivadas em muitos pontos;

• dificuldades em estimar o erro.

2.3 Discretizacao

Resolver numericamente um PVI consiste em calcular aproximacoes para y = y(x) em pontosdiscretos x0, x1, x2, . . . , xN de um intervalo [a, b]. Para discretizar o intervalo [a, b], tomamos Nsubintervalos N ≥ 1 e fazemos xn = x0 + nh, n = 0, 1, 2, . . . , N com x0 = a e xN = b, sendoh = (xN−x0)

N .A este conjunto de pontos x0, x1, x2, . . . , xN denominamos rede ou malha de pontos discretos e

calculamos aproximacoes 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, solucoes aproximadas yn paraa solucao exata y(xn), n = 0, 1, 2, . . . , N , conforme ilustrado na Figura 6.

Figura 6: O problema da discretizacao e a relacao entre as solucoes exatas e numericas (Arenales & Darezzo,

2008).

O erro local, cometido nas aproximacoes em cada ponto, e a diferenca entre o valor exato daequacao diferencial e eo valor numerico aproximado em cada um dos pontos do intervalo [a, b], istoe:

e(xn) = y(xn)− yn, n = 1, . . . , N (22)

8

Page 9: Numerical Methods for Solving Linear Ordinary Differential Equations

2.4 Modelagem de Problemas que Envolvem Equacoes Diferenciais

Nesta secao serao listados apenas alguns problemas que podem ser modelados atraves de Equa-coes Diferenciais Ordinarias. A maioria dos problemas sao de natureza fısica, porem vale ressaltarque o escopo para uso das Equacoes Diferenciais Ordinarias e ilimitado. Como podera ser obser-vado com os modelos de Dinamica Populacional e Modelo Predador-Presa. Alguns exemplos demodelagem que podem ser citados sao:

Desintegracao Radioativa: Em muitos materiais radioativos, a sua massa decai ao longo dotempo de acordo com a equacao dM

dt = −kM , em que M e a massa do material num dadoinstante.

Arrefecimento de um Corpo: A temperatura de um corpo T em contacto com um ambientea uma temperatura A, constante, e modelado pela equacao de arrefecimento de NewtondTdt = −k(T −A), em que k e uma constante de transmissao de calor.

Circuito RC: Em um circuito constituıdo por uma bateria com diferenca de potencial V, umaresistencia R e um condensador de capacidade C. O circuito obedece as seguintes equacoesdiferenciais

V = RI +Q

Ce I =

dQ

dt(23)

Dinamica Populacional: Um modelo simplificado de dinamica poulacional (modelo de Verhulst-Pearl) preve que a variacao da populacao M se faca de acordo com a equacao diferencial

dP

dt= −kP

(1− P

L

)(24)

em que P e a populacao num dado tempo, k uma constante (de crescimento inicial) e L umvalor limite.

Modelo Predador-Presa: Um sistema ecologico com duas especies (predador-presa) pode sermodelado pelas equacoes abaixo (Lotka-Volterra), neste caso referentes a variacao do numerode raposas (F) e de coelhos (R) dR

dt = −aR − bRF e dFdt = ebRF − cF onde os parametros

tem o seguinte significado

• a e a taxa de crescimento natural de coelhos, na ausencia 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 eficiencia de transformacao de coelhos em raposas.

Movimento de um Pendulo: O movimento de um pendulo pode ser modelado atraves da equa-cao diferencial

d2α

dt2= − g

Lsinα− kdα

dt(25)

em que α e o angulo de desvio da vertical em cada instante, m a masssa do pendulo(assumindo-se que a massa do fio e deprezavel) g a aceleracao da gravidade (9.8ms−2),L o comprimento do pendulo e k uma constante (nula no caso de um pendulo sem friccao).

Circuito RLC: Em um circuito constituıdo por uma bateria com diferenca de potencial V, umaresistencia R, um condensador de capacidade C e uma bobina de indutancia L. O circuitoobedece as seguintes equacoes diferenciais

V = VR + VC + VL; VL = LdI

dt; VR = RI; VC =

Q

Ce I =

dQ

dt(26)

9

Page 10: Numerical Methods for Solving Linear Ordinary Differential Equations

Figura 7: Problemas que sao cotidianamente modelados atraves de Equacoes Diferenciais Ordinarias: Circuitos

RC, Movimento Pendular e Circuitos RLC.

3 Resolucao de Equacoes Diferenciais Ordinarias

3.1 Metodos Numericos Para a Resolucao de Equacoes Diferenciais Or-dinarias

O estudo e a implementacao de metodos numericos para a solucao de equacoes diferenciaisordinarias(EDO) e uma ferramenta de grande utilidade para a solucao de muitos problemas, sejamem Matematica ou areas afins, cuja as tecnicas conhecidas de resolucao de equacoes diferenciaismediante solucoes analıticas, como a integracao ou os desenvolvimentos em series de potencias naose aplicam ou sao de utilizacao muito complicada ou praticamente inviavel.

Desta forma,o emprego de metodos numericos tem a finalidade de se conseguir aproximacoesnumericas muito acuradas em relacao a solucao exata de uma equacao diferencial do tipo y′(x) =f(x, y(x)), onde f(x, y) e uma funcao estabelecida. Porem, para se definir uma unica funcao y(x)temos de fornecer dados adicionais a equacao diferencial para o qual e necessario uma condicao quedenominamos de problema de valor inicial ou problema de valor de contorno, mais se restringiremossomente ao primeiro caso em nosso estudo. Num problema de valor inicial (PVI), procuramos y(x),solucao de uma equacao diferencial em estudo, que satisfaca a seguinte condicao:

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

programacao para computadores e tambem em algumas calculadoras cientıficas portateis.Nas secoes subsequentes trataremos dos metodos numericos de passo simples, onde estes re-

querem somente o conhecimento de yn para a determinacao de yn+1, como o Metodo de Euler,Metodo de Euler Inverso, Metodo de Euler Aprimorado, assim como Runge-Kutta de ordem doise quatro.

Mais adiante trataremos dos metodos de passos multiplos, onde estes utilizam dados de outrospontos alem do ponto previo, digamos yn, yn−1, yn−2 para a determinacao de yn+1, como o Metodode Adams e formulas inversas de diferenciacao, assim como a discussao de erros e estabilidade destesmetodos, podendo compara-los em relacao aos resultados obtidos nos metodos de passo simples.

Porem, antes mesmo da introducao desses metodos, faz-se necessario a demostracao de algumasdas formulas matematicas que regem os mesmos, com a intencao de deixar mais claro e coeso oproposito de nosso estudo.

As notacoes que serao usadas ao longo do trabalho sao as seguintes. A solucao exata doproblema de valor inicial dado pelas equacoes (27) sera representada por φ ou y = φ(x), destemodo, o valor da solucao exata em xn e φ(xn). Para um dado procedimento numerico, os sımbolosyn e y′n = φ(xn, yn) representarao os valores aproximados da solucao exata e de sua derivada noponto xn. Obviamente, φ(x0) = y0, mas em geral, φ(xn) 6= yn, para n ≥ 1. De modo analogo,φ′(x0) = y′0, mas em geral, φ′(xn) = f [xn, φ(xn)] nao e igual a y′n = f(xn, yn), para n ≥ 1. Alemdisso, em toda a discussao, utilizaremos um espacamento ou tamanho de passo uniforme h no eixodos x. Assim, x1 = x0 + h, x2 = x1 + h = x0 + 2h e, em geral xn = x0 + nh.

10

Page 11: Numerical Methods for Solving Linear Ordinary Differential Equations

4 Metodos de Passo Simples

4.1 O Metodo de Euler

O metodo de Euler e o metodo numerico mais elementar de um passo para a resolucao deequacoes diferenciais ordinarias. Deste modo,vamos discutir o desenvolvimento e o emprego dosprocedimentos numericos deste metodo.

Primeiramente, vamos nos concentrar principalmente nos problemas de valor inicial de equacoesdiferenciais de primeira ordem, constituıdos pela equacao diferencial

y′ = f(x, y) eq.1 (28)

e pela condicao inicial

y(x0) = y0 eq.2 (29)

e seguiremos o seguinte teorema

Teorema 2. Sejam as funcoes f e fy contınuas num certo retangulo α < x < β; γ < y < δ quecontem o ponto (x0, y0). Entao num certo intervalo x0 − h < x < x0 + h, contido em α < x < βha uma unica solucao y = f(x) do problema de valor inicial:

y′(x) = f(x, y); y(x0) = y0 (30)

A primeira tentativa de resolucao numerica de uma equacao diferencial foi feita por Eu-ler,aproximadamente em 1768. Usou o que se chama hoje o metodo da reta tangente, outambem metodo de Euler. Uma vez que, x0 e y0 sao conhecidos, a inclinacao ou coeficienteangular da reta tangente a solucao em x = x0, especificamente f0(x0) = f(x0, y0), tambem econhecida. Deste modo, podemos construir a reta tangente a solucao em x0, e entao obter umvalor aproximado y1 de f(x1) por meio de um deslocamento ao longo da reta tangente desde dex0 ate 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 y′1 = f(x1, y1) e usar este valor comoo coeficiente angular para uma nova aproximacao, ao nos deslocarmos de x1 ate x2.

Obtendo assim,

y2 = y1 + y1(x2 − x1) = y1 + f(x1, y1)(x2 − x1) eq.4 (32)

Em geral y1 6= f(x1) e entao, em geral, f(x1, y1) nao e igual a f [x1, f(x1)], que e o coeficienteangular da solucao exata em x1. Continuando desta maneira, usamos o valor de y calculado emcada passo para determinar o coeficiente angular da aproximacao do passo seguinte. A formulageral da aproximacao 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, entao xn+1 =xn + h e a formula de Euler assumem o aspecto

yn+1 = yn + hf(xn, yn) = yn + hfn, n = 0, 1, 2, . . . eq.6 (34)

Antes de discutirmos o metodo de Euler com mais profundidade, ilustraremos o seu uso numproblema de valor inicial.

11

Page 12: Numerical Methods for Solving Linear Ordinary Differential Equations

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 demostracoes e comparacoesdos diferentes metodos numericos. A equacao (7)[35] e uma equacao diferencial ordinaria linear deprimeira ordem, cuja solucao satisfaz a condicao inicial (8)[35]. Deste modo, obteremos a solucaogeral e particular da equacao diferencial proposta.

Sabemos que uma equacao diferencial ordinaria linear de primeira ordem, tem a forma:

y′ + p(x)y = q(x) (eq.9), (36)

onde p(x) e q(x) sao funcoes contınuas dadas, num certo intervalo α < x < β , segundo oTeorema 2;

Assim da eq.(9)[36], obtemos o fator integrante:

µ(x) = eR

p(x)dx (eq.10), (37)

e a sua primitiva e:

y(x)eR

p(x)dx =∫q(x)e

Rp(x)dxdx+ C (eq.11) (38)

A constante arbitraria C e usada para satisfazer a condicao inicial estabelecida no problema.Desta maneira, podemos escrever a equacao(7) na forma da equacao(9) acima.

y′ + 2xy = x (eq.12) (39)

onde p(x) = 2x e q(x) = x sao funcoes contınuas no intervalo [0, 1] escolhido. O fator integrantee:

µ(x) = eR

2xdx = ex2(eq.13) (40)

e sua primitiva e:

y(x)ex2=(∫

xex2dx+ C

)(eq.14) (41)

onde; ∫xex2

dx =12ex2

+ C (eq.15) (42)

utilizando-se a integracao por mudanca de variavel. Atraves da condicao inicial (8), encontramosque c = 1

2 e assim;

y = φ(x) =12

+12e−x2

(eq.16) (43)

e a solucao particular do problema dado.Uma vez que a solucao exata e conhecida, nao precisamos de metodos numericos para resolver

o problema de valor inicial (7) e (8). Mas por outro lado, a disponibilidade de uma solucao exatafacilitara o calculo da exatidao dos diversos procedimentos numericos que serao adotados nesteproblema e nos demais seguintes.

Tomemos como exemplo, a utilizacao da formula de Euler (6), com um incremento h = 0, 1;e, em seguida para h = 0, 05, onde deseja-se calcular um valor aproximado da solucao y = φ(x)em x = 0, 2 para o problema de valor inicial (7) e (8). Identificamos inicialmente y′n = f(x, y) =x− 2xy, de modo que a formula de Euler (6) se escreve como :

yn+1 = yn + h(xn − 2xnyn)

Entao, para h = 0, 1, utilizando a formula do metodo de Euler, calculamos inicialmente,

y′0 = f(0, 1) = 0− 2 · 0 · 1 = 0

12

Page 13: Numerical Methods for Solving Linear Ordinary Differential Equations

entao,

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 necessarias quatro iteracoes para chegarmos a x = 0, 2.

Se prosseguirmos com a aproximacao do metodo de Euler, ao longo do intervalo desejado [0, 1],obedecendo os valores de incremento determinados h = 0, 1 e h = 0, 05, encontraremos os demaisvalores aproximados da solucao exata. Seguindo a elaboracao de um algoritmo para o metodo(podendo utilizar um programa em linguagem C, por exemplo) obteremos os demais valores dexn ao longo do intervalo analisado. Desta forma, podemos construir uma tabela de dados que nospermitira estruturar, para uma melhor analise, as demais solucoes aproximadas.[Para uma melhorintroducao a algoritmos e linguagens de programacao ler ”Aprendendo a Programar Programandoem C”] (Evaristo, 2001)

Figura 8: Ilustracao do metodo de Euler. Observe como se comporta o grafico em relacao a solucao numerica

(metodo de Euler) e analıtica de uma equacao diferencial ordinaria de 1a ordem. O metodo pode ser aplicado com

o uso de lapis, papel e calculadora. No entanto, este processo e fastidioso pelo numero de iteracoes. 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 metodo de Euler e da ordem de O(h2).

ALGORITMO DO METODO DE EULER

• No intervalo , selecione os pontos x0 < x1 < . . . < xn = x0 + nh com um incrementoh = (x0+nh)−x0

n entre eles.

• Calcule a aproximacao x1 de φ(x1) usando a formula descrita pelo metodo x1 = x0 +hf(x0, y0)

• Agora, calcule a aproximacao x2 de φ(x2) usando novamente a formula descrita pelo metodox2 = x1 + hf(x1, y1)

• Continue o processo e obtenha as aproximacoes x3, x4, . . . , xn usando sucessivamente a for-mula xn+1 = xn + hf(xn, yn) ao longo do intervalo [x0, x0 + nh].

13

Page 14: Numerical Methods for Solving Linear Ordinary Differential Equations

� �� �1 Entre com a funcao f(x, y) .2 Entre com os va 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+19 Fim . � �

Codigo Fonte 1: Algoritmo Simplificado do Metodo de Euler, tambem conhecido como metodo da reta secante.

E um dos metodos mais antigos que se conhece para a solucao de equacoes diferenciais ordinarias. Problemaspraticos nao devem ser resolvidos com o metodo de Euler. Existem outros metodos que proporcionam resultadoscom uma melhor precisao e estabilidade se comparados ao metodo de Euler para o mesmo passo.

Para ilustrar ainda mais a obtencao dos valores do exemplo padrao, exibiremos uma pequenaimplementacao do Metodo de Euler em C++ [Codigo Fonte 2]. Observe que neste exemplo decodificacao utilizamos h = 0.001 apenas a tıtutlo exploratorio. Na tabela de valores utilizamos aequacao y′ = x− 2xy, y(0) = 1 que possibilitou gerar os demais valores aproximados xn ao longodo intervalo em [0, 1] com valores de incrementos h = 0, 1 e h = 0, 05.� �� �

1 #inc lude <cmath>2 #inc lude <c s td l i b >3 #inc lude <iostream>4

5 /∗ Solucao y(x) da equacao − Def in i cao 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 Pr i n c i pa l do Programa ∗/12 int main( int argc , char∗ argv [ ] )13 {14 double xn , xn1 , xmax ; /∗ va r i a v e i s xn e xn+1 ∗/15 double yn , yn1 ; /∗ va r i a v e i s yn e yn+1 ∗/16 double y0 , x0 ; /∗ va 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 ; /∗ va lo r i n c i a l para x ∗/21 y0 = 1 . 0 ; /∗ va lo r i n i c i a l para y ∗/22 xmax = 2 . 0 ; /∗ va lo r maximo para x ∗/23 h = 0 . 0 01 ; /∗ o va lo r 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 va 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 pe lo metodo de Euler ∗/33 yn1 = yn + h∗ f ( xn , yn ) ;34 xn1 = xn + h ;35

36 /∗ Atribua os va 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 } � �

Codigo Fonte 2: Exemplo de um programa em C++ para a solucao de uma EDO pelo metodo de Euler. Esteprograma foi escrito apenas com intuito didatico, o uso de outras tecnicas inerentes a linguagem como Orientacaoa Objetos, definicao de classes para avaliacao de funcoes, Objetos-Funcao e o proprio uso da STL podem dar umsemblante mais profissional ao pequeno trecho de codigo apresentado.

Nas tabelas [1] e [2], os valores encontrados para a solucao exata, foram calculados a partir

14

Page 15: Numerical Methods for Solving Linear Ordinary Differential Equations

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,10 1,0000 0,9950 0,0050 0,500,20 0,9900 0,9804 0,0096 0,970,30 0,9704 0,9570 0,0134 1,400,40 0,9422 0,9261 0,0161 1,730,50 0,9068 0,8894 0,0233 2,610,60 0,8661 0,8488 0,0174 2,040,70 0,8222 0,8063 0,0159 1,970,80 0,7771 0,7636 0,0135 1,760,90 0,7327 0,7224 0,0103 1,421,00 0,6908 0,6839 0,0069 1,00

Tabela 1: Resultado da aplicacao do metodo de Euler, com valor do incremento h = 0, 1, na resolucao numericade y′ = x− 2xy, y(0) = 1

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,05 1,0000 0,9988 0,0012 0,120,10 0,9975 0,9950 0,0025 0,250,15 0,9925 0,9889 0,0036 0,360,20 0,9851 0,9804 0,0047 0,470,25 0,9754 0,9697 0,0057 0,580,30 0,9635 0,9570 0,0065 0,670,35 0,9496 0,9424 0,0072 0,760,40 0,9339 0,9261 0,0078 0,840,45 0,9165 0,9083 0,0082 0,900,50 0,8978 0,8894 0,0084 0,940,55 0,8779 0,8695 0,0084 0,960,60 0,8571 0,8488 0,0083 0,970,65 0,8357 0,8277 0,0080 0,960,70 0,8138 0,8063 0,0075 0,930,75 0,7919 0,7848 0,0071 0,900,80 0,7700 0,7636 0,0064 0,830,85 0,7484 0,7428 0,0056 0,750,90 0,7273 0,7224 0,0049 0,670,95 0,7068 0,7028 0,0040 0,561,00 0,6871 0,6839 0,0032 0,46

Tabela 2: Resultado da aplicacao do metodo de Euler, com valor do incremento h = 0, 05, na resolucao numericade y′ = x− 2xy, y(0) = 1.

15

Page 16: Numerical Methods for Solving Linear Ordinary Differential Equations

da solucao analıtica y = φ(x) = 12 + 1

2e−x2

. Por outro lado, define-se o erro absoluto como:|exata− aprox|.

Por outro lado, o erro relativo e erro relativo percentual sao definidos como:

|exata− aprox||exata|

e|exata− aprox||exata|

· 100 =erro absoluto

|exata|· 100

Um programa de computador permite-nos examinar aproximacoes do grafico da solucao y(x)de um problema de valor inicial, tracando os graficos de retas pelos pontos (xn, yn) gerados pelometodo de Euler.

Figura 9: Aqui comparamos no intervalo [0,1], o grafico da solucao exata do problema de valor inicial (B) com

o grafico obtido pelo metodo de Euler (A) utilizando o valores para h = 0, 05. Se fizessemos um comparativo para

h = 0, 1 seria facil observar que a aproximacao melhora quando o passo diminui.

Um fato relevante, ao adotar um procedimento numerico, como o metodo de Euler, e tersempre em mente a questao de saber se os resultados sao suficientemente muito proximos dasolucao exata para terem utilidade. No exemplo precedente, a exatidao dos resultados numericospode ser verificada graficamente, pela comparacao com a solucao exata. Pois e natural, nao sedispor, em geral, da solucao exata quando se adota um procedimento numerico.

Vamos agora apontar tres maneiras de demonstrar a formula de Euler (6), que sugerem formasde se encontrar formulas melhores, e que tambem ajudam na investigacao dos erros cometidos comadocao da equacao (6).

Em primeiro lugar, vamos escrever a equacao diferencial (1) no ponto x = xn na forma

dt(xn) = f [xn, φ(xn)] (eq.17) (44)

Em seguida, aproximamos a derivada da equacao (17) pela relacao [φ(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 formula de Euler (6)

yn+1 = yn + hfn

Em segundo lugar, como y = φ(x) e uma solucao 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 Calculo no 1o membro da igualdade, temos que :

16

Page 17: Numerical Methods for Solving Linear Ordinary Differential Equations

φ(x)|xn+1xn =

∫ 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 substituicao 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 aproximacao yn+1 para φ(xn+1) fazemos uma segunda aproximacaopela substituicao de φ(xn) por seu valor aproximado yn na equacao (20). Isto nos leva a formulade Euler (6)

yn+1 = yn + hf(xn, yn)

Pode-se obter uma formula mais exata, se a integral for aproximada com maior exatidao. Emterceiro lugar, vamos admitir que a solucao y = φ(x) tenha uma serie de Taylor em torno do pontox = xn, entao :

φ(xn + h) = φ(xn) + φ′(xn)h+ φ′′(xn)h2

2!+ . . .

ou

φ(xn + h) = φ(xn) + f [xn, φ(xn)]h+ φ′′(xn)h2

2!+ . . . (eq.21) (48)

Se a serie for truncada depois dos primeiros termos, e se φ(xn+1) e φ(xn) forem substituıdaspelos valores aproximados yn+1 e yn obteremos outra vez a formula de Euler (6) :

yn+1 = yn + hf(xn, yn)

Quando utilizamos mais termos da serie, conseguimos formulas mais exatas e precisoes muitomaiores.

4.1.1 Formula de Euler Inversa

Uma variante da formula de Euler pode ser obtida aproximando a derivada da equacao (17)pela expressao [φ(xn)−φ(xn−1)]/h em vez de usar a expressao do lado esquerdo da equacao (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 formula de Euler inversa

yn+1 = yn + hf(xn+1, yn+1) (eq.22) (49)

17

Page 18: Numerical Methods for Solving Linear Ordinary Differential Equations

Supondo que yn seja conhecido e que yn+1 deva ser calculado, observe que a equacao (22)nao fornece uma formula explıcita para calcular yn+1. Em vez disso, a equacao define yn+1

implicitamente e deve ser resolvida para determinar o valor de yn+1.Como exemplo, use a formula de Euler inversa (22) para determinar valores aproximados da

solucao 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 precisao de oito algarismos significativos. Observe que como a equacao diferenciale linear, a equacao implıcita para calcular y1 tambem e linear e portanto facil de resolver. Emseguida, 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 dasolucao exata, φ(0, 2) = 0, 9804. Continuando o processo iniciado no exemplo anterior e tomandoos mesmos valores para o incremento h = 0, 1 e h = 0, 05, respectivamente, podemos gerar osdados que aparecem na Tabela (3) e (4)

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,10 0,9902 0,9950 0,0048 0,480,20 0,9713 0,9804 0,0091 0,930,30 0,9447 0,9570 0,0123 1,300,40 0,9117 0,9261 0,0143 1,570,50 0,8743 0,8894 0,0151 1,720,60 0,8342 0,8488 0,0146 1,750,70 0,7932 0,8063 0,0132 1,650,80 0,7527 0,7636 0,0109 1,450,90 0,7142 0,7224 0,0083 1,151,00 0,6785 0,6839 0,0055 0,80

Tabela 3: Resultado da aplicacao do metodo de Euler inversa, com valor do incremento h = 0, 1, na resolucaonumerica de y′ = x− 2xy, y(0) = 1.

Comparando os resultados da Tabela (1) e da Tabela (2), vemos que para este problema, aformula de Euler inversa e um pouco menos precisa que a formula de Euler explıcita. Ja queela tambem e um pouco mais difıcil de usar, podemos ficar a nos perguntar por que nos demos otrabalho de menciona-la. A resposta e que trata do exemplo mais simples de uma classe de metodosconhecidos como formulas inversas de diferenciacao que podem ser muito uteis para resolver certasclasses de equacoes diferenciais (Boyce & DiPrima, 2005; Zill, 2003).

4.1.2 Formula de Euler Aprimorada

Uma formula aproximada melhor pode ser obtida se o integrando na equacao (19) for apro-ximado com maior exatidao. Uma forma de conseguir esta melhoria e a de substituir o inte-grando pela media dos seus valores nas duas extremidades do intervalo de integracao, ou seja,por {f [xn, φ(xn)] + f [xn+1, φ(xn+1)]}/2. Alem disso, se substituirmos φ(xn) e φ(xn+1) pelosrespectivos valores aproximados yn e yn+1, obteremos, da equacao (22),

yn+1 = yn +f(xn, yn) + f(xn+1, yn+1)

2h (eq.23) (50)

18

Page 19: Numerical Methods for Solving Linear Ordinary Differential Equations

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,05 0,9975 0,9988 0,0024 0,120,10 0,9926 0,9950 0,0025 0,240,15 0,9853 0,9889 0,0036 0,360,20 0,9758 0,9804 0,0046 0,470,25 0,9642 0,9697 0,0055 0,570,30 0,9507 0,9570 0,0063 0,660,35 0,9354 0,9424 0,0069 0,740,40 0,9187 0,9261 0,0074 0,800,45 0,9007 0,9083 0,0077 0,850,50 0,8816 0,8894 0,0078 0,880,55 0,8617 0,8695 0,0078 0,900,60 0,8412 0,8488 0,0076 0,900,65 0,8204 0,8277 0,0073 0,890,70 0,7994 0,8063 0,0069 0,860,75 0,7785 0,7848 0,0064 0,810,80 0,7579 0,7636 0,0057 0,750,85 0,7377 0,7428 0,0051 0,680,90 0,7180 0,7224 0,0044 0,600,95 0,6992 0,7028 0,0036 0,511,00 0,6810 0,6839 0,0029 0,42

Tabela 4: Resultado da aplicacao do metodo de Euler inversa, com valor do incremento h = 0, 05, na resolucaonumerica de y′ = x− 2xy, y(0) = 1

Uma vez que a incognita yn+1 aparece como um dos argumentos de f no segundo membro daequacao (23) e muitas vezes bastante difıcil resolver esta equacao em yn+1. Esta dificuldade podeser superada pela substituicao, no segundo membro da equacao (23), de yn+1 pelo valor obtidomediante a formula de Euler (6).

Assim,

yn+1 = yn +f(xn, yn) + f [xn + h, yn + hf(xn, yn)]

2h

yn+1 = yn +fn + f [xn + h, yn + hfn]

2h (eq.24) (51)

onde xn+1 foi substituıdo por xn + h.A equacao (24) da uma formula para o calculo de yn+1, o valor aproximado de φ(xn+1), em

termos dos dados em xn. E conhecido como formula de Euler aprimorada ou formula de Heun.O aprimoramento da equacao (22) em relacao a formula de Euler(6) esta em que o erro de

truncamento local, com a equacao (24) e proporcional a O(h3), enquanto com metodo de Eulere proporcional a O(h2). Nota-se que esta melhoria da exatidao e conseguida as custas de maiorquantidade de trabalho computacional, pois se tem que estimar f(x, y) duas vezes a fim de passarde xn para xn+1.

Se f(x, y) depender exclusivamente de x e nao de y, a resolucao da equacao diferencial y′ =f(x, y) se reduz a integracao de f(x). Neste caso, a formula de Euler aprimorada (24) fica

yn+1 − yn =h

2[f(xn) + f(xn + h)] (eq.25) (52)

que e a regra do trapezio para a integracao numerica.

4.2 O Metodo dos Tres Termos da Serie de Taylor

Vimos em uma secao anterior que a formula de Euler, yn+1 = yn + hf(xn, yn), para resolver oproblema de valor inicial y′ = f(x, y), y(x0) = y0 pode ser deduzida retendo-se os dois primeirostermos na serie de Taylor para a solucao y = φ(x) em torno do ponto y = xn. Pode-se obteruma formula mais precisa usando-se os tres primeiros termos. Considerando-se que φ tem, pelomenos, tres derivadas contınuas no intervalo de interesse (ou seja, e pelo menos de classe C3 e

19

Page 20: Numerical Methods for Solving Linear Ordinary Differential Equations

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,10 0,9950 0,9950 0,0000 0,000,20 0,9803 0,9804 0,0001 0,100,30 0,9569 0,9570 0,0001 0,010,40 0,9260 0,9261 0,0001 0,010,50 0,8894 0,8894 0,0000 0,000,60 0,8545 0,8488 0,0057 0,670,70 0,8114 0,8063 0,0051 0,630,80 0,7682 0,7636 0,0046 0,600,90 0,7264 0,7224 0,0040 0,551,00 0,6875 0,6839 0,0036 0,52

Tabela 5: Resultado da aplicacao do metodo de Euler aprimorado, com valor do incremento h = 0, 1, naresolucao numerica de y′ = x− 2xy, y(0) = 1.

f tem derivadas parciais de segunda ordem contınuas) e usando a serie 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 equacao (17),

φ′(xn) = f [xn, φ(xn)]

Alem disso, φ′′(xn) pode ser calculado da equacao 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)

Obtem-se a formula dos tres termos da serie de Taylor substituindo φ(xn) por seu valor apro-ximado yn nas formulas para φ′(xn) e φ′′(xn) e entao desprezando o termo φ′′(xn)/3! na equacao(26). Assim, obtemos:

yn+1 = yn + hy′n +h2

2y′′n (eq.29) (56)

ondey′n = f(xn, yn) (eq.30) (57)

ey′′n = fx(xn, yn) + fy(xn, yn)y′n (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 formula local en+1 associadoa formula |exata− aprox| e:

en+1 = φ(xn+1)− yn+1 =16φ′′′(xn)h3 (eq.33) (60)

onde xn < xn < xn + h.Assim, o erro de formula local para a formula dos tres termos da serie de Taylor e proporcional a

O(h3) exatamente como na formula de Euler aprimorada discutida na secao anterior. Novamente,pode-se tambem mostrar que, para um intervalo finito, o erro de formula acumulado nao e maiorque uma constante vezes O(h2).

20

Page 21: Numerical Methods for Solving Linear Ordinary Differential Equations

A formula dos tres termos da serie de Taylor requer o calculo de fx(x, y) e fy(x, y) e entao aavaliacao destas funcoes, bem como de f(x, y) em (xn, yn). Em alguns problemas, pode ser difıcil,ou bastante demorado, o calculo de fx e fy. Se este for o caso, sera provavelmente melhor usaruma formula com precisao comparavel, tal como a formula de Euler aprimorada, que nao requeras derivadas parciais fx e fy. Em princıpio, formulas de quatro termos, ou mesmo mais, da seriede Taylor podem ser desenvolvidas. Entretanto, tais formulas envolvem derivadas parciais de fainda menores e sao, em geral, improprias para uso.

xn yn Solucao Exata Erro Absoluto Erro Relativo %

0,00 1,0000 1,0000 0,0000 0,000,10 0,9900 0,9950 0,0050 0,500,20 0,9793 0,9804 0,0011 0,110,30 0,9507 0,9570 0,0062 0,640,40 0,9150 0,9261 0,0111 1,190,50 0,8739 0,8894 0,0155 1,740,60 0,8297 0,8488 0,0191 2,250,70 0,7842 0,8063 0,0221 2,740,80 0,7393 0,7636 0,0243 3,180,90 0,6967 0,7224 0,0257 3,551,00 0,6226 0,6839 0,0613 8,96

Tabela 6: Resultado da aplicacao dos tres termos da serie de Taylor, com valor do incremento h = 0, 1, naresolucao numerica de y′ = x− 2xy, y(0) = 1

4.3 O Metodo de Runge-Kutta

Os metodos de Runge-Kutta sao os mais usados dentre aqueles apropriados para os problemasde valor inicial. Os seus atrativos sao simplicidade, alta precisao e versatilidade nas aplicacoes aserem utilizadas (Hull et al., 1972; Stabrowski, 1997; Gear, 1971). Tomemos a equacao diferencialde 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 formula de diferencas finitasavancada para discretizar a derivada de y(x) no ponto xk. Assim, obtemos uma versao discretizadade (18)

yk+1 − yk

h= f(xk, yk) (eq.34) (61)

Esta equacao permite que calculemos yk+1 a partir de yk, e define o Metodo de Euler (1707-1783),estabelecido em 1768. Sua aplicacao e muito simples:

y0 = y(x0)yk+1 = yk + hf(xk, yk), para k = 0, 1, 2, . . .

O metodo numerico de Euler foi usado por Cauchy (1789-1857) em um procedimento matema-tico para demonstrar a existencia de solucao para o problema do valor inicial. O argumento deCauchy foi generelizado por Lipschitz (1832-1903), exigindo menos da funcao f(x, y).

Como vimos anteriormente, a formula avancada introduz erro da ordem de h em cada passo.E nas secoes anteriores, como introduzimos a formula de Euler, a formula de Euler aprimorada e aformula de Taylor com tres termos, verifica-se que os erros de truncamento locais nesses metodossao proporcionais a h2 , h3 e h3, respectivamente. Todos eles pertencem a chamada classe demetodos de Runge-Kutta.

A ideia de Euler tem versoes de maior precisao nos trabalhos de Runge em 1895, para o casode uma equacao, e Kutta em 1901, para o caso de sistemas de equacoes diferenciais de primeiraordem.

21

Page 22: Numerical Methods for Solving Linear Ordinary Differential Equations

4.3.1 O Metodo Runge-Kutta de Segunda Ordem.

Consideremos inicialmente os metodos Runge-Kutta de segunda ordem definidos pela expres-sao:

yk+1 − yk

h= β0f(xk, yk) + β1f(xk + γh, yk + δh),

onde os parametros β0, β1, γ e δ serao convenientemente calculados de modo a aumentar aprecisao do resultado.

Explicitando yk+1 nesta relacao, temos :

yk+1 = yk + hβ0f(xk, yk) + hβ1f(xk + γh, yk + δh) (eq.35) (62)

O ultimo termo do lado direito desta equacao pode ser desenvolvido atraves da serie de Taylorpara funcoes de duas variaveis, isto e :

f(xk + γh, yk + δh) = f(xk, yk) + hγfx(xk, yk) + hδfy(xk, yk) +1

2[h2

γ2fxx(xk, yk) + 2h2

γδfxy(xk, yk) + h2δ2fyy(xk, yk)] + O(h3)

Levando esta expansao para a equacao (35) e agrupando os termos de iguais potencias de hteremos:

yk+1 = yk + [(β0 + β1)f(xk, yk)] +h2

2[2β1γfx(xk, yk) + 2β1δfy(xk, yk)] +

h3

6[3β1γ

2fxx(xk, yk) + 6β1γδfxy(xk, yk) + 3β1δ2fyy(xk, yk)] +O(h4)

Nos metodos de Runge-Kutta adota-se, como criterio de escolha dos quatro parametros β0, β1,γ e δ, a ordem de aproximacao 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 multiplicadoresde h e h2 sejam iguais nas duas expressoes. Desta maneira, os parametros devem satisfazer as tresrelacoes;

β0 + β1 = 12β1γ = 12β1δ = f(xk, yk)

Como sao quatro os parametros e tres as condicoes que eles devem satisfazer, existem variasescolhas de β0, β1, γ e δ de modo que o calculo de yk+1 coincida com o da serie de Taylor, ate otermo de segunda ordem.

Assim, poderıamos tomar :

β0 = β1 =12

, γ = 1 e δ = f(xk, yk)

Isto caracteriza o chamado Metodo de Euler modificado ou

β0 = β1 = 1, γ =12

e δ =12f(xk, yk)

Enquanto, que para este valores caracteriza o chamado Metodo de Euler aperfeicoado.Desta forma, estes sao os parametros que definem Metodos de Runge-Kutta de segunda

ordem.Para estabelecer outras formulas mais gerais de Runge-Kutta, que coincidam com a serie de

Taylor ate 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 analoga para estabelecer relacoes entre os parametros.

22

Page 23: Numerical Methods for Solving Linear Ordinary Differential Equations

Figura 10: Ilustracao do Metodo de Runge-Kutta de 2a Ordem ou Metodo do Ponto Medio. No metodo de Euler

de passo h , a estimativa de yn+1 e realizada com os valores de xn e da derivada de yn. No metodo 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 proximo de xn+1, em xn + h/2.

23

Page 24: Numerical Methods for Solving Linear Ordinary Differential Equations

4.3.2 O Metodo Runge-Kutta de Quarta Ordem.

Nesta secao, discutimos um metodo tambem formulado originalmente por Runge e Kutta.Este metodo e hoje oficialmente conhecido como metodo classico Runge-Kutta de quarta ordeme quatro estagios, mas muitos autores o chamam simplesmente de metodo de Runge-Kutta, podeser o mais usado, onde possui uma combinacao de simplicidade, alta precisao e economia. Nestemetodo, o erro de truncamento local e proporcional a h5, isto devido a sua formula classica serequivalente a uma formula de Taylor de cinco termos:

yn+1 = yn + hy′n +h2

2!y′′n +

h3

3!y′′′n +

h4

4!yiv

n (eq.36) (63)

Assim, ele e duas ordens de grandeza mais preciso que o metodo de Euler aperfeicoado eo metodo de Taylor de tres termos, e tres ordens de grandeza mais preciso que o metodo deEuler. E relativamente facil de usar e suficientemente preciso para resolver muitos problemas deforma eficiente. Melhor ainda, e o metodo de Runge-Kutta adaptativo, no qual se faz variar oincremento de acordo com as necessidades. Desta forma, a formula de Runge-Kutta envolve umamedia 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 +12h, yn +

12hkn1)

kn3 = f(xn +12h, yn +

12hkn2)

kn4 = f(xn + h, yn + hkn3)

Podemos interpretar a soma (kn1 + 2kn2 + 2kn3 + kn4)/6 como um coeficiente angular medio.Note que kn1 e o coeficiente angular na extremidade esquerda do intervalo, kn2 e o coeficienteangular no ponto medio estimado pela formula de Euler para ir de xn ate xn + h/2, kn3 e umasegunda aproximacao do coeficiente angular no ponto medio e, finalmente, kn4 e o coeficienteangular em xn + h estimado pela formula de Euler e pelo coeficiente angular kn3 indo de xn atexn + h.

Apesar de nao ser muito difıcil demonstrar, em princıpio, que as equacoes anteriormente esta-belecidas [eq.36 e eq.37] diferem por termos no desenvolvimento de Taylor da solucao φ por termosque sao proporcionais a h5, a algebra envolvida e bastante extensa. Deste modo, aceitaremos ofato de que o erro de truncamento local ao usarmos a equacao (37) e proporcional a h5 e que, paraum intervalo finito, o erro de truncamento acumulado e, no maximo, igual a uma constante vezesh4. Obviamente a formula de Runge-Kutta nas equacoes (36)[63] e (37)[64] e mais complexa doque qualquer uma das formulas discutidas anteriormente. Por outro lado, devemos lembrar queela e uma formula muito precisa, isto e, reduzindo o tamanho do passo a metade, reduzimos o errode truncamento local por um fator de 1/32; alem disso, nao e necessario calcularmos nenhumaderivada parcial de f . Alem do mais, os calculos aqui descritos sao rotineiros num computadorde alta velocidade e podem ser feitos em segundos para qualquer funcao f , exceto para aquelasextremamente complicadas e longas. Note tambem que, se f nao depende de y, entao

kn1 = f(xn), kn2 = kn3 = f(xn, h/2), kn4 = f(xn + h)

24

Page 25: Numerical Methods for Solving Linear Ordinary Differential Equations

e a eq.(37)[64] e identica aquela obtida usando-se a regra de Simpson para avaliar a integral dey′ = f(x); ∫ yn+1

yn

dy =∫ xn+h

xn

f(x)dx

ouyn+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 esta de acordo com o comentarioanterior sobre o erro na formula de Runge-Kutta.

A formula de Runge-Kutta, nas eqs.(36)[63] e (37)[64], sao todas de um passo, de modo que saoamplamente usadas com maior sucesso em uma implementacao numerica. Um fato interessantede se realizar, seria a implementacao de um programa de computador que utiliza-se o metodonumerico descrito nesta secao. A estrutura do programa seria a mesma de um programa usadopara implementar o metodo de Euler. A diferenca fundamental estaria na linha referente aosexto passo do algoritmo de Euler. Essa linha, ou as intrucoes contidas na mesma, deveriam sersubstituıdas pelas estruturas do algoritmo de Runge-Kutta.

ALGORITMO DO METODO DE RUNGE-KUTTA DE QUARTA ORDEM (RK4)� �� �1 Entre com a funcao f(x, y) .2 Entre com os va l o r e s i n i c i a i s x0 e y0 .3 Entre com o va 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 + h12 Escreva x e y .13 Fim . � �

Codigo Fonte 3: O metodo de Runge-Kutta pode ser entendido como um aperfeicoamento do metodo de Euler,com uma melhor estimativa da derivada da funcao. No metodo de Euler a estimativa do valor de yn+1 e realizadocom o valor de yn e com a derivada no ponto xn . No metodo de Runge-Kutta, busca-se uma melhor estimativada derivada com a avaliacao da funcao em mais pontos no intervalo [xn, xn+1]. Um metodo de Runge-Kutta deordem n possui um erro da ordem de O(hn+1). O metodo de Runge-Kutta de 4a ordem e o mais usado na solucaonumerica de problemas com equacoes diferenciais ordinarias.

A seguir sera apresentado um pequeno exemplo usando o metodo de Runge-Kutta na solucaode uma equacao diferencial [Codigo Fonte 4]. O passo neste exemplo sera reduzido para 0,01s. Asolucao da equacao diferencial e encontrada pelo uso iterativo das equacoes descritas pela equacao(37)[64] relacionada aos termos kn1, kn2, kn3 e kn4.� �� �

1 #inc lude <cmath>2 #inc lude <c s td l i b >3 #inc lude <iostream>4

5 /∗ Solucao y(x) da equacao − Def in i cao 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 Pr i n c i pa l do Programa ∗/12 int main( int argc , char∗ argv [ ] )13 {14 double xn , xn1 , xmax ; /∗ va r i a v e i s xn e xn+1 ∗/15 double yn , yn1 ; /∗ va r i a v e i s yn e yn+1 ∗/16 double y0 , t0 ; /∗ va 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 ; /∗ va 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 ; /∗ va lo r i n c i a l para x ∗/

25

Page 26: Numerical Methods for Solving Linear Ordinary Differential Equations

22 y0 = 1 . 0 ; /∗ va lo r i n i c i a l para y ∗/23 xmax = 2 . 0 ; /∗ va lo r maximo para x ∗/24 h = 0 . 0 1 ; /∗ o va lo r 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 va 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 /∗ ap 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 /∗ at r ibua os va 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 } � �

Codigo Fonte 4: Exemplo de um programa em C++ para a solucao de uma equacao diferencial pelo metodo deRunge-Kutta. Comparando-se os resultados da solucao numerica usando o metodo de Euler com os resultados dasolucao usando o metodo de Runge-Kutta, observa-se que neste segundo metodo a precisao e maior, mesmo com ouso de um passo 10 vezes maior (Press et al., 1988).

4.3.3 O Metodo de Runge-Kutta-Fehlberg.

Este metodo implementa procedimentos para verificar se o valor do passo de integracao h eadequado. Em cada iteracao sao obtidas duas aproximacoes para a solucao y(x). Se as duasrespostas satisfazem uma precisao pre-estabelecida, a aproximacao e aceita. Se nao, o tamanhodo passo de integracao e reduzido e uma nova iteracao e realizada. Se as duas respostas possuemmais dıgitos significativos que o requerido, o tamanho do passo de integracao e aumentado e umanova iteracao e realizada. Cada iteracao requer o calculo dos fatores :

f1 = h · f (xi, yi)

f2 = h · f(xi +

14h, yi +

14f1

)f3 = h · f

(xi +

38h, yi +

332f1 +

932f2

)f4 = h · f

(xi +

1213h, yi +

19322197

f1 −72002197

f2 +72962197

f3

)f5 = h · f

(xi + h, yi +

439216

f1 − 8f2 +3680513

f3 −8454104

f4

)f6 = h · f

(xi +

12h, yi −

827f1 + 2f2 −

35442565

f3 +18594104

f4 −1140f5

)

Uma aproximacao para y(x) e obtida pela equacao:

yi+1 = yi +256216

f1 +14082565

f3 +21974104

f4 −15f5

Uma outra aproximacao, melhor que a primeira, e obtida atraves da utilizacao da equacao:

26

Page 27: Numerical Methods for Solving Linear Ordinary Differential Equations

yi+1 = yi +16135

f1 +665612825

f3 +2856156430

f4 −95f5 +

255f6

O passo de integracao otimo, qh, e determinado multiplicando-se o valor de h pelo fator:

q =(

δh

2|f(xi+1, yi+1)− yi+1|

) 14

sendo δ a precisao desejada. O valor do passo de integracao obedece a relacao hmin ≤ h ≤ hmax.Nesta relacao hmin e hmax sao os limites mınimo e maximo permitidos para a variacao do passode integracao.

4.4 Erros nos Procedimentos Numericos

A adocao de um procedimento numerico, como o da formula 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 diversasquestoes que devem ser respondidas antes que a solucao numerica aproximada seja aceita como sa-tisfatoria. Uma das questoes e a de convergencia. Isto e, a medida que o incremento h tende parazero, os valores da solucao numerica y1, y2, . . . , yn, . . . se aproximam dos valores correspondentesaos da solucao exata? Com a hipotese da resposta ser afirmativa, ainda permanece a importantequestao pratica da velocidade com que a aproximacao numerica se se estabelece perante a solucaoexata. Enfim, qual o tamanho necessario do incremento para que se garanta um nıvel de extidaodado? Queremos usar um incremento que seja suficientemente pequeno para assegurar a exatidaodesejada, mas nao o queremos muito pequeno. Um incremento desnecessariamente pequeno tornao processo dos calculos lento, tornando-os mais caros e, em alguns casos, pode ate provocar aperda de exatidao.

Ha duas fontes fundamentais de erro na resolucao numerica de um problema de valor ini- cial.Vamos admitir, inicialmente que o nosso computador possa efetuar todos os calculos com exatidaoabsoluta; isto e, que podemos garantir um numero infinito de casas decimais. A diferenca En

entre a solucao exata y = φ(x) e a solucao 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 formula ou erro de formula acumulado ou erro de trunca-mento acumulado.

Esse erro provem de duas causas:

1. em cada passo, usamos uma formula aproximada para determinar yn+1

2. os dados de entrada, em cada passo, nao concordam, em geral, com a solucao exata, poistambem, em geral, φ(xn) nao e igual a yn. Se admitirmos que os dados de entrada saocorretos, o unico erro, quando se avanca um passo no processo, se deve ao uso de umaformula aproximada. Este erro e o erro de truncamento local ou erro de formula local ouerro de arrendondamento local en.

Depois, em virtude das limitacoes de todos os computadores, e impossıvel, na pratica, cal- cularexatamente yn+1 apartir da formula dada. Temos, entao um erro de arrendodamento provocadopela ausencia de exatidao computacional. Analisemos juntos, esta situacao, se um computadorpuder operar com apenas oito algarismos, e se y0 for 1, 017325842, os dois ultimos algarismosdevem ser arrendodados, o que introduz, imediatamente, um erro no calculo de y1. Ou entao,se y′ = f(x, y) envolver funcoes, tais como, a logarıtmica ou a exponencial, temos um erro dearrendodamento ao se efetuarem estas operacoes. Como no erro de formula, e possıvel falar deerro de truncamento local e de erro de truncamento acumulado. O erro de truncamento Rn sedefine como:

Rn = yn − Yn (eq.39) (66)

27

Page 28: Numerical Methods for Solving Linear Ordinary Differential Equations

onde yn e o valor aproximado pelo procedimento numerico dado e Yn e o valor realmentecalculado pelo procedimento numerico dado - por exemplo, pela formula de Euler o valor absolutodo erro total no calculo 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 equacao(40)[67],temos:

|φ(xn)− Yn| ≤ |φ(xn)− yn|+ |yn − Yn| ≤ |En|+ |Rn| (eq.41) (68)

O erro total esta assim limitado pela soma dos valores absolutos dos erros de truncamentoe dos erros de arrendondamento. Nos procedimentos numericos discutidos e possıvel conseguirestimativas uteis dos erros de formula. Porem, vamos nos limitar a discutir principalmente oserros de formula locais, que sao um tanto mais simples, enquanto os erros de arrendondamentotem, evidentemente, uma natureza mais aleatoria. Pois a sua eficacia, depende de um bom sistemacomputacional de alta velocidade, da sequencia de execucao de seus calculos, assim como do metodode arrendondamento utilizado.

4.4.1 Erro de truncamento local no metodo de Euler

Vamos admitir que a solucao y = φ(x), do problema de valor inicial anteriormente fornecidotenha derivada segunda contınua no intervalo considerado. Para garantir esta hipotese, pode-mos admitir que f , fx, fy sejam contınuas no intervalo mencionado. De fato, se f tiver estaspropriedades, e se φ for solucao do problema de valor inicial, entao:

φ′(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 equacao e contınuo, φ′′ tambem e contınua. Entao,desenvolvendo φ em torno de xn, por uma serie de Taylor com resto, obtemos:

φ(xn + h) = φ(xn) + φ′(xn)h+12φ′′(xn)h2 (eq.43) (70)

onde xn e qualquer ponto no intervalo xn < xn < xn + h.Subtraindo a equacao (43)[70] da equacao (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)] +12φ′′(xn)h2 (eq.44) (71)

Para calcular o erro de formula local, consideramos que os dados no enesimo passo estaocorretos, isto e, yn = φ(xn). Entao, obtemos imediatamente da equacao (44)[71] que o erro deformula local en+1 e:

en+1 = φ(xn+1)− yn+1 =12φ′′(xn)h2 (eq.45) (72)

Deste modo, o erro de truncamento local para o metodo de Euler e proporcional ao quadradodo incremento h e o fator de proporcionalidade depende da segunda derivada da solucao φ. A

28

Page 29: Numerical Methods for Solving Linear Ordinary Differential Equations

expressao da equacao (45)[72] depende de n e em geral e diferente para cada passo. Um limiteuniforme para o erro, valido para um intervalo [a, b], e dado por:

|en| ≤Mh2

2(eq.46) (73)

ondeM e o maximo de |φ′′(x)| no intervalo [a, b]. Como a equacao (45)[72] se baseia no pior casopossıvel de |φ′′(x)|, pode ser que o erro local seja consideravelmente superestimado em algumasregioes do intervalo [a, b]. A equacao (45)[72] pode ser usada, entre outras coisas, para escolher umincremento que resulte em um erro de truncamento local que nao exceda um determinado limitede tolerancia. Por exemplo: se o erro de truncamento local nao for maior do que ε, a equacao(46)[73] revela que:

Mh2

2≤=⇒ h ≤

√2ε/M (eq.47) (74)

A dificuldade primaria para com o uso das equacoes (45)[72], (46)[73] e (47)[74] na estimativado erro de formula local esta na obtencao de uma estimativa precisa de M ou |φ′′(x)|. Seja comofor, essas equacoes mostram que o erro de truncamento local e proporcional a h2 (note que M eindependente de h); deste modo, reduzindo h por um fator de 1

2 , reduzimos o limite do erro porum fator de 1

4 , e uma reducao por um fator de 110 em h reduz o limite do erro por um fator de

1100 , (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. Noentanto, uma estimativa do erro de truncamento local fornece uma melhor compreensao do pro-cedimento numerico e um modo de comparar a precisao dos diferentes procedimentos numericos.A analise para estimar En e mais difıcil que no caso de en. Entretanto, conhecendo o erro detruncamento local podemos fazer uma estimativa intuitiva do erro de truncamento global para umvalor 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 maximo de Mh2

2 ; assim, o erro total nos n passos e no maximo de Mh2

2 .Observando que, n = (x − x0)/h, descobrimos que o erro de truncamento global para o metodode Euler, ao passarmos de x0 para x, e dado no maximo por:

nMh2

2= (x− x0)

Mh

2(eq.48) (75)

Apesar deste argumento nao ser totalmente correto por nao levar em conta o efeito que um errocometido num passo causara nos proximos passos, Entretanto, e possıvel mostrar que, em qualquerintervalo finito, o erro de truncamento global ao usarmos o metodo de Euler, nunca e maior doque o produto de h por uma constante. Assim, ao irmos de x0 a um ponto fixado x, o erro detruncamento global pode ser reduzido tomando-se um tamanho de passo h, menor. Infelizmente,isto nao e o fim da estoria. Se tomarmos h muito pequeno, isto e, se usarmos muitos passospara irmos de x0 a x, o erro de truncamento acumulado poder-se-a tornar mais importante queo erro de truncamento global. Na pratica, devemos considerar ambas as fontes de erro e devemosfazer uma escolha ”otima” de h de modo que nenhum dos erros seja muito grande. Como o errode truncamento global e mais facil de calcular, deste modo ele sera usado como nossa medidaprincipal da precisao de cada um dos metodos numericos e para comparar diferentes metodos.

Mais vale ressaltar, que o metodo de Euler e considerado um metodo de primeira ordem, poiso erro de truncamento global e proporcional a primeira potencia do tamanho do incremento.

4.4.2 Aplicacao do Erro de Truncamento Acumulado no Metodo de Euler

Vamos discutir o erro de truncamento acumulado associado ao metodo de Euler na resolucaodo problema de valor inicial y′ = f(x, y), y(x0) = y0. Admitindo que as funcoes f e fy sejamcontınuas numa regiao R do plano xy que inclui o ponto (x0, y0), pode-se mostrar que existe umaconstante L tal que |f(x, y)− f(x, y)| < L|y− y| onde (x, y) e (x, y) sao dois pontos quaisquer emR com a mesma coordenada x. Alem disso, vamos admitir que fx seja contınua, de modo que a

29

Page 30: Numerical Methods for Solving Linear Ordinary Differential Equations

solucao φ tem uma derivada segunda contınua. Com base nas construcoes exibidas ate o presentemomento teremos:

• Utilizando a equacao (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 equacao (41)[68], entao

|En| ≤βh2(αn − 1)

α− 1, para α 6= 1 [***]

Mostrar que;

|En| ≤(1− hL)n − 1

Lβh (eq.50) (77)

A equacao (50)[77] da um limite para |En| em termos de h, L, n e β. Observar que para umh fixo, este limite de erro cresce quando n cresce; isto e, o limite de erro aumenta quandoaumenta a distancia ao ponto de partida x0.

• Mostrar que (1 + hL)n ≤ enhL e entao que :

|En| ≤enhL − 1

Lβh =

e(xn−x0)L − 1L

βh

Para um ponto fixo xn = x0 + nh, (isto e, nh e constante e h = (xn − x0)/n este limite deerro tem a forma do produto de uma constante por h e se aproxima de zero quando h→ 0.)Observar tambem que quando nhL = (xn−x0)L for pequeno, o segundo membro da equacaoanterior e aproximadamente nh2β = (xn−x0)βh, que foi obtido nas equacoes anteriores porum raciocınio intuitivo.

Solucao:

• Da definicao 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+12φ′′(xn)h2

e pela eq.(6)[34] temos yn+1 = yn + hf(xn, yn). Assim, substituindo as equacoes (6)[34] e(43)[70] em (51)[78] teremos:

|En+1| = |φ(xn) + φ′(xn)h+12φ′′(xn)h2 − [yn + hf(xn, yn)]|

Substituindo φ′(xn) por f [xn, φ(xn)] na equacao anterior;

|En+1| = |φ(xn) + f [xn, φ(xn)]h+12φ′′(xn)h2 − [yn + hf(xn, yn)]|

|En+1| = |φ(xn)− yn + h[f [xn, φ(xn)]− f(xn, yn)] +12φ′′(xn)h2|

Aplicando a desigualdade triangular, tem-se

|En+1| ≤ |φ(xn)− yn|+ |h[f [xn, φ(xn)]− f(xn, yn)]|+ |12φ′′(xn)h2|

|En+1| ≤ |φ(xn)− yn|+ |h[f [xn, φ(xn)]− f(xn, yn)]|+ |12h2||φ′′(xn)|

|En+1| ≤ |En|+ h|[f [xn, φ(xn)]− f(xn, yn)]|+ 12h2|φ′′(xn)|

30

Page 31: Numerical Methods for Solving Linear Ordinary Differential Equations

Com isso teremos :

|En+1| ≤ |En|+ h|[f [xn, φ(xn)]− f(xn, yn)]|+ 12h2|φ′′(xn)| (eq.52) (79)

Mas; como φ′′ e contınua e β = max|φ′′(xn)/2| em x0 < xn < xn, entao da equacao (52)[79]podemos afirmar que : |[f [xn, φ(xn)] − f(xn, yn)]| < L|φ(xn) − yn|, onde queremos que anossa hipotese seja uma funcao lipschitziana quando existe uma constante L > 0 (chamadaconstante de Lipschitz da funcao 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)]|+ 12h2|φ′′(xn)|

|En+1| ≤ |En|+ hL|φ(xn)− yn|+12h2|φ′′(xn)|

|En+1| ≤ |En|+ hL|En|+12h2|φ′′(xn)|

|En+1| ≤ (1 + hL)|En|+12h2|φ′′(xn)|

|En+1| ≤ α|En|+12h2|φ′′(xn)|

Logo;

|En+1| ≤ |En|+ h|[f [xn, φ(xn)]− f(xn, yn)]|+ 12h2|φ′′(xn)| ≤ α|En|+ βh2

• Temos que, a = 1 + hL ⇒ hL = a − 1. Assim, da equacao [***], onde substituindo o valorde 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 valido a desigualdade (1 + x) ≤ ex, ∀x ∈ R e a expansao deex = 1 + (x− 0)e0 + (x− 0)2ex/2!, segundo a serie de Taylor,com x0 < x < xn; A partir daı,podemos tambem afirmar que (1 + x)n < (ex)n e tomando x = hL; temos:

(1 + hL)n ≤ (ehL)n

AssimehL = 1 + (hL− 0)e0 + (hL− 0)2ex/2! ≥ 1 + hL⇒ 1 + hL ≤ ehL

Entao :(1 + hL)n ≤ (ehL)n, ∀ hL > 0

Assim, mostraremos por inducao matematica que :

|En| ≤βh2(αn − 1)

α− 1

Sabemos que, E0 = 0 e |En+1| ≤ α|En| + βh2. Tomando n = 0; verifiquemos a equacaoanterior:

|E1| ≤ α|E0|+ βh2

|E1| ≤ βh2 = βh2(α− 1)/(α− 1)

31

Page 32: Numerical Methods for Solving Linear Ordinary Differential Equations

Tomando n = 1; verifiquemos a equacao 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 hipotese, 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)tambem e verdadeiro.

• Mostrar que (1 + hL)n = enhL, e entao que |En| ≤ [enhL − 1/L]βh = [e(xn−x0)L − 1/L]βhsabemos 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

Porem, xn = x0 +nh⇒ nh = xn−x0. Assim, substituindo o valor de nh na equacao acima,obtemos:

|En| ≤(1 + hL)n − 1

Lβh ≤ [e(xn−x0)L − 1/L]βh

Quando; h→ 0, temos que |En| → 0.

5 Metodos de Passos Multiplos

Ate o atual momento, vinhamos discutindo procedimentos numericos para resolver o problemade valor inicial y′ = f(x, y), y(x0) = y0 nos quais os dados no ponto x = xn eram usados paracalcular um valor aproximado da solucao φ(xn+1) no ponto seguinte da rede x = xn+1. Em outrostermos, o valor calculado de φ em qualquer ponto da rede de pontos dependia somente dos dados noponto precedente, que denominamos de metodos de passo simples ou metodos de partida.

A partir de agora, uma vez que se tenham conseguidos valores aproximados da solucao y = φ(x)em alguns pontos alem de x0, e natural perguntar se nao pode usar parte da informacao conseguidanestes outros pontos em lugar de se limitar ao valor obtido no ultimo ponto para calcular o valor def no ponto seguinte. Mais especificamente, se y1 em x1, y2 em x2, . . . , yn em xn forem conhecidos.Entao, surge o seguinte questionamento. Como se pode usar esta informacao a fim de determinaryn+1 em xn+1? Desta forma, surge metodos que usam informacao em mais de um ponto, alem doultimo de uma rede, denominados metodos de passos multiplos.

Em futuros trabalhos iremos descrever dois metodos de passos multiplos: o Metodo deAdams e o Metodo Inverso de Diferenciacao. Dentro de cada metodo, e possıvel conse-guir diferentes graus de precisao, dependendo do numero de pontos precedentes que sao utilizados.

32

Page 33: Numerical Methods for Solving Linear Ordinary Differential Equations

6 Consideracoes Finais

Introduzimos o estudo e a implementacao dos metodos numericos para a solucao de equacoesdiferenciais ordinarias (EDO), de forma a ser observada a eficacia destas ferramentas para a apro-ximacao de solucoes inerentes ou muito semelhantes a uma solucao analıtica de um problema devalor inicial. Porem, e daı que devemos estar atentos as varias fontes de erros que podem deses-tabilizar a precisao de cada metodo apresentado(como o erro de arrendondamento, truncamentolocal e global).

Vimos que o erro de truncamento local e global no metodo de Euler e de O(h2) e O(h), enquantonos demais metodos observamos variacoes conforme a ordem de h, e ainda conforme o truncamentona serie de Taylor.

Alem disso tivemos a possibilidade de verificar que os metodos de Runge-Kutta de quarta ordemsao os que mais se aproximam da solucao exata de um problema de valor inicial. Em futuros estudospoderemos abordar outros metodos como o de Newmark, o de Crank-Nicholson, o Metodo deDormand-Prince, o Metodo Preditor-Corretor, o Metodo Adams-Bashforth-Moulton, oMetodo Gear(para equacoes stiff) e Metodos de Passo Adaptativo alem do uso desses paraSistemas de Equacoes de Primeira Ordem.

Referencias

Arenales, S. & Darezzo, A. (2008), Calculo Numerico: Aprendizagem com Apoio de Software,Vol. 1, 1 ed., Sao 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-kuttaof 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 ordinarydifferential equations with genetic programming’, Genetic Programming and Evolvable Machines1(4), 309–337.

Evaristo, J. (2001), Aprendendo a Programar Programando em C, Vol. 1, Book Express - Rio deJaneiro. 3a Reimpressao.

Gear, C. W. (1971), ‘The automatic integration of ordinary differential equations’, Commun. ACM14(3), 176–179.

Hull, T. E., Enright, W. H., Fellen, B. M. & Sedgwick, A. E. (1972), ‘Comparing numerical methodsfor 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 differentialequations’, 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), Calculo Numerico: Aspectos Teoricos e Computacionais, 2 ed.,Makron Books.

33

Page 34: Numerical Methods for Solving Linear Ordinary Differential Equations

Sotomayor, J. (1979), Licoes de Equacoes Diferenciais Ordinarias, Publicacao do IMPA - ProjetoEuclides.

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), Calculo - Volume II, Vol. 2, 5 ed., Sao Paulo: Cengage Learning.

Zarowski, C. (2004), An Introduction to Numerical Analysis for Electrical and Computer Engine-ers, Wiley Interscience.

Zill, D. (2003), Equacoes Diferenciais com Aplicacoes em Modelagem, Pioneira Thomson Learning.

34