You are on page 1of 72

KELTON JORGE GARCIA SANTOS

Métodos Numéricos na
Resolução de PVI’s
Aplicações com MATLAB

Licenciatura em ensino de Matemática

UNICV, 2009
ii

KELTON JORGE GARCIA SANTOS

Métodos Numéricos na
Resolução de PVI’s
Aplicações com MATLAB

Trabalho científico apresentado na UNICV


para a obtenção do grau de Licenciado em
Ensino de Matemática sob a orientação do
Engenheiro, Aurélio Vicente.

Licenciatura em ensino de Matemática

UNICV, 2009
iii

O Júri

O Orientador

O Arguente

O Presidente

UNICV, Praia aos ---------/----------/2009


iv

Dedico este trabalho à minha família que sempre


me apoiou e me incentivou durante todo esse
tempo.
v

Agradecimentos

Minha imensa gratidão a Deus por ter conseguido chegar até essa etapa.

Agradeço ao meu orientador Aurélio Vicente pela confiança, paciência e


disponibilidade que demonstrou para comigo durante a realização desse trabalho.

Finalmente, agradeço a todos os meus colegas e professores que de forma directa ou


indirectamente contribuíram para que eu chegasse até essa etapa.
vi

ÍNDICE

INTRODUÇÃO/CONTEXTUALIZAÇÃO ........................................................................................ 8

1. Nota Introdutória .......................................................................................................................................... 8


2. Objectivos ......................................................................................................................................................... 9
3. Importância do Estudo ............................................................................................................................... 9
4. Metodologias ................................................................................................................................................ 10
EQUAÇÕES DIFERENCIAIS ORDINÁRIAS ................................................................................ 11

1.1 Introdução .................................................................................................................................................. 11


1.2 Solução de uma EDO .............................................................................................................................. 13
1.2.1 Solução Geral e Solução particular duma EDO............................................................................... 14
1.3 Métodos Analíticos para a resolução de EDO de 1ª ordem................................................. 15
1.3.1 Equações Diferenciais de Variáveis Separáveis............................................................................. 15
1.3.2 Diferencial Exacta ...................................................................................................................................... 16
1.3.3 Equações diferenciais Lineares de 1ª ordem.................................................................................. 17
1.4 Problema de Valores Iniciais e Problemas de Valores na Fronteira .............................. 17
1.4.1 Interpretação Geométrica ...................................................................................................................... 18
1.4.2 Existência e Unicidade de Solução de PVI’s ..................................................................................... 20
1.5 Soluções Numéricas de PVI’s ............................................................................................................. 21
MÉTODOS DE PASSO SIMPLES................................................................................................... 23

2.1 Métodos da série de Taylor ................................................................................................................ 24


2.1.1 Metodos de Euler................................................................................................................................. 25
2.1.1.1 Método de Euler Explícito (ou Progressivo) .......................................................................... 25
2.1.1.2 Metodo de Euler Implícito (ou Regresivo) .............................................................................. 27
2.1.1.3 Erros dos métodos de Euler .......................................................................................................... 29
2.1.2 Método de Heun ................................................................................................................................... 30
2.1.2.1 Erros do método de Heun ................................................................................................................... 31
2.1.3 Métodos de Taylor de ordem mais elevada ............................................................................ 31
2.1.3.1 Erros........................................................................................................................................................ 32
2.1.4 Análise da Consistência dos métodos da série de Taylor ................................................ 32
2.2 Métodos de Runge Kutta (RK) .......................................................................................................... 34
2.2.1 Métodos de Runge Kutta de primeira ordem ............................................................................ 37
2.2.2 Métodos de Runge Kutta de terceira ordem .............................................................................. 37
vii
Métodos Numéricos na Resolução de PVI’s. 7

2.2.3 Método de Runge Kutta de 4ª ordem ............................................................................................ 38


2.2.4 Erros dos métodos de Runge Kutta .................................................................................................... 39
2.3 Análise da Convergência dos métodos de passo simples .................................................... 41
MÉTODOS DE PASSO MÚLTIPLO .............................................................................................. 43

3.1 Métodos de Adams Bashforth (AB) ................................................................................................ 45


3.2 Métodos de Adams Moulton (AM) .................................................................................................. 48
3.3 Processo preditor corrector............................................................................................................... 51
3.3.1 Considerações.............................................................................................................................................. 51
CONCLUSÃO ..................................................................................................................................... 55

Referências Bibliográficas ......................................................................................................... 57

Bibliografia ...................................................................................................................................... 58

ANEXO................................................................................................................................................ 59
Métodos Numéricos na Resolução de PVI’s. 8

INTRODUÇÃO/CONTEXTUALIZAÇÃO

1. Nota Introdutória

Vários fenómenos nos campos da Física, Engenharia, Economia, Biologia etc., são
modelados e resolvidos matematicamente por meio das equações diferenciais.

Existem vários métodos analíticos para solucionar Equações Diferenciais Ordinárias


(EDO’s), mas esses métodos não são aplicáveis para todos os problemas, daí a
necessidade de recorrer a técnicas numéricas para obter soluções aproximadas para tais
problemas.

É nessa óptica que vamos trabalhar o tema acima referido, onde vamos apresentar
os principais métodos numéricos utilizados para solucionar (aproximadamente) EDO’s
de primeira ordem com valores iniciais (PVI’s).

Alguns dos métodos apresentados serão acompanhados por rotinas desenvolvidas


em MATLAB, que para além de ser um software que utiliza uma linguagem de
programação muito acessível, possibilita o estudo e análise dos resultados obtidos pelos
vários métodos, bem como ajuda a minimizar os erros cometidos nas aproximações
Métodos Numéricos na Resolução de PVI’s. 9

(pois no MATLAB temos a oportunidade de utilizar números com várias casas decimais,
o que ajuda e diminuir os erros de arredondamento).

2. Objectivos

Pretendemos com a realização deste trabalho:

Apresentar técnicas numéricas para a resolução de PVI’s;

Analisar os erros de aproximação;

Fazer Confrontação entre os vários métodos, identificando as vantagens e


desvantagens de cada um;

Desenvolver algoritmos em MATLAB para alguns métodos apresentados.

3. Importância do Estudo

Ao estudar as EDO’s, observamos que uma grande parte delas não podem ser
resolvidas pelos métodos analíticos conhecidos, e algumas que conseguimos resolver
apresentam soluções extremamente complexas.

Deste modo, na ausência de soluções analíticas, o problema é solucionado,


recorrendo a soluções aproximadas, obtidas numericamente.

Essas técnicas apresentam grande potencial de utilização para a disciplina de


Análise Numérica, podendo ser utilizadas por estudantes de várias áreas tais como:
Engenharia, Física, Biologia, Química etc.
Métodos Numéricos na Resolução de PVI’s. 10

4. Metodologias

Para um trabalho deste género como é normal, a metodologia utilizada foi


basicamente de pesquisas bibliográficas, mas também a internet foi um auxílio
importante para a realização do referido trabalho.

O software MATLAB serviu de suporte não só para a implementação e execução dos


algoritmos, mas também para a comparação dos resultados obtidos pelos diferentes
métodos (os que foram implementados).
Métodos Numéricos na Resolução de PVI’s. 11

CAPÍTULO I

EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

1.1 Introdução

A origem do estudo das Equações Diferenciais coincide com a do Cálculo Diferencial


e Integral introduzidas no séc. XVII por Isaac Newton e Gottfried Leibnitz. As Equações
Diferenciais tais como as que conhecemos hoje foram introduzidas posteriormente por
Gottfried Leibnitz.

Do séc. XVIII até o séc. XX as Equações Diferenciais eram utilizadas Somente no


estudo de fenómenos Físicos, mas precisamente na Mecânica Clássica.

Actualmente existem várias áreas tais como a Física, Biologia, Ecologia, Química,
Economia etc., que fazem uso das equações Diferenciais como meio para solucionar
vários problemas inerentes às referidas áreas.

Problemas relacionados com a Dinâmica populacional (desde seres humanos até


bactérias), fluxo sanguíneo no sistema vascular, volumes de líquidos celulares,
Métodos Numéricos na Resolução de PVI’s. 12

desintegração de substâncias radioactivas, elementos da electricidade (Intensidade da


corrente eléctrica, capacitância, indutância etc.), estudos epidemiológicos etc., são alguns
dos inúmeros problemas que podem ser modelados e resolvidos matematicamente por
meio das Equações Diferenciais.

Em termos conceptuais, uma Equação Diferencial é uma relação entre uma função e
suas derivadas. Entretanto, existem dois tipos de Equações Diferenciais:

Equação Diferencial Ordinária (EDO). Equação que envolve uma só função


(incógnita) -normalmente designada por y - de uma só variável (normalmente
designada por x ou por t ), e um número finito de derivadas dessa função.
(AGUDO, 1992)

Equação Diferencial Parcial (EDP). Equação que contém funções com mais do
que uma variável e derivadas parciais dessas funções em relação a essas
variáveis. (AGUDO, 1992)

Para esse Trabalho vamos estudar somente as Equações Diferenciais Ordinárias. Para
mais informações sobre as EDP, consultar qualquer manual que trata da teoria das
EDP’s, como por exemplo [AGU92].

Definição 1.1 Seja F : Ω ⊆ IR n + 2 → IR , uma função real definida num aberto Ω . À


equação

( )
F x, y, y´, y´´,..., y ( n ) = 0 (1.1)

com y função real de variável x (definida em certo intervalo I ⊂ IR ) dá-se o nome de


Equação Diferencial Ordinária (EDO) de ordem n . (AGUDO, 1992)

Pode-se dizer que se trata de uma equação que envolve uma só função (que denotamos
por y ) de uma só variável (que denotamos por x ) e um número finito de derivadas
dessa função.

Exemplo 1.1 y´+4 y = 0


Métodos Numéricos na Resolução de PVI’s. 13

Exemplo 1.2 y´´+3 yy´= e x

dy
Exemplo 1.3 + 8x − 3 = 0
dx

1 dy 1
Exemplo 1.4 =
y dx 4 x − x 2

Definição 1.2 A ordem de uma EDO é a ordem da derivada de maior ordem da variável
dependente que aparece na EDO.

Nesse Trabalho a nossa atenção vai estar centrada unicamente para as equações
diferenciais ordinárias de 1ª ordem.

Definição 1.3 O grau de uma EDO é o expoente da derivada de maior ordem da


variável dependente que aparece na EDO.

Exemplo 1.5 y ( 9) − xy´´= x 2 , Tem Ordem 9 e Grau 1;

3 10
Exemplo 1.6 ( y´´) + ( y´) + 6 y = x , Tem Ordem 2 e Grau 3;

d2y dy
Exemplo 1.7 2
− 3 + 2 y = x 2 , Tem Ordem 2 e Grau 1;
dx dx

4 5
 d 2 y   dy 
Exemplo 1.8  2  +   − x 2 = 0 , Tem Ordem 2 e Grau 4;
 dx   dx 

1.2 Solução de uma EDO

Definição 1.4 Chama-se solução da equação diferencial (1.1) no intervalo I ⊂ IR a toda


a função y = y ( x ) : I ⊂ IR → IR com derivadas até a ordem n tal que

F  x, y ( x ) , y´( x ) , y´´( x ) ,..., y ( n ) ( x )  = 0, ∀x ∈ I (1.2)

Por outras palavras, a solução da EDO (1.1) é uma função y = y ( x ) , com derivadas até a

ordem n que satisfaça (1.1). (AGUDO, 1992)


Métodos Numéricos na Resolução de PVI’s. 14

Exemplo 1.9 y ( x ) = x 2 + c é solução da EDO y´= 2 x

Exemplo 1.10 y ( x ) = sen( x ) é solução da EDO y´´+ y = 0


4
Exemplo 1.11 y ( x ) = x 2 − 1 não é solução da EDO ( y´) + y 2 = −1

Definição 1.5 Uma equação diferencial diz-se na forma normal quando for
“explicitada” em relação à derivada de maior ordem, i.e., quando for escrita na forma

(
y ( n ) = f x, y , y´, y´´,..., y ( n −1) ) (1.3)

Por exemplo uma EDO de 1ª ordem na forma normal é dada por y´= f ( x, y )

1.2.1 Solução Geral e Solução particular duma EDO

Definição 1.6 O conjunto de todas as soluções de uma equação diferencial (num dado
intervalo diz-se a solução geral (ou integral geral) da equação (nesse intervalo).
Resolver ou integrar uma equação diferencial é determinar o seu integral geral.

x3
Exemplo 1.12 y = − + c1 x + c2 ( c1 e c2 constantes reais arbitrários) é Solução Geral da
6
EDO y´´= − x .

Exemplo 1.13 y = ce− x é Solução Geral da EDO y´+ y = 0 .

Definição 1.7 Chama-se Solução Particular ou Integral Particular duma equação


diferencial a toda a solução obtida atribuindo valores às constantes arbitrárias da
Solução Geral.

Exemplo 1.14 y = 2e− x é uma Solução Particular da EDO y´+ y = 0 .

x3
Exemplo 1.15 y = − + 2 x + 3 é uma Solução Particular da EDO y´´= − x .
6
Métodos Numéricos na Resolução de PVI’s. 15

Deve-se dizer que nem sempre é possível determinar a solução geral duma equação
diferencial. Em muitos problemas basta-nos saber que existem soluções e que estas se
comportam de determinada forma.

1.3 Métodos Analíticos para a resolução de EDO de 1ª ordem

Apresentamos em seguida alguns tipos de EDO de 1ª ordem da forma y ′ = f ( x, y ) (ou

redutíveis a esta forma) e os respectivos métodos analíticos utilizados na sua resolução.

Em particular, uma equação

N ( x, y ) y ′ + M ( x, y ) = 0 (1.4)

será redutível à forma normal sempre que N ( x, y ) =/ 0 . Os pontos que anulam

N ( x, y ) merecem uma atenção especial (AGUDO, 1992). O leitor pode ler [AGU92] para

melhor esclarecimento.

1.3.1 Equações Diferenciais de Variáveis Separáveis


dy
Definição 1.8 Uma EDO de 1ª ordem = f ( x, y ) diz-se de variáveis separáveis se
dx
poder tomar a forma:

h ( y ) y′ = g ( x ) (1.5)

que também se escreve

h ( y ) dy = g ( x ) dx ,

pois dy = y′dx
Métodos Numéricos na Resolução de PVI’s. 16

Método de resolução.

Para encontrar a solução geral desta equação diferencial, basta primitivar as funções de
ambos os membros, ou seja,

∫ h ( y ) dy = ∫ g ( x ) dx .

1.3.2 Diferencial Exacta


Definição 1.9 Uma equação diferencial M ( x, y ) dx + N ( x, y ) dy = 0 , com M e N contínuas

nalgum aberto Ω de IR 2 diz-se diferencial exacta, se satisfazer a condição: (RILEY,


HOBSON, & BENCE, 2007)

∂M ( x, y ) ∂N ( x, y )
= (1.6)
∂y ∂x

Método de Resolução

Para encontrar a solução da equação diferencial exacta M ( x, y ) dx + N ( x, y ) dy = 0 ,

temos de encontrar uma função F ( x, y ) de classe C1 em Ω tal que:

∂F ( x , y ) ∂F ( x , y )
= M (x, y) e = N (x, y) (1.7)
∂x ∂y

A solução da equação diferencial exacta será dada por:

F ( x, y ) = C

Na maioria das vezes a equação diferencial M ( x, y ) dx + N ( x, y ) dy = 0 não é exacta, mas

normalmente é possível transformá-lo numa equação diferencial exacta por meio da sua
multiplicação por um factor integrante µ ( x, y ) , tal que a equação

µ ( x, y ) M ( x, y ) dx + µ ( x, y ) N ( x, y ) dy = 0 seja uma equação diferencial exacta, isto é,

∂µ ( x, y ) M ( x, y ) ∂µ ( x, y ) N ( x, y )
= .
∂y ∂x
Métodos Numéricos na Resolução de PVI’s. 17

1.3.3 Equações diferenciais Lineares de 1ª ordem


Definição 1.10 Uma equação diferencial linear de 1ª ordem é uma equação da forma
y´+ p ( x ) y = q ( x ) , com p ( x ) e q ( x ) contínuas nalgum intervalo I ⊂ IR .

• Se q ( x ) ≠ 0 denomina-se equação completa.

• Se q ( x ) = 0 , a equação é de variáveis separáveis. (RILEY, HOBSON, & BENCE,

2007)

Método de resolução

Para resolver equações desse tipo, temos de encontra o factor integrante µ ( x ) = e∫


p ( x ) dx
e

multiplicá-lo pela equação y´+ p ( x ) y = q ( x ) . Pelo que a solução geral dessa equação

será:

y=
∫ µ ( x ) q ( x ) dx + C
.
µ ( x) µ ( x)

É Importante salientar que a maioria das Equações diferenciais de 1ª ordem não se


enquadram em nenhuma das classificações acima referidas, nem podem ser
transformadas em nenhuma delas.

1.4 Problema de Valores Iniciais e Problemas de Valores na Fronteira

Como foi dito anteriormente nem sempre é possível encontrar a solução geral duma
equação diferencial. Na maior parte das aplicações não interessa conhecer a solução
geral (mesmo quando for possível determina-lo) mas sim soluções particulares que
satisfaçam determinadas condições fixadas previamente. Assim temos:

Definição 1.11 Chama-se Problema de Valores Iniciais (PVI) ou Problema de Cauchy


a todo o problema que consiste em determinar a solução de uma EDO de 1ª ordem
satisfazendo condições iniciais dadas num ponto (do Intervalo I ⊂ IR considerado). O
problema é dado da seguinte forma:
Métodos Numéricos na Resolução de PVI’s. 18

 y′ = f ( x, y ( x ) ) , x ∈ I
 (1.8)
 y ( x0 ) = y0

Exemplo 1.16 A função y = 2ekx (k constante) é solução do problema de valores

 y´= ky
iniciais 
 y ( 0 ) = 2

Observação 1.1 Como acontece no exemplo acima, muitas vezes não se explicita, na
prática, o intervalo em que estamos a considerar a equação. Neste exemplo poderia ser
qualquer intervalo que contivesse a origem, nomeadamente I = ]−∞, +∞[ .

Exemplo 1.17 A função y = 2sin( x) + cos( x) é solução do problema de valores iniciais

 y´´+ y = 0

 y ( 0) = 1 .

 y´( 0 ) = 2

De uma forma geral tem-se o seguinte


Se f é contínua com respeito a x , em Ω ⊂ IR 2 , então a solução de (1.8) satisfaz

x
y ( x ) = y0 + ∫ f ( s, y ( s ) )ds (1.9)
x0

Da mesma maneira, se y for definido por (1.9), então y é contínua em I e y ( x0 ) = y0

(QUORTERONI, SACCO, & SALERI, 2007).

1.4.1 Interpretação Geométrica (AGUDO, 1992)

Uma equação da forma y ′ = f ( x, y ) , com f definida nalgum aberto Ω ⊂ IR 2 , associa

a cada ponto ( x, y ) de Ω uma recta de coeficiente angular y′ = f ( x, y ) e, portanto, uma

direcção. Obtêm-se, assim, o que se chama um campo de direcções associada à equação


diferencial dada.
Métodos Numéricos na Resolução de PVI’s. 19

Ao gráfico de uma solução, y = y ( x ) , da equação diferencial dá-se o nome de curva

integral ou curva de soluções e, é obvio que uma tal curva é em cada um dos pontos

( x, y ( x ) ) tangente à recta de coeficiente angular y ′ = f ( x, y ) .

Esta propriedade permitirá obter, embora de forma aproximada, a curva integral de uma
equação diferencial y ′ = f ( x, y ) que passa por um ponto dado (ou seja a solução gráfica

de um PVI) substituindo, em pequenos intervalos, a curva solução por seguimentos


tangentes à curva. Para facilitar a construção podemos começar por desenhar algumas
linhas com equações da forma f ( x, y ) = c.te , que são camadas por isoclínicas (ou seja

“linhas com a mesma inclinação”) da equação diferencial dada, pois, em todos os pontos
da linha f ( x, y ) = c.te as rectas associadas a y ′ = f ( x, y ) têm um mesmo coeficiente

angular. A figura 1.1 apresenta as soluções particulares do exemplo 1.9 para


c = 0, c = 1 e c = 2

Figura 1.1. Curvas soluções do exemplo 1.9 para c=0, c=1 e c=2

Definição 1.12 Chama-se Problema de Valores na Fronteira (PVF) ou Problemas de


Contorno a todo o problema que consiste em determinar a solução (ou soluções) de uma
equação diferencial satisfazendo condições iniciais em dois ou mais pontos do Intervalo
I ⊂ IR considerado. O problema é dado pela seguinte forma:
Métodos Numéricos na Resolução de PVI’s. 20

 y ′ = f ( x, y ( x ) ) , x ∈ I

 y ( x0 ) = y0 (1.10)

 y ( x1 ) = y1

x3 1
Exemplo 1.18 Tendo em conta o exemplo (1.12), a função y = − + é a solução do
6 6
 y´´+ x = 0

 1 1
problema de contorno  y ( 0 ) + y´(1) = − (onde c1 = 0 e c2 = ).
 3 6
 y (1) + y´( 0 ) = 0

A partir daqui vamos tratar unicamente de PVI. Se o leitor estiver interessado em


aprofundar o seu conhecimento sobre PVF deve procurar qualquer livro que trata das
equações diferenciais.

Antes de tentar resolver um PVI, precisamos de nos assegurar de que esta tem
solução e que esta solução é única. Para isso o teorema seguinte relembra-nos as
condições suficientes para que tal se verifique.

1.4.2 Existência e Unicidade de Solução de PVI’s


Teorema 1.1 (de existência e unicidade)

Seja f : Ω ⊆ IR 2 → IR uma função satisfazendo as seguintes condições:

f é contínua e ( x0 , y0 ) um ponto de Ω ( aberto).

f é Lipschitziana relativamente ao seu segundo argumento, i.e., existe uma


constante L com 0 ≤ L ≤ ∞ (a constante de Lipchitz), tal que

f ( x, y2 ) − f ( x, y1 ) ≤ L y2 − y1 , ∀x ∈ Ω , ∀y1, y2 ∈ IR

Então existe um intervalo I = [ x0 − h, x0 + h ] , h > 0 , onde o problema de Cauchy (1.8), tem

uma e uma só solução. (AGUDO, 1992)


Métodos Numéricos na Resolução de PVI’s. 21

Demonstração. Ver (AGUDO, 1992).

Para todos os métodos numéricos a serem apresentados nos capítulos posteriores,


consideraremos o PVI (1.8) com a hipótese que f satisfaz as condições do teorema 1.1.

1.5 Soluções Numéricas de PVI’s

Para algumas equações diferenciais existem métodos analíticos para a obtenção da


solução exacta. No entanto quando a função for muito “complexa”, ou for conhecida
apenas através de valores tabelados esses métodos se mostram ineficazes ou então
apresentam soluções muito complexas, dificultando a análise dos mesmos. Daí a
necessidade de recorrer aos métodos numéricos que oferecem a possibilidade de
encontrar não as soluções exactas, mas sim soluções aproximadas (em que as
aproximações variam de método para método) desses problemas.

Com o advento dos computadores, o desenvolvimento de técnicas computacionais,


particularmente a criação de softwares tais como o MAPLE, MATLAB e o MATHEMATICA
possibilitou trabalhar com os métodos numéricos com uma grande precisão e
cometendo uma percentagem de erro muito reduzido.

Nesse trabalho vamos utilizar o software MATLAB para a implementação dos vários
métodos a serem apresentados, pois trata-se de um software de fácil utilização e que é
muito utilizado no campo da engenharia. O software utiliza uma linguagem de
programação muito simples possibilitando ao programador a implementação rápida dos
algoritmos, além de trazer um grande número de funções pré implementados. (Ver
anexo para mais esclarecimentos sobre o software MATLAB)

Utilizando métodos numéricos na resolução de EDO temos a possibilidade de obter


soluções aproximadas num conjunto discreto de pontos xn do intervalo I = [ x0 , X ] .

Desse modo, em vez da solução exacta, ficaremos a conhecer os valores aproximados


desta função num conjunto discretos de pontos nesse intervalo (diz-se que o problema
foi discretizado).
Métodos Numéricos na Resolução de PVI’s. 22

O processo de discretização pode ser apresentado da seguinte maneira:


(QUORTERONI, SACCO, & SALERI, 2007)

Consideremos I = [ x0 ; X ] ⊂ IR o intervalo de integração. Vamos considerar uma

sucessão de nós de discretização de I, xn = x0 + nh ( n = 0,1, 2,......N ) , com h > 0 , e onde N

é o máximo inteiro tal que xN = X . Essa sucessão xn define subintervalos I n = [ xn , xn +1 ] .

X − x0
Em geral fazemos h = ( N não é mais do que o número de valores da variável
N
independente onde queremos calcular os valores aproximados da solução). No processo
acima descrito, os nós de discretização formam uma malha uniforme do intervalo I que
normalmente são designados por nós da malha. À distância h dá-se o nome de
tamanho de passo da malha e N é o número de passos

Em termos de notações vamos representar a solução exacta no nó ( xn , y ( xn ) ) , por y ( xn )

e a solução numérica aproximada no mesmo nó será representada por yn , isto é,

y ( xn ) (solução exacta),

yn ≅ y ( xn ) (solução aproximada).

Também, considerarmos que f n ≡ f ( xn , yn ) e obviamente yo = y ( x0 ) .

Nosso objectivo é então determinar aproximações yn da solução verdadeira y ( xn ) nos


pontos da malha. Portanto a solução numérica será uma tabela de valores dos pares
( xn , yn ) , onde como já foi dito anteriormente yn ≅ y ( xn ) .
Métodos Numéricos na Resolução de PVI’s. 23

CAPÍTULO II

MÉTODOS DE PASSO SIMPLES

Definição 2.1 Um método numérico para a aproximação do PVI (1.8) é chamado


Método de Passo Simples (ou passo único) se para ∀n ≥ 0 , a solução aproximada yn+1

depender somente de yn . Caso contrário é designado método de passo múltiplo (ou

multipasso). (QUORTERONI, SACCO, & SALERI, 2007)

Por outras palavras, o método de passo simples é um método numérico para resolver
PVI’s em que apenas o resultado do passo anterior é utilizado para determinar o
resultado do passo seguinte.

Exemplo 2.1 Método de Euler Progressivo ( ou Explícito)

yn +1 = yn + hf n (2.1)

Exemplo 2.2 Método de Euler Regressivo (ou implícito)

yn +1 = yn + hf n+1 (2.2)
Métodos Numéricos na Resolução de PVI’s. 24

Exemplo 2.3 Método de Crank-Nickolson

h
yn +1 = yn + [ fn + f n+1 ] (2.3)
2

Exemplo 2.4 Método de Heun

h
yn +1 = yn +  f n + f ( xn+1 , yn + hf n )  (2.4)
2

Definição 2.2 Um método numérico para a aproximação do PVI (1.8) é chamado método
explícito se yn +1 poder ser calculado directamente em termos de valor (ou valores) de

yk com k ≤ n . Um método diz-se implícito se yn +1 depender implicitamente de si

próprio através de f . (QUORTERONI, SACCO, & SALERI, 2007)

Os métodos dos exemplos (2.1) e (2.4) são métodos explícitos, enquanto os métodos dos
exemplos (2.2) e (2.3) são métodos Implícitos.

2.1 Métodos da série de Taylor

Os métodos da série de Taylor para a aproximação do PVI (1.8) são os métodos


obtidos usando o desenvolvimento em série de Taylor centrada em xn (i.e., admitindo

que y ( x ) ∈ C p +1 ([ x0 , X ]) ) da solução do PVI (1.8),

h2 h p ( p)
y ( xn+1 ) = y ( xn ) + hy′ ( xn ) + y ′′ ( xn ) + K + y ( xn ) +
2! p!
(2.5)
h p +1 ( p +1)
+ y (ξ n ) xn < ξ n < xn +1 , xn , xn+1 ∈ [ x0 , X ]
( p + 1)!

em que xn+1 = xn + h .

Dentre os métodos da série de Taylor para a aproximação do PVI (1.8) temos:


Métodos Numéricos na Resolução de PVI’s. 25

2.1.1 Metodos de Euler

Os primeiros métodos a serem apresentados são os métodos de Euler. Por serem os


mais simples, são estudados com maior profundidade, o que facilita a abordagem aos
restantes métodos. Dentre os métodos de Euler temos:

2.1.1.1 Método de Euler Explícito (ou Progressivo)

Consideremos o PVI (1.8)

 y′ = f ( x, y ( x ) ) , x ∈ I

 y ( x0 ) = y0

Pretendemos obter a aproximação de y ( x ) no intevalo I = [ x0 , X ] . Discretizando (1.8),

vamos determinar as soluções aproximadas nos pontos xn , n = 1, 2,......N .

Recorendo ao teorema de Taylor obtemos:

h2
y ( xn+1 ) = y ( xn ) + hy′ ( xn ) + y′′ (ξ n ) xn < ξ n < xn +1 (2.6)
2!

Atendendo a que h = xn+1 − xn e f ( xn , y ( xn ) ) = y ′ ( xn ) . Fazendo n = 0 e desprezando os

termos de ordem ≥ 2 em (2.6)* obtemos a solução aproximada

y1 = y0 + hf ( x0 , y0 ) (2.7)

Seja y1 a solução aproximada de y ( x1 ) , substituido y ( x1 ) por y1 em (2.6) para n = 1 e

procedendo de maneira análoga obtemos para y ( x2 ) a aproximação

y2 = y1 + hf ( x1 , y1 ) (2.8)

Desta forma conseguimos gerar uma aproximação numérica para o PVI (1.8) nos pontos
xn fazendo

* Os termos de ordem ≥ 2 em (2.6) normalmente são representados por O ( h 2 ) , que corresponde aos
termos truncados em (2.6)).
Métodos Numéricos na Resolução de PVI’s. 26

yn +1 = yn + hf ( xn , yn ) n = 0,1, 2,..., N − 1 (2.9)

O método de aproximação numérica (2.9) para obter a solução aproximada yn da

solução exacta y ( xn ) é conhecido como método de Euler Explícito (ou Progressivo).

(RAINER, 1998)

Exemplo 2.5 Utilizando o método de Euler progressivo encontrar a solução do PVI


 y′ = x 2 − y 1 1 1
 ; I = [ 0,3] . Compare soluções para h = 1, , e .
 y(0) = 1 2 4 8

1
A solução exacta do PVI acima é dado por y ( x ) = −e − x + x 2 − 2 x + 2 . Para h = , utilizando
4
o método de Euler progressivo (2.9) teremos

y1 = 1.0 + 0.25 ( 0 − 1) = 0.75


y2 = 0.75 + 0.25 ( 0.0625 − 0.75 ) = 0.5781, etc...

3−0
Essa iteração continua até atingir o último passo (que corresponde a N = = 12 )
0.25

y (3) ≈ y12 = 3.7808 + 0.25 ( 2.752 − 3.7808 ) = 4.7262

Na tabela 2.1 estão representadas as soluções aproximadas pelo método de Euler


Progressivo (que corresponde ao PROGRAMA 1 do anexo) e a solução exacta do PVI
dado.

Avaliando a tabela 2.1 vê-se que tomando o tamanho do passo ( h ) cada vez menor, a
solução aproximada se aproxima cada vez mais da solução exacta, i.e., quanto menor o
valor do tamanho do passo melhor é a solução aproximada obtida. Por conseguinte, a
diminuição do tamanho do passo tem como desvantagem o aumento de iterações, i.e.,
diminuindo o tamanho do passo, aumenta-se o número de nós no intervalo dado, onde
temos de calcular a solução aproximada.
Métodos Numéricos na Resolução de PVI’s. 27

xn yn y ( xn ) Exacta

h=1 h = 0.5 h = 0.25 h = 0.125

0 1.0000 1.0000 1.0000 1.0000 1.0000


0.125 0.8750 0.8831
0.25 0.7500 0.7676 0.7836
0.375 0.6794 0.7033
0.50 0.5000 0.5781 0.6121 0.6434
0.75 0.4961 0.5448 0.5901
1.00 0.0000 0.3750 0.5127 0.5743 0.6321
1.50 0.6875 0.8665 0.9488 1.0268
2.00 1.0000 1.4688 1.6749 1.7717 1.8446
2.50 2.7344 2.9578 3.0644 3.1679
3.00 4.0000 4.4922 4.7262 4.8395 4.9502

Tabela 2.1 Resultados do exemplo 2.5

2.1.1.2 Metodo de Euler Implícito (ou Regresivo)


Procedendo ao desenvolvimento em série de Taylor da solução exacta de (1.8) em torno
de xn , em que ao contrário do método progressivo em que usamos uma diferença
Progressiva, agora vamos utilizar uma diferença regressiva, i.e.,

h2
y ( xn − h ) = y ( xn ) − hy′ ( xn ) + y′′ ( xn ) − O ( h3 ) (2.10)
2!

Desprezando os termos de ordem ≥ 2 em (2.10), podemos obter para cada xn , a

equação de diferenças:

yn+1 = yn + hf n+1 , n = 0,1, 2,..., N − 1 (2.11)

que corresponde ao método de Euler implícito (ou Regressivo).

Notemos que o termo que queremos determinar ( yn +1 ) está presente em ambos os

membros de (2.11) (pois f n+1 = f ( xn +1 , yn+1 ) ), pelo que ele é determinado de forma

implícita , daí a designação de método implícito.


Métodos Numéricos na Resolução de PVI’s. 28

Como a função f é geralmente não linear, para determinar yn +1 devemos resolver a

equação algébrica

yn +1 = ϕ ( yn +1 ) , com ϕ ( yn +1 ) = yn + hf ( xn +1 , yn +1 ) (2.12)

A forma da equação acima sugere a utilização do método de ponto fixo, i.e., iterar de
acordo com

( )
yn( k++11) = ϕ yn( k+)1 , com k = 0,1, 2,... (2.13)

( 0)
a partir de uma estimativa inicial yn+1 (que pode ser obtido utilizando o método de Euler

explícito).(PINA, 1995)

Erros de Aproximação

Raramente é possível, com realismo, seguir a propagação do erro num algorítimo de


aproximação de um PVI, mas é possível obter algumas estimativas desse erro, se bem
que grosseiras.

O Erro de truncatura local (ou erro de discrtização local) Τn +1 ( h ) é o erro que se

comete ao passar do nó xn para o nó xn+1 , quando substituimos um processo infinito por

um processo finito (por exemplo no desenvolvimento em série de taylor , quando


retivermos os termos até à ordem 2 e negligenciarmos os restantes termos) (KINCARD,
2002). Define-se o erro de discretização local por unidade de passo ( tn+1 (h) ) como o

Τn +1 (h)
quociente entre o erro de truncatura local e o tamanho do passo h ( i.e., tn +1 = ).
h

A diferença entre a solução exacta e a solução aproximada ( y ( xn ) − yn , n = 0,1,..., N ) é

denominado por Erro de truncatura global (ou erro discretização global) ( en ( h ) ) .Os

erros de arredondamento ocorrem porque os computadores trabalham com um


número fixo de dígitos e nas multiplicações e divisões perdem-se os dígitos que
ultrapassam esse número.
Métodos Numéricos na Resolução de PVI’s. 29

Devido a dificuldade da análise dos erros de arredondamento, nesse trabalho


daremos atenção somente para os erros de truncatura (com especial atenção para o erro
de truncaturra local). Indicamos [PIN95], [QUO07], ou [KRE98] se o leitor estiver
interessado numa análise mais profunda do assunto.

2.1.1.3 Erros dos métodos de Euler


Em ambos os métodos de Euler, no desenvolvimento em série de Taylor da solução
exacta y ( xn ) nós negligenciamos os termos de ordem ≥ 2 , então, o erro de truncatura

local será a soma de todos os termos (ou resíduos) que não incluímos na solução

aproximada yn (esses resíduos são representados por O ( h p +1 )  †.

O termo

h2
Τn +1 ( h ) = y′′ ( ξ n ) = O ( h 2 ) (2.14)
2

Corresponde a termos truncados em (2.9) no desenvolvimento em série de Taylor e


portanto é o erro de truncatura local para o método de Euler progressivo. Para o método
de Euler regressivo o erro de truncatura local será

h2
Τn +1 ( h ) = − y′′ (ξ n ) = O ( h 2 ) , xn < ξ n < xn+1
2

Vimos anteriormente que o erro de truncatura local para os métodos de Euler é


dado por O ( h 2 ) . Se esse foi o erro cometido em cada passo, então no final do intervalo

 x 0 , X  , depois de N passos, o erro de truncatura global ( y ( xn ) − yn , n = 0,1,..., N ) para

o método de Euler progressivo será aproximadamente: (MATHEWS & FINK, 2004)

N
h2 h 2 hN ( X − x0 ) y′′ (ξ ) h = O h1
∑ y′′ (ξk )
k =1 2
≈ Ny (ξ ) =
′′
2 2
y′′ ( ξ ) h =
2
( )

† Relembremos que T = O ( h p ) se existirem constantes positivos p e h tais que para


h > 0 suficientemente pequeno T ≤ Ch p , C > 0 .
Métodos Numéricos na Resolução de PVI’s. 30

Analogamente encontramos que para o método de Euler regressivo en ( h ) = O ( h1 )

Em relação ao erro de truncatura global ( y ( xn ) − yn , n = 0,1,..., N ), raramente é

necessário saber o seu valor num ponto arbitrário do intervalo. Normalmente interessa-
nos conhecer o erro de truncatura global somente no final do intervalo de integração
(LINZ & WANG, 2003).

Dum modo geral, se o erro de truncatura local para um determinado método for
O ( h p +1 ) , o seu erro de truncatura global en ( h ) = y ( xn ) − yn será dado por O ( h p ) , pois,

enquanto que Τn+1 ( h ) é o erro cometido quando passamos do ponto ( x n , yn ) para o

ponto ( xn+1 , yn+1 ) , o erro de truncatura global en ( h ) é a acumulação dos n erros (de

truncatura local) cometidos nas sucessivas passagens desde o ponto ( x0 , y0 ) até o ponto

( xn , yn ) (tendo em conta que, y0 = y ( x0 ) ). (KINCARD, 2002)

Os métodos de Euler têm como vantagem a fácil aplicação, mas como são métodos de
primeira ordem, temos de recorrer a valores de tamanho de passo muito pequenos para
podermos obter uma aproximação razoável (como é visível no exemplo 2.5). Por isso,
para construir a solução aproximada num dado intervalo I = [ x0 , X ] , são necessários

muitos passos, o que torna o processo lento, por isso, são métodos pouco utilizados na
prática.

2.1.2 Método de Heun

O método de Heun‡ pode ser obtido pela combinação dos métodos de Euler explícito
e implícito

Somando (2.9) e (2.11) vem:

yn +1 + yn +1 = yn + yn + hf n + hf n +1 ⇔
⇔ 2 yn +1 = 2 yn + h ( f n + f n +1 )

‡Também conhecido como método de Euler Modificado ou ainda método trapezoidal, foi desenvolvido
palo matemático alemão Karl Heun (1859-1929).
Métodos Numéricos na Resolução de PVI’s. 31

Dividindo por 2 obtemos

h
yn +1 = yn + ( f n + f n +1 ) (2.15)
2

Tal como acontece com método de Euler implícito, também no método (2.15) o termo
yn +1 está presente em ambos os membros da igualdade, daí tratar-se também de um

método implícito. Substituindo em (2.15) f n +1 ≡ f ( xn +1 , yn +1 ) por f ( xn +1 , yn + hf n ) , pela

utilização do método de Euler explícito (i.e., yn +1 = yn + hf n ) obtemos

h
yn +1 = yn + ( f n + f ( xn+1 , yn + hf n ) (2.16)
2

que é denominado método de Heun.

2.1.2.1 Erros do método de Heun


O método de Heun também pode ser deduzido a partir de (1.9), em que o integral
presente no lado direito da igualdade pode ser aproximado pela regra do trapézio entre
os pontos xn e xn +1 originando um erro de truncatura local (MATHEWS & FINK, 2004)

h3
Τn +1 ( h ) = − y′′′ (ξ n ) = O ( h3 ) , xn < ξ n < xn +1 (2.17)
12

Como se vê acima, o erro de truncatura local para o método de Heun é de maior ordem
que os métodos de Euler, daí esse método produzir melhores aproximações que os
métodos de Euler.

2.1.3 Métodos de Taylor de ordem mais elevada

Um meio de obter melhores aproximações é utilizando mais termos no


desenvolvimento em série de Taylor da solução exacta y ( x ) de (1.8), originando assim

um erro de truncatura de ordem mais elevada.


Métodos Numéricos na Resolução de PVI’s. 32

Por exemplo, para conseguir um método de Taylor de 2ª ordem consideremos o


seguinte desenvolvimento

h2
y ( xn + h ) = y ( xn ) + hy′ ( xn ) + y′′ ( xn ) + O ( h3 ) (2.18)
2

Contudo não temos directamente y ′′ ( x ) . A partir de y ′ = f ( x, y ) temos de derivar f em

ordem a x .

Define-se o método de Taylor de segunda ordem pela fórmula

h2
yn +1 = yn + hf n +  f x′ ( xn , yn ) + f y′ ( xn , yn ) f n  , n = 0,1,.., N − 1 (2.19)
2 

onde

d
f n = f ( xn , yn ) e  f x′ ( xn , yn ) + f y′ ( xn , yn ) f n  = f ( x, y ) = y′′ ( x ) .
dx

De modo Semelhante definem-se os métodos de Taylor de ordem superior a segunda. Os


métodos de Taylor de ordem mais elevada (superior a primeira), são muito pouco
utilizados, pois à medida que aumentamos a ordem, as derivadas tornam-se mais
complexas.

2.1.3.1 Erros

No método de Taylor, quando negligenciamos os termos de ordem maior que p , então o


erro de truncatura local será a soma de todos os termos que nós não incluímos na
solução aproximada.

Pela série de Taylor esses termos são

h p +1
y ( ) (ξ ) = O ( h p +1 )
n +1
Τn +1 ( h ) = (2.20)
( p + 1)!

2.1.4 Análise da Consistência dos métodos da série de Taylor

Definição 2.3 (Consistência) Um método diz-se consistente se (PINA, 1995)


Métodos Numéricos na Resolução de PVI’s. 33

lim tn +1 ( h ) = 0 (2.21)
h →0

1
onde tn +1 ( h ) = Sup Τn +1 ( h )
h x{
≤n≤ x
0 N

e diz-se que a sua ordem de consistência é p > 0 se

tn +1 ≤ ch p , 0≤c≤∞ (2.22)

Para h suficientemente pequeno e c não dependente de h , i.e., tn +1 ( h ) = O ( h p ) .

Em geral, um método diz-se consistente se o erro de discretização local por unidade de


passo for um infinitésimo com respeito a h .

Ambos os métodos de Euler são métodos consistentes com ordem de consistência igual a
1, enquanto o método de Heun tem ordem de consistência igual a 2. Os métodos de
Taylor de ordem mais elevada têm ordem de consistência igual a 2,3, 4,... se são
respectivamente de 3ª ordem, 4ª ordem, 5ª ordem, …. (PINA, 1995).

Antes de introduzirmos os métodos de Runge Kutta vamos descrever brevemente a


generalização dos métodos de passo simples. No geral esses métodos podem ser escritos
na forma (QUORTERONI, SACCO, & SALERI, 2007)

yn +1 = yn + hφ ( xn , yn , f n ; h ) (2.23)

Onde φ é normalmente designado por função incremental. Podemos escrever

y ( xn +1 ) = y ( xn ) + hφ ( xn , yn , f n ; h ) + O ( h p +1 ) 0 ≤ n ≤ N −1 (2.24)

Onde O ( h p +1 ) = Τ n +1 ( h ) é o resíduo no nó xn+1 quando no esquema numérico é utilizada

a solução exacta.

Por exemplo nos métodos acima apresentados temos que

• Para o método de Euler progressivo φ ( xn , yn , f n ; h) = f ( xn , yn ) ;


Métodos Numéricos na Resolução de PVI’s. 34

f ( xn , yn ) + f ( xn +1 , yn + hf ( xn , yn ) )
• No método de Heun φ ( xn , yn , f n ; h) =
2

• Para o método de Taylor de 2ª ordem


h
φ ( xn , yn , f n ; h) = f ( xn , yn ) +  f x′ ( xn , yn ) + f y′ ( xn , yn ) f n  .
2

É fácil ver que para os métodos acima apresentados, o erro de truncatura local é dado
por

Τn +1 ( h ) = y ( xn+1 ) − y ( xn ) − hφ ( xn , yn , f n ; h) (2.25)

2.2 Métodos de Runge Kutta (RK)

A quando da apresentação dos métodos de Taylor de ordem mais elevada ( p ≥ 2 ) , vimos

que o método de Taylor de 2ª ordem ( p = 2 ) tomava a seguinte forma

h2
yn +1 = yn + hf n +  f x′ ( xn , yn ) + f y′ ( xn , yn ) f n  (2.26)
2 

Esse método tem a grande inconviniência de necessitar do cálculo das derivadas. Para
evitar as derivações de f recorre-se normalmente aos chamados métodos de Runge

Kutta §.

Os métodos de Runge Kutta de 2ª ordem têm a seguinte forma

yn +1 = yn + h (ω1F1 + ω2 F2 )
F1 = f n = f ( xn , yn ) (2.27)
F2 = f ( xn + α 2 h, yn + hβ 21F1 )

§Esses métodos foram desenvolvidos por volta de 1900 pelos matemáticos Germânicos Carl. Runge
(1856-1927) e Martin Wilhelm. Kutta (1867-1944)
Métodos Numéricos na Resolução de PVI’s. 35

As constantes ω1 , ω2 , α 2 , β 21 devem ser determinadas de modo em que a diferença entre

os 2os membros de (2.26) e da primeira equação de (2.27) seja O ( h3 ) quando h → 0 .

Para isso, vamos desenvolver F2 em série de Taylor para função de duas variáveis

F2 = f n + α 2 hf x′ ( xn , yn ) + β 21hF1 f y′ ( xn , yn ) (2.28)

Substituindo (2.28) na 1ª equação de (2.27) obtemos

yn +1 = yn + h (ω1 + ω2 ) f n + h 2 ω2α 2 f x′ ( xn , yn ) + ω2 β 21 f y′ ( xn , yn ) f n  (2.29)

Comparando (2.29) com (2.26) concluimos que

1
ω1 + ω2 = 1 e ω2α 2 = ω2 β 21 = (2.30)
2

As equações (2.30) não determinam os parâmetros ω1 , ω2 , α 2 , β 21 de forma única, pelo

que existem várias possibilidades de métodos de Runge Kutta de 2ª ordem. (PINA, 1995)

Vejamos alguns exemplos

1
Tomando ω1 = ω2 = e α 2 = β 21 = 1 obtemos o método de Heun.
2

h
yn +1 = yn + ( F1 + F2 )
2
F1 = f n = f ( xn , yn ) (2.31)
F2 = f ( xn + h, yn + hF1 )

1
Outra possibilidade é tomar ω1 = 0, ω2 = 1 e α 2 = β 21 = , obtendo deste modo o
2
método conhecido como o método de Euler modificado (ou método de Euler Cauchy).

yn +1 = yn + hF2
 h hF 
F2 = f  xn + , yn + 1  (2.32)
 2 2 
F1 = f ( xn , yn )
Métodos Numéricos na Resolução de PVI’s. 36

No geral a família dos métodos de Runge Kutta é dada pelas seguintes fórmulas (PINA,
1995)

s
yn +1 = yn + h∑ ωi Fi
i =1

X i = xn + α i h
s
(2.33)
Yi = yn + h∑ βim Fm
m =1

Fi = f ( X i , Yi )

Nas fórmulas acima s indica o número de estágios do método (ou seja número de
funções a calcular), os valores ωi , α i e βim são entendidos como parâmetros próprios de

cada método. Normalmente estes parâmetros são organizados no quadro da figura 2.1,
que é conhecido como quadro de Butcher.

α1 β11 β12 … β1s


α2 β 21 β 22 … β2s

αs β s1 βs2 … β ss
ω1 ω2 … ωs
Figura 2.1 Quadro de Butcher

Um método de Runge Kutta diz-se explícito se a matriz dos “ β ” da figura 2.1 for

estritamente triangular inferior (figura 2.2), i.e. β ij = 0 para j ≥ i, ( i, j = 1,..., s ) e implícito

se, esta matriz não for triangular inferior, i.e., existe pelo menos um j > i tal que βij =/ 0 .

Nesse trabalho somente estudaremos os métodos de Runge Kutta explícitos, indicando


[BUT08] caso ao leitor estiver interessado no estudo dos métodos implícitos.

0 0 0 … 0
α2 β 21 0 … 0

αs β s1 βs2 … 0
ω1 ω2 … ωs
Figura 2.2
Métodos Numéricos na Resolução de PVI’s. 37

Como aconteceu com os métodos da série de Taylor, nós dizemos que (2.33) é um
método com ordem de consistência p ( p ≥ 1) se Τ n +1 ( h ) = O ( h p +1 ) , com h → 0 .

2.2.1 Métodos de Runge Kutta de primeira ordem ( p = 1)

Fazendo s = 1 nas fórmulas (2.33) obteremos o método de Runge Kutta de primeira


ordem que é dado por

yn +1 = yn + hω1 F1 , F1 = f ( xn , yn ) (2.34)

Nesse caso temos apenas um parâmetro ω1 para determinar. Procedendo de forma

semelhante ao método de Runge Kutta de 2ª ordem visto anteriormente obteremos


ω1 = 1 . O método resultante será

yn +1 = yn + hF1
(2.35)
F1 = f ( xn , yn )

que corresponde ao método de Euler progressivo.

Se aumentarmos o número de estágios ( s ) obteremos novos métodos.

2.2.2 Métodos de Runge Kutta de terceira ordem p = 3

Se procedermos de forma análoga ao método de 2ª ordem ( p = 2) podemos obter os

métodos de Runge Kutta de 3ª ordem ( p = 3) .

A fórmula geral de um de um método de Runge Kutta de 3ª ordem é dada por

yn +1 = yn + h (ω1 F1 + ω2 F2 + ω3 F3 )
F1 = f ( xn , yn )
(2.36)
F2 = f ( xn + α 2 h, yn + hβ 21 F1 )
F3 = f ( xn + α 3 h, yn + hβ 31 F1 + hβ 32 F2 )

Como exemplo de métodos de Runge Kutta de 3ª ordem temos


Métodos Numéricos na Resolução de PVI’s. 38

Método de Kutta: (PINA, 1995)

h
yn +1 = yn + ( F1 + 4 F2 + F3 )
6
F1 = f ( xn , yn )
(2.37)
 h hF 
F2 = f  xn + , yn + 1 
 2 2 
F3 = f ( xn + h, yn + 2hF2 − hF1 )

Método de Heun de terceira ordem (PINA, 1995)

h
yn +1 = yn + ( F1 + 3F3 )
4
F1 = f ( xn , yn )
 h hF  (2.38)
F2 = f  xn + , yn + 1 
 3 3 
 2h 2hF2 
F3 = f  xn + , yn +
 3 3 

2.2.3 Método de Runge Kutta de 4ª ordem (RK4)

A formula geral dos métodos de Runga Kutta de 4ª ordem é dada por

yn +1 = yn + h ( ω1 F1 + ω2 F2 + ω3 F3 + ω4 F4 )
F1 = f ( xn , yn )
F2 = f ( xn + α 2 h, yn + hβ 21 F1 ) (2.39)
F3 = f ( xn + α 3 h, yn + hβ 31 F1 + hβ 32 F2 )
F4 = f ( xn + α 4 h, yn + hβ 41 F1 + hβ 42 F2 + hβ 43 F3 )

Como exemplo vamos apresentar a fórmula de Runge Kutta mais utilizada (PINA, 1995)

h
yn +1 = yn + ( F1 + 2 F2 + 2 F3 + F4 )
6
F1 = f ( xn , yn )
 h hF 
F2 = f  xn + , yn + 1  (2.40)
 2 2 
 h hF 
F3 = f  xn + , yn + 2 
 2 2 
F4 = f ( xn + h, yn + hF3 )
Métodos Numéricos na Resolução de PVI’s. 39

Por ser de entre todos os métodos de Runge Kutta a mais utilizada, ela é designada
simplesmente por método de Runge Kutta. Essa popularidade é devido ao bom
equlíbrio entre o esforço computacional (em cada passo efectuamos quatro cálculos de
f ) e a elevada precisão iminente a este método. (PINA, 1995)

A partir da quinta ordem, são necessárias mais cálculos de f (ou seja mais estágios
s ) do que a ordem p , o que se traduz numa perda de eficácia. Por exemplo, para o
método de Runge Kutta de 5ª ordem precisamos efectuar seis cálculos de f , i.e., a

ordem p = 5 só se obtém com seis estágios ( s = 6 ) (PINA, 1995). A tabela seguinte

mostra a relação entre a ordem e o número mínimo de estágios para os métodos de


Runge Kutta (QUORTERONI, SACCO, & SALERI, 2007)

Ordem 1 2 3 4 5 6 7 8
p
smin 1 2 3 4 6 7 9 11
Tabela 2.2 Relação entre a ordem e o número de estágios

A partir da 5ª ordem os métodos de Runge Kutta perdem eficácia, e por isso tornam-se
menos atractivos e económicos, daí a razão da grande popularidade dos métodos com
ordem 4, pois requerem apenas 4 estágios, ou seja, quatro cálculos de f por passo.

Daquilo que acabamos de ver, podemos concluir que quanto maior for a ordem dos
métodos de Runge Kutta maior será o número de vezes em que é calculado f ( x, y ) (ou

seja maior o número de estágios) num passo. Para remediar esse inconveniente
apresentaremos no próximo capítulo uma outra classe de métodos.

2.2.4 Erros dos métodos de Runge Kutta


Como os métodos de Runge Kutta correspondem aos métodos da série de Taylor, um
método de Runge Kutta de ordem p tem erro de truncatura local
Métodos Numéricos na Resolução de PVI’s. 40

Τn +1 ( h ) = O ( h p +1 ) (2.41)

Em termos de consistência, todos os métodos de Runge Kutta apresentados


anteriormente são consistentes. (PINA, 1995)

Para melhores explicações sobre o erro dos métodos de Runge Kutta indicamos [QUO07]
ou [BUT08], que apresentam esse assunto de forma mais detalhada.

Exemplo 2.6 Utilizando o método de Runge Kutta de 4ª ordem resolva o PVI


1 1 1
f ( x, y ) = x 2 − y , com y ( 0 ) = 1, em I = [ 0,3] .Compare os resultados para h = 1, , , .
2 4 8

A solução exacta do PVI é y ( x ) = −e − x + x 2 − 2 x + 2 . A tabela (2.3) mostra a solução exacta

do PVI e as soluções aproximadas para os diferentes valores do tamanho de passo


1
(utilizando o PROGRAMA 4 do anexo). Por exemplo para h = temos
8

F1 = 0 2 − 1 = −1
F2 = 0.06252 − (1 + 0.125*0.5*( −0.5)) = −0.9648
F3 = 0.06252 − (1 + 0.125*0.5*(−0.9648)) = −0.9358
F4 = 0.1252 − (1 + 0.125* ( −0.9358 ) ) = −0.8674
0.125
y1 = 1 +
6
( ( −1) + 2 ( −0.9648 ) + 2 ( −0.9358) + ( −0.8674 ) ) = 0.8831

xn yn y ( xn ) Exacta

h=1 h = 0.5 h = 0.25 h = 0.125

0 1.0 1.0 1.0 1.0 1.0


0.125 0.8831 0.8831
0.25 0.7837 0.7837 0.7836
0.375 0.7033 0.7033
0.50 0.6439 0.6435 0.6435 0.6434
0.75 0.5902 0.5901 0.5901
1.00 0.6458 0.6329 0.6322 0.6321 0.6321
1.50 1.0279 0.0269 1.0269 1.0268
2.00 1.8880 1.8659 1.8647 1.8647 1.8446
2.50 3.1693 3.1680 3.1679 3.1679
3.00 4.9788 4.9517 4.9503 4.9502 4.9502

Tabela 2.3 Resultados do exemplo 2.6


Métodos Numéricos na Resolução de PVI’s. 41

Comparando os resultados do PVI dada no exemplo acima, é possível ver que o


método de Runge Kutta de 4ª ordem oferece uma aproximação da solução exacta muito
melhor que o método de Euler Explícito (ver exemplo 3.5). Essa precisão, como já foi
dito anteriormente é devido ao facto do método de Runge Kutta de 4ª ordem utilizar
mais termos no desenvolvimento em série de Taylor da solução exacta do que o método
de Euler explícito.

No exemplo anterior precisamos de efectuar vários cálculos de f (quatro ao todo)

para obtermos a primeira ( y1 ) de 24 aproximações. Essa tarefa seria ainda bem mais
cansativa se a nossa função fosse mais complexa. O elevado número de cálculos da
função f por passo, é uma das grandes desvantagens dos métodos de Runge Kutta, mas
com o advento da informática, a penosa tarefa dos cálculos foi substituída pelos
computadores.

2.3 Análise da Convergência dos métodos de passo simples

Terminado a apresentação dos métodos de passo simples, vamos agora analisar a


convergência desses métodos, i.e., investigar em que condições o erro de truncaturra
global tende para zero com o parâmetro h .

Para o estudo da convergência dos métodos de passo simples, vamos iniciar com a
seguinte definição.

Definição 2.4 Diz-se que um método de passo simples satisfaz a condição de Lipchitz, se
a função incremental φ verificar a relação

φ ( x, v ) − φ ( x, ω ) ≤ Lh v − ω , ∀x ∈ I = [ x0 , X ] (2.42)

para h suficientemente pequeno. (PINA, 1995)

O seguinte teorema estabelece as condições de convergência dos métodos de passo


simples
Métodos Numéricos na Resolução de PVI’s. 42

Teorema 2.1 Se um método de passo simples satisfazer a condição de Lipchitz, a


consistência é uma condição necessária e suficiente para convergência da solução
aproximada yn para a solução exacta y ( xn ) , i.e., (PINA, 1995)

lim ( tn +1 ( h ) ) = 0 ⇔ lim yn − y ( xn ) = 0 (2.43)


h →0 h →0

Demonstração. Ver (PINA, 1995)

A partir do teorema acima, fica claro que para demonstrar a convergência dos métodos
de Taylor e dos métodos de Runge Kutta estudados anteriormente, é preciso provar
apenas que as respectivas funções incrementais satisfazem a condição de Lipchitz, pois,
como foi dito anteriormente esses métodos são todos consistentes.

Todos os métodos de passo simples apresentados são métodos consistentes e


convergentes. Indicamos [PIN95], [QUO07] ou [BUT08] para uma análise mais
aprofundada do estudo da consistência e convergência dos métodos de passo simples.
Métodos Numéricos na Resolução de PVI’s. 43

CAPÍTULO III

MÉTODOS DE PASSO MÚLTIPLO

Como vimos anteriormente, nos métodos de passo simples o valor yn +1 é

calculado a partir do valor de yn utilizando apenas informações no intervalo [ xn , xn +1 ] .

Quando efectuamos o passo yn+1 , já dispomos dos valores aproximados y0 , y1 ,..., yn . A

ideia dos métodos de passo múltiplo (ou métodos multipasso) é recorrer às


informações obtidas em vários passos anteriores para obter uma melhor aproximação
de yn+1 (PINA, 1995). Se recorrermos à informação obtida nos dois passos anteriores

temos os métodos de 2 passos, se a informação for obtida nos 3 passos anteriores temos
os métodos de 3 passos, …, se a informação for obtida nos q passos anteriores temos os
métodos de q passos ( q ≥ 1 ). Geralmente temos

Definição 3.1 Um método de q passos ( q ≥ 1 ) é um método que para ∀n ≥ q − 1, yn +1

depende dos valores yn ,..., yn +1− q , mas não depende dos valores yk com k < n + 1 − q .

(PINA, 1995)
Métodos Numéricos na Resolução de PVI’s. 44

Exemplo 3.1 Um método explícito de 2 passos muito conhecido pode ser obtido
utilizando a seguinte aproximação para a primeira derivada de (1.8) (QUORTERONI,
SACCO, & SALERI, 2007)

yn +1 − yn −1
y′ ( x ) ≈
2h

originando

yn +1 = yn −1 + 2hf n , n ≥ 1,

Onde y0 = y ( x0 ) , y1 devem ser determinados por um qualquer método de passo simples

(normalmente utiliza-se o método de Runge Kutta de quarta ordem) e f n ≡ f ( xn , yn ) .

Esse método é conhecido como método do ponto médio.

Exemplo 3.2 Um método implícito de dois passos é o método de Simpson


(QUORTERONI, SACCO, & SALERI, 2007), obtido de (1.9), com x0 = xn−1 e x = xn+1 e

utilizando o método de Cavalieri- Simpson para aproximar o integral de f , i.e.,

xn+1 h
∫xn−1
f ( s, y ( s ) ) ds ≈
3
( f n −1 + 4 f n + f n+1 ) ,

originando o método

h
yn +1 = yn −1 + [ f n−1 + 4 f n + f n +1 ] , n ≥ 1,
3
onde tal como no exemplo anterior y0 = y ( x0 ) e y1 têm de ser determinados por um

qualquer dos métodos de passo simples.

Observação 3.1 Dos exemplos que acabamos de ver fica claro que um método de
q − passos precisa de q valores iniciais y0 , y1 ,..., yq −1 para poder ser inicializado (esses

valores são determinados pelos métodos de passo simples, sendo o método de Runge Kutta
de quarta ordem a mais utilizada).
Métodos Numéricos na Resolução de PVI’s. 45

Existem, vários tipos de métodos multipassos, mas nós vamos abordar somente a
família de métodos multipassos conhecidas como métodos de Adams, indicando [QUO07]
ou [PIN95] para o estudo de outros métodos.

3.1 Métodos de Adams Bashforth (AB)

Relembremos que a solução exacta do PVI (1.8) é dada por

xn+1
y ( xn +1 ) = y ( xn ) + ∫ f ( s, y ( s ) )ds
xn

Nos métodos de Adams Bashforth** a aproximação do integral da direita da equação


acima é feita recorrendo a um polinómio interpolador da integranda f ( x, y ( x ) ) nos nós

xn −m , xn −m+1 ,... , xn−1 , xn i.e., um polinómio pm de grau ≤ m . Seja

m
pm ( x ) = ∑ Ln − j ( x ) f n − j (3.1)
j =0

a representação de Lagrange desse polinómio interpolador, então (RAINER, 1998)

xn+1 xn+1
∫xn
f ( x, y ( x ) )dx ≈ ∫
xn
pm ( x ) dx (3.2)

em que

xn+1 m m

∑ Ln− j ( x ) f n− j dx = h∑ γ j fn− j
xn+1
∫ xn
pm ( x ) dx = ∫
xn
j =0 j =0
(3.3)

Os coeficientes γ j são definidos por (PINA, 1995)

1 xn+1
h ∫xn
γj = Ln − j ( x )dx (3.4)

A expressão geral dos métodos de Adams Bashforth é

Método desenvolvido por John Cauch Adams (1819-1892) para resolver uma equação diferencial criada
**

por Francis Bashforth (1819-1912)


Métodos Numéricos na Resolução de PVI’s. 46

 m 
yn +1 = yn + h  ∑ γ j f n − j  (3.5)
 j =0 

que são métodos de m + 1 passos.

Da fómula acima concluimos que estes métodos são explícitos.


Exemplo 3.3 Deduzir o método de Adams Bashforth para m = 1 e o seu erro de truncatura
local.

x − xn x − xn −1
Para m = 1 temos que p1 ( x ) = f n −1 + f é o polinómio que interpola f
xn −1 − xn xn − xx −1 n
nos pontos ( xn −1 , f n −1 ) e ( xn , f n ) .

Efectuando os cálculos obtemos

1 xn + h x − xn −1 3
γ0 = ∫
h n xn − xn −1
x
dx =
2
1 n x − xn
x + h 1
γ1 = ∫ dx = −
h xn xn −1 − xn 2

pelo que temos

yn +1 = yn + h  f n − f n −1  ,
3 1
n ≥1
 2 2 

Para obtermos o erro de truncatura local, notemos que o erro de interpolação


polinomial é dado por (PINA, 1995)
1
f ( x , y ( x ) ) − pm ( x ) = f ( m +1 ) ( ξ, y ( ξ ) ) Wm ( x ) , xn −1 < ξ < xn ,
( m + 1 )!

onde Wm = ( x − xn )( x − xn −1 ) ..... ( x − xn − m ) .

De acordo com que foi dito acima, para m = 1 temos

1
f ( x, y ( x ) ) − p1 ( x ) = f ′′ ( ξ, y ( ξ ) ) ( x − xn )( x − xn −1 ) , xn −1 < ξ < xn ,
2!
Pelo que
xn + h 1 xn + h
∫xn
f ( x, y ( x ) ) − p1 ( x ) =
2!
f ′′ ( ξ, y ( ξ ) ) ∫ ( x − xn )( x − xn −1 )dx,
xn
Métodos Numéricos na Resolução de PVI’s. 47

Depois do cálculo do integral acima obtemos

5 3
Τn +1 ( h ) = h f ′′ ( ξ, y ( ξ ) ) .
12

Com ordem de consistência igual a 2.

Apresentamos a seguir alguns métodos de Adams Bashforth para diferentes valores de


m e os respectivos erros de truncatura local (PINA, 1995).

Para m = 0

yn +1 = yn + hf n n≥0
1 2 (3.6)
Τn +1 ( h ) = h f ′ ( ξn )
2

Para m = 1

h
yn +1 = yn + ( 3 f n − f n−1 ) n ≥1
2 (3.7)
5
Τn +1 ( h ) = h3 f ′′ ( ξn )
12

Para m = 2

h
yn +1 = yn + ( 23 f n − 16 f n −1 + 5 f n−2 ) n≥2
12
(3.8)
3
Τn +1 ( h ) = h 4 f ′′′ ( ξn )
8

Para m = 3

h
yn +1 = yn + ( 55 f n − 59 f n −1 + 37 f n −2 − 9 f n−3 ) n≥3
24
(3.9)
251 5 (iv )
Τn +1 ( h ) = h f ( ξn )
720

Para calcular o valor yn+1 , os métodos de AB precisam dos valores yn−m , yn −m +1 ,..., yn .

Isto quer dizer que o primeiro valor a ser calculado é ym . Os valores y0 , y1 ,..., ym −1 devem

ser calculados por um método auxiliar que deverá ser de passo simples (normalmente é
utilizado o método de Runge Kutta de 4ª ordem com igual ordem de consistência).
Métodos Numéricos na Resolução de PVI’s. 48

Uma das desvantagens dos métodos de passo múltiplo é a de que não são “auto-
iniciáveis”, i.e., precisam de alguns valores pré computados para poderem iniciar, mas ao
contrário dos métodos de Runge Kutta esses métodos têm a vantagem de exigirem
somente um cálculo de f por passo, visto que os restantes valores são aproveitados dos
passos anteriores (PINA, 1995).

3.2 Métodos de Adams Moulton (AM)

Para os métodos de AB, o polinómio pm ( x ) interpolador nos nós xn−m ,..., xn é usada

para aproximar a integrada do integral em (1.9) entre os nós xn −m , xn −m+1 ,... , xn−1 , xn . Para

uma melhor aproximação, os métodos de Adams Moulton†† surgiram com a ideia de


estender o polinómio interpolador até o nó xn+1 , i.e., utilizar os nós

xn −m , xn − m+1 ,..., xn −1 , xn , xn +1 para construir um polinómio interpolador pm +1 ( x ) de grau

≤ m + 1.

Utilizando o processo adoptado nos métodos de AB chegamos a expressão geral dos


métodos de Adams Moulton. (PINA, 1995)

 m +1 
yn +1 = yn + h  ∑ γ j f n − j +1  (3.10)
 j =0 

que são métodos de m + 2 passos.

Os métodos de AM são implícitos, pois, no segundo membro de (3.10) figura o valor


f n +1 = ( f n +1 , yn +1 ) .

Exemplo 3.4 Deduzir o método de Adams Moulton para m = 1 e o respectivo erro de


truncatura local.

††Tal como os métodos de Adams Bashforth, esses métodos também foram desenvolvidos por John Couch
Adams. O nome de Forest Ray Moulton (1872-1952) ficou associado a esses métodos, pois ele observou
que eles podiam ser usados em conjunto com os métodos de Adams Bashforth, originando os pares
preditores correctores.
Métodos Numéricos na Resolução de PVI’s. 49

( x − xn )( x − xn +1 ) ( x − xn−1 )( x − xn +1 )
Para m = 1 temos que p2 ( x ) = f + f +
( xn −1 − xn )( xn−1 − xn +1 ) n −1 ( xn − xn−1 )( xn − xn +1 ) n
( x − xn −1 )( x − xn )
+ f é o polinómio que interpola f nos pontos
( xn+1 − xn−1 )( xn − xn ) n +1
( xn−1 , f n −1 ) , ( xn , f n ) e ( xn+1 , f n +1 ) .

Efectuando os cálculos obtemos

1 xn + h ( x − xn )( x − xn −1 ) 5
γ0 = ∫
h n ( xn +1 − xn )( xn +1 − xn −1 )
x
dx =
12
1 xn + h ( x − xn )( x − xn +1 ) 8
γ1 = ∫
h n ( xn −1 − xn )( xn −1 − xn +1 )
x
dx =
12
1 xn + h ( x − xn −1 )( x − xn +1 ) 1
γ2 = ∫
h xn ( xn − xn −1 )( xn − xn +1 )
dx = −
12

pelo que temos

h
yn +1 = yn + ( 5 f n+1 + 8 f n − f n−1 )
12

Para obtermos o erro de truncatura local, notemos que o erro de interpolação


polinomial é dado por (PINA, 1995)
1
f ( x, y ( x ) ) − pm +1 ( x ) = f ( m + 2 ) ( ξ, y ( ξ ) ) Wm +1 ( x ) , xn −1 < ξ < xn +1 ,
( m + 2 )!

então, para m = 1 temos

1
f ( x , y ( x ) ) − p2 ( x ) = f ′′′ ( ξ, y ( ξ ) ) ( x − xn )( x − xn −1 )( x − xn +1 ) , ,
3!

Pelo que

xn + h 1 xn + h
∫xn
f ( x, y ( x ) ) − p1 ( x ) =
6
f ′′′ ( ξ, y ( ξ ) ) ∫ ( x − xn )( x − xn −1 )( x − xn +1 )dx,
xn

Depois do cálculo do integral acima obtemos

1 4
Τn +1 ( h ) = − h f ′′′ ( ξ, y ( ξ ) ) ,
24

i.e. tem ordem de consistência igual a 3.


Métodos Numéricos na Resolução de PVI’s. 50

Apresentamos a seguir alguns métodos de Adams Moulton para diferentes valores de m


e seus respectivos erros de truncatura local. (PINA, 1995)

Para m = 0

h
yn +1 = yn + ( f n +1 + f n ) n≥0
2 (3.11)
1
Τn ( h ) = − h3 f ′′ ( ξn )
12

Para m = 1

h
yn +1 = yn + ( 5 f n +1 + 8 f n − f n −1 ) n ≥1
12 (3.12)
1
Τn ( h ) = − h 4 f ′′′ ( ξn )
24

Para m = 2

h
yn +1 = yn + ( 9 f n +1 + 19 f n − 5 f n −1 + f n −2 ) n≥2
24
(3.13)
19 5 ( iv )
Τn ( h ) = − h f ( ξn )
720

Como os métodos de AM são implícitos, temos de calcular f n +1 ≡ ( f n +1 , yn +1 )

recorrendo a uma equação algébrica não linear

yn +1 = ϕ ( yn +1 ) (3.14)

 m +1 
Com ϕ ( yn +1 ) = yn + h  ∑ γ j f n − j +1  + hγ 0 f ( xn +1 , yn +1 ) (PINA, 1995)
 j =1 

Normalmente utiliza-se o método iterativo linear do ponto fixo em que a aproximação


( 0)
inicial de yn+1 (designemos por y n +1 ) é dada por um dos métodos de AB.

A combinação dos métodos acima é designada por par preditor corrector, pois, o
método de AB funciona como fórmula preditora de yn +1 , enquanto as iterações de ponto

fixo do método implícito de AM actuam como correctoras de yn+1 . (PINA, 1995)


Métodos Numéricos na Resolução de PVI’s. 51

3.3 Processo preditor corrector

Como vimos anteriormente, nos métodos multipassos implícitos é necessário


utilizar um método auxiliar para calcular a estimativa inicial yn( 0+)m . Esse método utilizado

(geralmente explícito) para estimar yn( 0+)m é conhecido como preditor, sendo o método

linear propriamente dito designado por corrector.

O método explícito produz um valor aproximado de yn+m (designemos por yn( 0+)m ), logo a

seguir o valor yn( 0+)m é utilizado no método implícito, gerando um valor melhorado (ou

corrigido) de yn + m .

Como exemplo de método preditor corrector temos

Método de Adams-Bashforth-Moulton (ABM) (MILLER, 1991)

y0 é dado;
y1 , y2 , y3 são determinados por um método de passo simples

para n = 3, 4,..., N − 1, temos


h
(Preditor) y (n*+1) = yn + ( 55 f n − 59 f n −1 + 37 f n − 2 − 9 f n −3 ) (3.15)
24
h
(Corrector) yn +1 = yn +
24
( ( )
9 f xn +1 , y (n*+1) + 19 f n − 5 f n −1 + f n − 2 )
O termo do erro de truncatura local do preditor e do corrector de (3.15) são de ordem
O ( h5 ) .

3.3.1 Considerações

( )
O corrector de (3.15) usa a aproximação f n+1 ≈ f xn +1 , yn( +)1 no cálculo de yn +1 . Como
*

yn +1 é também uma aproximação de y ( xn +1 ) , ele pode ser usado novamente no corrector

de (3.15) para obter uma nova aproximação para f n +1 , que por sua vez gera uma nova

aproximação para yn+1 . Na prática, invocando o corretor uma ou duas vezes é em geral
Métodos Numéricos na Resolução de PVI’s. 52

suficiente para produzir uma boa precisão, desde que se utilize um preditor da mesma
ordem. (PINA, 1995)

Sendo esse trabalho um trabalho limitado (em relação ao número de folhas), nós
não vamos fazer a análise da consistência e convergência dos métodos de passo
múltiplo, pois são análises muito complexas e longas, indicando para isso [QUO07] ou
[PIN95], caso o leitor estiver interessado.

Exemplo 3.5 Resolva pelos vários métodos apresentados o PVI dos exemplos (2.5) e (2.6)
com espaçamento h = 0.125 .

A solução exacta do PVI f ( x, y ) = x 2 − y , com y ( 0 ) = 1, em I = [ 0,3] é

y ( x ) = −e − x + x 2 − 2 x + 2 .

A tabela 3.1 apresenta as soluções do PVI do exemplo acima utilizando os métodos de


Euler (explícito e Implícito), Heun, RK4, AB, e o par preditor corrector ABM.

A resolução desse exemplo foi feita recorrendo aos Programas 1 a 6 do anexo 2).

xn h = 0.125 y ( xn ) Exacta

Euler EXP Euler IMP Heun RK4 AB PC-ABM

0.000 1.0000 1.0000 1.0000 1.000000 1.000000 1.000000 1.000000


0.125 0.8750 0.8926 0.8838 0.883128 0.883128 0.883128 0.883128
0.25 0.7676 0.8025 0.7850 0.783699 0.783699 0.783699 0.783699
0.375 0.6794 0.7313 0.7052 0.703336 0.703336 0.703336 0.703335
0.50 0.6121 0.6804 0.6459 0.643470 0.643461 0.643471 0.643469
0.75 0.5448 0.6439 0.5935 0.590135 0.590115 0.590136 0.590133
1.00 0.5743 0.7012 0.6363 0.632123 0.632097 0.632124 0.632120
1.50 0.9488 1.1216 1.0324 1.026873 1.026844 1.026873 1.026869
2.00 1.7717 1.9788 1.8711 1.864668 1.864642 1.864667 1.864664
2.50 3.0644 3.2963 3.1750 3.167919 3.167897 3.167917 3.167915
3.00 4.8395 5.0887 4.9577 4.950217 4.950199 4.950214 4.950212

Tabela 3.1 Resultados do exemplo 3.5


Métodos Numéricos na Resolução de PVI’s. 53

Da tabela acima, vemos que os métodos que produzem resultados mais próximos da
solução exacta são os métodos de Runge Kutta de 4ª ordem, os métodos de Adams
Bashforth e o preditor corrector ABM. Destes três métodos, os métodos de RK4 e ABM
produzem resultados melhores. A partir da tabela acima, também podemos ver que
utilizando o preditor AB sem a companhia do corrector AM obtém-se aproximações
menos interessantes do que se tivesse sido utilizado o corrector.

Ainda do exemplo acima podemos ver que o método RK4 tem precisão comparável
com o preditor corrector ABM, mas esse método (RK4) tem a desvantagem de requerer
um maior número de cálculos de f ( x, y ) por passo, do que os métodos preditores
correctores e por isso são aconselháveis para funções mais simples de computar.

Para funções muito complexas, é aconselhável utilizar o método ABM. Por exemplo,
y
na tabela 3.2 são apresentados as soluções do PVI y ' = 1 − x + com y (1) = 0 com
x
x ∈ [ 1, 4 ] cuja solução é y ( x ) = ( ln ( x ) − x + 1 ) x , utilizando os métodos RK4 e ABM com

h = 0.2 .

Observando a Tabela 3.2, vê-se que utilizando o preditor corrector de Adams


Bashforth Moulton obtém-se resultados sensivelmente mais próximas da solução exacta,
do que utilizando o método de Runge Kutta de 4ª ordem. Esse melhor resultado deve-se
ao facto de que no método RK4, efectuamos 4 cálculos de f por passo, o que faz
aumentar o erro de arredondamento para funções mais complexas (que é o caso do PVI
dado), enquanto para o preditor corrector ABM efectuamos apenas um cálculo da função
f por passo (visto que os restantes cálculos são aproveitados dos passos anteriores).
Métodos Numéricos na Resolução de PVI’s. 54

xn h = 0.5 y ( xn ) Exacta

ABM RK4

1.0 0.0000000 0.0000000 0.0000000


1.2 −0.021212 −0.021212 −0.021214
1.4 −0.088934 −0.088934 −0.088938
1.6 −0.207987 −0.207987 −0.207994
1.8 −0.381977 −0.381975 −0.381984
2.0 −0.613700 −0.613694 −0.613705
2.2 −0.905389 −0.905381 −0.905393
2.4 −1.258871 −1.258860 −1.258875
2.6 −1.675667 −1.675654 −1.675670
2.8 −2.157062 −2.157047 −2.157065
3.0 −2.704160 −2.704143 −2.704163
3.2 −3.317915 −3.317896 −3.317917
3.4 −3.999161 −3.999140 −3.999163
3.6 −4.748636 −4.748613 −4.748638
3.8 −5.566994 −5.566970 −5.566995
4.0 −6.454821 −6.454795 −6.454822

Tabela 3.2 Soluções pelos métodos ABM e RK4


y
do PVI y ' = 1 − x + com y(1) = 0 .
x
Métodos Numéricos na Resolução de PVI’s. 55

CONCLUSÃO

Depois da elaboração deste trabalho provou-se que os métodos numéricos apresentam-


se como alternativa plausível para a resolução de PVI’s, na medida que oferecem a
oportunidade de obter soluções aproximadas muito próximos da solução exacta
(solução essa que nem sempre é possível obter-se pelos métodos analíticos).

Neste trabalho abordamos dois conjuntos de métodos numéricos para a resolução de


PVI’s: os métodos de passo simples (que utilizam a informação do passo anterior para
computar o passo seguinte) e os métodos de passo múltiplo (que utilizam as
informações dos vários passos computados anteriormente para computar o passo
seguinte). Dentre os métodos de passo simples, observa-se que os métodos de Euler são
os métodos que produzem piores resultados, pelo facto de utilizarem somente o termo
de grau 1 no desenvolvimento em série de Taylor da solução exacta. Por contrapartida
os métodos de Runge Kutta (em particular o método de Runge Kutta de 4ª ordem)
produzem melhores resultados, pois utilizam mais termos no desenvolvimento em série
de Taylor da solução exacta, embora possuam a desvantagem de necessitarem de vários
cálculos de f por passo.

Em relação aos métodos de passo múltiplo, observa-se que a utilização de um


método de Adams Bashforth (como por exemplo o método de Adams Bashforth de 4ª
ordem, que foi o exemplo apresentado) “sozinho”(i.e., não acompanhado dum método de
Métodos Numéricos na Resolução de PVI’s. 56

Adams Moulton para servir de corrector) produzem resultados não muito plausíveis
(por exemplo comparando com RK4), enquanto que quando utilizados em conjunto com
os métodos de Adams Moulton (da mesma ordem) formando assim um par preditor
corrector, produzem resultados muito próximos da solução exacta.

Vale também frisar o contacto com o software MATLAB como ferramenta auxiliar,
que foi deveras gratificante dada a sua potencialidade no tratamento do conteúdo do
tema em questão.

Com a utilização do software MATLAB, foi possível evitar cálculos de difíceis


execuções (caso usássemos apenas lápis e papel) inerentes aos vários métodos
apresentados (principalmente os métodos de Runge Kutta de 4ª ordem), obtendo os
resultados de forma rápida e eficiente.

Finalmente, os objectivos preconizados foram atingidos, aprofundei conhecimentos


não só do tema em questão, mas de diferentes áreas da matemática, que é um dos
propósitos de uma monografia. Infelizmente o tema é muito vasto, daí a impossibilidade
de abordar e confrontar outros métodos, também interessantes, que podem ser
encontradas nas várias bibliografias utilizadas para a confecção desta monografia, tais
como [BUT08], [QUO07] entre outras.
Métodos Numéricos na Resolução de PVI’s. 57

Referências Bibliográficas
AGUDO, F. D. (1992). Análise Real (Vol. III). Escolar Editora.

ASCHER, U. M., & PETZOLD, L. R. (1998). Computer Methods for Ordinary Differential
Equations and Differential-Algebraic Equations. Philadelphia: Siam.

BUTCHER, J. C. (2008). Numerical Methods for Ordinary Differential Equations


(Second Edition ed.). John Wiley & Sons Ltd.

KINCARD, D. (2002). Numerical Analysis: Mathematics of Scientific Computing. Word


Cheney Brooks/Cole.

LINZ, P., & WANG, R. L. (2003). Numerical Methods. JONES AND BARTLETT
MATHEMATICS.

MATHEWS, J. H., & FINK, K. D. (2004). Numerical Methods Usin MATLAB (Fourth
Edition ed.). International Edition.

MILLER, R. K. (1991). Introduction to Differential Equations (second edition ed.). New


Jersey: Prentice Hall.

MORAIS, V., & VIEIRA, C. (2006). MATLAB 7 & 6 Curso Completo. FCA.

PINA, H. (1995). Métodos Numéricos. Mc Graw-Hill.

QUORTERONI, A., SACCO, R., & SALERI, F. (2007). Texts in Applied Mathematics.
Numerical Mathematics (2ª ed.). Springer.

RAINER, K. (1998). Numerical Analysis. Springer.

RILEY, K. F., HOBSON, M. P., & BENCE, S. J. (2007). Mathematical Methods for Physics
and Engineering (3ª ed.). Cambridge.
Métodos Numéricos na Resolução de PVI’s. 58

Bibliografia
[AGU92] AGUDO, F. D. (1992). Análise Real (Vol. III). Escolar Editora.

[ASC98] ASCHER, U. M., & PETZOLD, L. R. (1998). Computer Methods for Ordinary Differential
Equations and Differential-Algebraic Equations. Philadelphia: Siam.

[BUT08] BUTCHER, J. C. (2008). Numerical Methods for Ordinary Differential Equations


(Second Edition ed.). John Wiley & Sons Ltd.

[CAR09] CARVALHO, N. T. (2009). Aproximações Numéricas e Aplicações com MATLAB


de:Equações não Lineares & Equações Diferenciais. Praia: Monografia (Licenciatura em
Matemática)- Universidade de cabo verde.

[KIN02] KINCARD, D. (2002). Numerical Analysis: Mathematics of Scientific Computing.


Word Cheney Brooks/Cole.

[LIN03] LINZ, P., & WANG, R. L. (2003). Numerical Methods. JONES AND BARTLETT
MATHEMATICS.

[MAT04] MATHEWS, J. H., & FINK, K. D. (2004). Numerical Methods Usin MATLAB (Fourth
Edition ed.). International Edition.

[MIL91] MILLER, R. K. (1991). Introduction to Differential Equations (second edition ed.). New
Jersey: Prentice Hall.

[MOR06] MORAIS, V., & VIEIRA, C. (2006). MATLAB 7 & 6 Curso Completo. FCA.

[PIN95] PINA, H. (1995). Métodos Numéricos. Mc Graw-Hill.

[QUO07] QUORTERONI, A., SACCO, R., & SALERI, F. (2007). Texts in Applied Mathematics.
Numerical Mathematics (2ª ed.). Springer.

[RAI98] RAINER, K. (1998). Numerical Analysis. Springer.

[Spr09] Springer Online Reference Works. Cauchy problem, numerical methods for ordinary
differential equations. Disponível em < http://eom.springer.de/C/c020960.htm >. Acesso em
15 de Setembro de 2009.

[RIL07] RILEY, K. F., HOBSON, M. P., & BENCE, S. J. (2007). Mathematical Methods for Physics
and Engineering (3ª ed.). Cambridge.
Métodos Numéricos na Resolução de PVI’s. 59

ANEXO I— INTRODUÇÃO AO MATLAB


O MATLAB (MATrix LABoratory) é um poderoso software matemático de computação
numérica, de análise e visualização de dados que trabalha a base de matrizes. Sua
vantagem está na manipulação e cálculos matriciais, como por exemplo, resolução de
sistemas lineares, cálculos de autovalores e autovectores, resolução de equações
diferenciais analiticamente e numericamente, entre outros. Também este software
dispõe da possibilidade de visualização e manipulação de gráficos de 2D e 3D bem como
a possibilidade de implementação de nossos próprios programas, para além dos que já
vêm implementados.

Figura 1. Janela inicial do MATLAB

Os comandos do MATLAB são muito próximo da forma como escrevemos expressões


algébricas, tornando mais simples o seu uso. Apresentamos em seguida alguns
comandos básicos do MATLAB.

Operadores aritméticos

+ Adição
- Subtracção
* Multiplicação
/ Divisão
^ Potenciação
pi, e Constantes (π, Euler)
Métodos Numéricos na Resolução de PVI’s. 60

Funções

abs(#) Valor absoluto


cos(#), sin(#),tan(#) Funções trigonométricas( seno, cosseno, tangente)
exp(#) Exponencial (e(#))
log(#) Logaritmo na base e (ln(#))
log10(#) Logaritmo na base 10
sqrt(#) Raiz quadrada

Operadores Lógicos

and “e” (&)


not negação lógica(~)
or “ou” (|)
xor “ou exclusivo”

Operadores relacionais

== Igual
~= Diferente
< Menor
<= Menor ou igual
> Maior
>= Maior ou igual

Valores Booleanos

1 Verdadeiro
0 Falso

Definindo Funções

No software MATLAB o usuário pode definir sua própria função, construindo um M-file
(um ficheiro de formato .m) no M-file Debugger (Fig 2). Uma vez definida a função, o
usuário pode “chamar” a sua função da mesma maneira que se chamam as funções
(abs(#), sin(#), cos(#), etc...).
Métodos Numéricos na Resolução de PVI’s. 61

Figura 2. Janela do Editor Debugger

Exemplo

Vamos implementar a função Area(r ) = π r 2 no M-file que vamos nomear por area.m. No
editor/Debugger vamos escrever o seguinte

Figura 3. Escrevendo a função area

Uma vez guardada essa função como um M-file chamado area.m, ela pode ser
chamado no comando Window do MATLAB, como mostra a figura seguinte.
Métodos Numéricos na Resolução de PVI’s. 62

Figura 4. Chamando a função area para r=3.

O M-file do exemplo acima foi guardado no ambiente de trabalho, por isso, ele deve ser
chamado do ambiente de trabalho (ver parte entre linhas negras na figura acima).

Controle de fluxo num programa

O controlo de fluxo num programa escrito no MATLAB é muito semelhante a aqueles


usados noutras linguagens de programação.

for Repete instruções um número específico de vezes;


while Repete instruções um número indefinido de vezes;
if Execução condicional de instruções;
switch Escolhe uma opção, entre várias, através da avaliação de uma
expressão;
end Termina estruturas for, while, switch, e if;
break Termina execução do ciclo for ou while;

Como exemplo vamos implementar um programa que calcula o factorial de um número


dado.

function F=factorial(n)
% F função que calcula o factorial de um número
% n-número>0

%inicialização
F=1;
%Ciclo for na forma inicio:fim
for i=1:n
F=F*i;
end
Métodos Numéricos na Resolução de PVI’s. 63

O símbolo “%”, é usado quando queremos fazer comentários durante a implementação


dum programa. Inserindo o símbolo “%”numa linha de comandos, tudo o que
escrevermos a seguir não será incluído no algoritmo.

Gráficos
Com o software MATLAB pode-se construir gráficos de 2 e 3 dimensões de curvas e
superfícies.
O comando plot é utilizado para construir gráficos de funções 2D. O seguinte exemplo
mostra como construir os gráficos das funções y = cos ( x ) e z = x 2 no intervalo [ 0, π ] .
Exemplo
>>x=0:0.1:pi;
>> y=cos(x);
>> z=x.^2;
>> plot(x,y,x,z,'+')

Na primeira linha do exemplo especificou-se o domínio com espaçamento 0.1. Nas


duas linhas seguintes estão definidas as funções. Notemos que as três primeiras linhas
terminam com um “ponto e vírgula”. O “ponto e vírgula” é utilizado para evitar que as
matrizes x, y e z sejam apresentados na janela de comandos logo após serem escritos. A
quarta linha contém o comando plot que executa o gráfico. Os dois primeiros termos no
comando plot (x e y) produzem o gráfico da função y=cos(x), a terceira e quarta linha(x e
z) produzem o gráfico de z=x2 ( na construção do gráfico de uma função, quando
quisermos elevar a variável a um expoente temos de colocar um ponto “.” Antes de
introduzir o símbolo “^”). O último termo “+” serve para apresentar a função z como
sucessivos “+”, como mostra a figura seguinte.

Figura 5
Métodos Numéricos na Resolução de PVI’s. 64

Os gráficos 3D são obtidos pela especificação de um rectângulo do domínio da função


através do comando mesgrid e utilizando os comandos mesh ou surf para obter o
gráfico.

Exemplo

>> x=-pi:0.1:pi;
>> y=x;
>> [x,y]=meshgrid(x,y);
>> z=sin(cos(x+y));
>> mesh(z)

Cujo gráfico será

Figura 6

MATLAB & PVI’s

Como foi dito anteriormente o software MATLAB dispõe de vários programas pré
implementados. Em relação aos PVI´s, o software possui alguns programas tais como:
ode45 (Runge Kutta de 4ª e 5ª ordem), ode23 (Runge Kutta de 2ª e 3ª ordem) e o ode113
(Adams)

As funções ode23, ode45 e ode113 apresentam a seguinte sintaxe

[T,Y] = solver(odefun,tspan,y0), onde solver pode ser ode23, ode45 ou ode113

Na função acima o argumento odefun é a nossa função y ′ = f ( t , y ) ,


tspan = [t0 , T ] corresponde ao intervalo de integração e y0 representa a condição inicial
do PVI.
Métodos Numéricos na Resolução de PVI’s. 65

Considerações

Apresentamos essa pequena introdução do MATLAB, apenas para o leitor ter uma
pequena ideia deste poderoso software, mas para uma melhor compreensão indicamos
[MOR06], ou de uma forma mais prática, que procure a ajuda que vem incorporada no
programa. O leitor também pode aceder ao site da MATH WORKS (que é o site oficial do
software MATLAB) http://www.mathworks.com para mais esclarecimentos.
Métodos Numéricos na Resolução de PVI’s. 66

ANEXO II---Programas Implementados e utilizados para a apresentação dos exemplos.

PROGRAMA 1
%Método de Euler explícito (ou progressivo) para a aproximação
%numérica da solução do PVI y´=f(x,y), com x pertencente
%ao intervalo [x0, X], com a condição inicial y(x0)=y0.

% y(n+1)=y(n)+h*f(x(n),y(n)), n=0,1,2,...,N-1

function E=eulerexplicito(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
%X- limete lateral direito do intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%E=[x y] onde x corresponde ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y
for n=1:N
y(n+1)=y(n)+h*feval(f,x(n),y(n));
end
E=[x' y'];
Métodos Numéricos na Resolução de PVI’s. 67

PROGRAMA 2

%Método de Euler implícito (ou regressivo) para a aproximação


%numérica da solução do PVI y´=f(x,y), com x pertencente
%ao intervalo [x0,X], com a condição inicial y(x0)=y0.

% y(n+1)=y(n)+h*[f(x(n+1),y(n)+h*f(x(n),y(n))], n=0,1,2,...,N-1

%0nde o método de euler explicito é utilizado para a obtenção da primeira


%aproximação de y(n+1) (pois estamos na presença dum método implícito).

function I=eulerimplicito(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
%X-limite lateral direito do intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%I=[x y] onde x correspode ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y
for n=1:N

y(n+1)=y(n)+h*feval(f,x(n+1),y(n)+h*feval(f,x(n),y(n)));
end
I=[x' y'];
Métodos Numéricos na Resolução de PVI’s. 68

PROGRAMA 3

%Método de Heun para a aproximação


%numérica da solução do PVI y´=f(x,y), com x pertencente ao
%ao intervalo [x0,X], com a condição inicial y(x0)=y0.

% y(n+1)=y(n)+(h/2)*[f(x(n),y(n))+f(x(n+1),y(n+1))], n=0,1,2,...,N-1

%0nde o método de euler explicito é utilizado para a obtenção da primeira


%aproximação de y(n+1) (pois estamos na presença dum método implícito).

function H=heun(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
%X-limite lateral direito o intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%H=[x y] onde x corresponde ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y
for n=1:N
F1=feval(f,x(n),y(n));
F2=feval(f,x(n+1),y(n)+h*F1);
y(n+1)=y(n)+(h/2)*(F1+F2);
end
H=[x' y'];
Métodos Numéricos na Resolução de PVI’s. 69

PROGRAMA 4

%Método de Runge Kutta de 4ª ordem para a aproximação


%numérica da solução do PVI y´=f(x,y), com x pertencente
%ao intervalo [x0,X], com a condição inicial y(x0)=y0.

% y(n+1)=y(n)+(h/6)*(F1+2F2+2F3+F4), n=0,1,2,...,N-1
%onde
%F1=f(x(n),y(n));
%F2=f(x(n)+(h/2),y(n)+(hF1/2));
%F3=f(x(n)+(h/2),y(n)+(hF2/2));
%F4=f(x(n)+h, y(n)+h*F3)

function R=rk4(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
%X-limite lateral direito o intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%R=[x y] onde x corresponde ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y
for n=1:N
F1=feval(f,x(n),y(n));
F2=feval(f,x(n)+(h/2),y(n)+(h*F1/2));
F3=feval(f,x(n)+(h/2),y(n)+(h*F2/2));
F4=feval(f,x(n)+h, y(n)+h*F3);
y(n+1)=y(n)+(h/6)*(F1+2*F2+2*F3+F4);
end
R=[x' y'];
Métodos Numéricos na Resolução de PVI’s. 70

PROGRAMA 5

%Processo preditor corrector de Adams-Bashforth-Moulton (de quarta ordem) para a


aproximação
%numérica da solução do PVI y´=f(x,y), com x pertencente
%ao intervalo [x0,X], com a condição inicial y(x0)=y0.

function A=abm(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
% X-limite lateral direito o intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%A=[x y] onde x corresponde ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y

% Lembrar que os 4 primeiros coordenadas de x e y devem ser obtidos por RK4


for n=1:3
F1=feval(f,x(n),y(n));
F2=feval(f,x(n)+(h/2),y(n)+(h*F1/2));
F3=feval(f,x(n)+(h/2),y(n)+(h*F2/2));
F4=feval(f,x(n)+h, y(n)+h*F3);
y(n+1)=y(n)+(h/6)*(F1+2*F2+2*F3+F4);

for n=4:N
%preditor
G1=feval(f,x(n),y(n));
G2=feval(f,x(n-1),y(n-1));
G3=feval(f,x(n-2),y(n-2));
G4=feval(f,x(n-3),y(n-3));
p=y(n)+(h/24)*(55*G1-59*G2+37*G3-9*G4);
Métodos Numéricos na Resolução de PVI’s. 71

%corrector
y(n+1)=y(n)+(h/24)*(9*feval(f,x(n+1),p)+19*G1-5*G2+G3);

end
end
A=[x' y'];

PROGRAMA 6

%Método de Adams-Bashforth (de quarta ordem) para a aproximação


%numérica da solução do PVI y´=f(x,y), com x pertencente ao
% intervalo [x0,X], com a condição inicial y(x0)=y0.

function B=ab(f,x0,X,y0,N)

% Entradas

% f- função f(x,y) (tipo string);


% x0- limite lateral esquerdo do intervalo;
%X- limite lateral direito o intervalo
% y0- condição inicial;
% N- número de passos;

% Saída

%B=[x y] onde x corresponde ao vector das abcissas e


% y corresponde ao vector das ordenadas.

%definir h
h=((X-x0)/N);
% Definir vectores coluna de y e x
x=zeros(1,N+1);
y=zeros(1,N+1);
y(1)=y0;
%definir os nós
x=x0:h:X;
%cálculo de y

% Lembrar que os 4 primeiros coordenadas de x e y devem ser obtidos por RK4

for n=1:3
F1=feval(f,x(n),y(n));
F2=feval(f,x(n)+(h/2),y(n)+(h*F1/2));
Métodos Numéricos na Resolução de PVI’s. 72

F3=feval(f,x(n)+(h/2),y(n)+(h*F2/2));
F4=feval(f,x(n)+h, y(n)+h*F3);
y(n+1)=y(n)+(h/6)*(F1+2*F2+2*F3+F4);

for n=4:N
%preditor
G1=feval(f,x(n),y(n));
G2=feval(f,x(n-1),y(n-1));
G3=feval(f,x(n-2),y(n-2));
G4=feval(f,x(n-3),y(n-3));
y(n+1)=y(n)+(h/24)*(55*G1-59*G2+37*G3-9*G4);
end
end
B=[x' y'];

You might also like