Professional Documents
Culture Documents
Métodos Numéricos na
Resolução de PVI’s
Aplicações com MATLAB
UNICV, 2009
ii
Métodos Numéricos na
Resolução de PVI’s
Aplicações com MATLAB
UNICV, 2009
iii
O Júri
O Orientador
O Arguente
O Presidente
Agradecimentos
Minha imensa gratidão a Deus por ter conseguido chegar até essa etapa.
ÍNDICE
INTRODUÇÃO/CONTEXTUALIZAÇÃO ........................................................................................ 8
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.
É 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).
(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
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.
4. Metodologias
CAPÍTULO I
1.1 Introdução
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.
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 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].
( )
F x, y, y´, y´´,..., y ( n ) = 0 (1.1)
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.
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.
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
Por outras palavras, a solução da EDO (1.1) é uma função y = y ( x ) , com derivadas até a
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 )
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 .
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.
N ( x, y ) y ′ + M ( x, y ) = 0 (1.4)
N ( x, y ) merecem uma atenção especial (AGUDO, 1992). O leitor pode ler [AGU92] para
melhor esclarecimento.
h ( y ) y′ = g ( x ) (1.5)
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 .
∂M ( x, y ) ∂N ( x, y )
= (1.6)
∂y ∂x
Método de Resolução
∂F ( x , y ) ∂F ( x , y )
= M (x, y) e = N (x, y) (1.7)
∂x ∂y
F ( x, y ) = C
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 ) ∂µ ( x, y ) N ( x, y )
= .
∂y ∂x
Métodos Numéricos na Resolução de PVI’s. 17
2007)
Método de resolução
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)
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:
y′ = f ( x, y ( x ) ) , x ∈ I
(1.8)
y ( x0 ) = y0
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 = ]−∞, +∞[ .
y´´+ y = 0
y ( 0) = 1 .
y´( 0 ) = 2
x
y ( x ) = y0 + ∫ f ( s, y ( s ) )ds (1.9)
x0
integral ou curva de soluções e, é obvio que uma tal curva é em cada um dos pontos
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
“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
Figura 1.1. Curvas soluções do exemplo 1.9 para c=0, c=1 e c=2
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
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.
f ( x, y2 ) − f ( x, y1 ) ≤ L y2 − y1 , ∀x ∈ Ω , ∀y1, y2 ∈ IR
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)
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
y ( xn ) (solução exacta),
yn ≅ y ( xn ) (solução aproximada).
CAPÍTULO II
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.
yn +1 = yn + hf n (2.1)
yn +1 = yn + hf n+1 (2.2)
Métodos Numéricos na Resolução de PVI’s. 24
h
yn +1 = yn + [ fn + f n+1 ] (2.3)
2
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
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.
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 .
y′ = f ( x, y ( x ) ) , x ∈ I
y ( x0 ) = y0
h2
y ( xn+1 ) = y ( xn ) + hy′ ( xn ) + y′′ (ξ n ) xn < ξ n < xn +1 (2.6)
2!
y1 = y0 + hf ( x0 , y0 ) (2.7)
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
(RAINER, 1998)
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
3−0
Essa iteração continua até atingir o último passo (que corresponde a N = = 12 )
0.25
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
h2
y ( xn − h ) = y ( xn ) − hy′ ( xn ) + y′′ ( xn ) − O ( h3 ) (2.10)
2!
equação de diferenças:
membros de (2.11) (pois f n+1 = f ( xn +1 , yn+1 ) ), pelo que ele é determinado de forma
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
Τn +1 (h)
quociente entre o erro de truncatura local e o tamanho do passo h ( i.e., tn +1 = ).
h
denominado por Erro de truncatura global (ou erro discretização global) ( en ( h ) ) .Os
local será a soma de todos os termos (ou resíduos) que não incluímos na solução
O termo
h2
Τn +1 ( h ) = y′′ ( ξ n ) = O ( h 2 ) (2.14)
2
h2
Τn +1 ( h ) = − y′′ (ξ n ) = O ( h 2 ) , xn < ξ n < xn+1
2
N
h2 h 2 hN ( X − x0 ) y′′ (ξ ) h = O h1
∑ y′′ (ξk )
k =1 2
≈ Ny (ξ ) =
′′
2 2
y′′ ( ξ ) h =
2
( )
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,
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
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.
O método de Heun‡ pode ser obtido pela combinação dos métodos de Euler explícito
e implícito
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
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
h
yn +1 = yn + ( f n + f ( xn+1 , yn + hf n ) (2.16)
2
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.
h2
y ( xn + h ) = y ( xn ) + hy′ ( xn ) + y′′ ( xn ) + O ( h3 ) (2.18)
2
ordem a x .
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
2.1.3.1 Erros
h p +1
y ( ) (ξ ) = O ( h p +1 )
n +1
Τn +1 ( h ) = (2.20)
( p + 1)!
lim tn +1 ( h ) = 0 (2.21)
h →0
1
onde tn +1 ( h ) = Sup Τn +1 ( h )
h x{
≤n≤ x
0 N
tn +1 ≤ ch p , 0≤c≤∞ (2.22)
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).
yn +1 = yn + hφ ( xn , yn , f n ; h ) (2.23)
y ( xn +1 ) = y ( xn ) + hφ ( xn , yn , f n ; h ) + O ( h p +1 ) 0 ≤ n ≤ N −1 (2.24)
a solução exacta.
f ( xn , yn ) + f ( xn +1 , yn + hf ( xn , yn ) )
• No método de Heun φ ( xn , yn , f n ; h) =
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)
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 §.
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
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)
1
ω1 + ω2 = 1 e ω2α 2 = ω2 β 21 = (2.30)
2
que existem várias possibilidades de métodos de Runge Kutta de 2ª ordem. (PINA, 1995)
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.
α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
se, esta matriz não for triangular inferior, i.e., existe pelo menos um j > i tal que βij =/ 0 .
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 .
yn +1 = yn + hω1 F1 , F1 = f ( xn , yn ) (2.34)
yn +1 = yn + hF1
(2.35)
F1 = f ( xn , yn )
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 )
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 )
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
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 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.
Τn +1 ( h ) = O ( h p +1 ) (2.41)
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.
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
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.
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)
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.
CAPÍTULO III
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
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,
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
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.
xn+1
y ( xn +1 ) = y ( xn ) + ∫ f ( s, y ( s ) )ds
xn
m
pm ( x ) = ∑ Ln − j ( x ) f n − j (3.1)
j =0
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)
1 xn+1
h ∫xn
γj = Ln − j ( x )dx (3.4)
Método desenvolvido por John Cauch Adams (1819-1892) para resolver uma equação diferencial criada
**
m
yn +1 = yn + h ∑ γ j f n − j (3.5)
j =0
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 ) .
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
yn +1 = yn + h f n − f n −1 ,
3 1
n ≥1
2 2
onde Wm = ( x − xn )( x − xn −1 ) ..... ( x − xn − m ) .
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
5 3
Τn +1 ( h ) = h f ′′ ( ξ, y ( ξ ) ) .
12
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).
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
≤ m + 1.
m +1
yn +1 = yn + h ∑ γ j f n − j +1 (3.10)
j =0
††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 ) .
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
h
yn +1 = yn + ( 5 f n+1 + 8 f n − f n−1 )
12
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
1 4
Τn +1 ( h ) = − h f ′′′ ( ξ, y ( ξ ) ) ,
24
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
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
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
(geralmente explícito) para estimar yn( 0+)m é conhecido como preditor, sendo o método
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 .
y0 é dado;
y1 , y2 , y3 são determinados por um método de passo simples
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
*
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 .
y ( x ) = −e − x + x 2 − 2 x + 2 .
A resolução desse exemplo foi feita recorrendo aos Programas 1 a 6 do anexo 2).
xn h = 0.125 y ( xn ) Exacta
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 .
xn h = 0.5 y ( xn ) Exacta
ABM RK4
CONCLUSÃO
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.
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.
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.
MORAIS, V., & VIEIRA, C. (2006). MATLAB 7 & 6 Curso Completo. FCA.
QUORTERONI, A., SACCO, R., & SALERI, F. (2007). Texts in Applied Mathematics.
Numerical Mathematics (2ª ed.). 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.
[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.
[QUO07] QUORTERONI, A., SACCO, R., & SALERI, F. (2007). Texts in Applied Mathematics.
Numerical Mathematics (2ª ed.). 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
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
Operadores Lógicos
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
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
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
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).
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
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,'+')
Figura 5
Métodos Numéricos na Resolução de PVI’s. 64
Exemplo
>> x=-pi:0.1:pi;
>> y=x;
>> [x,y]=meshgrid(x,y);
>> z=sin(cos(x+y));
>> mesh(z)
Figura 6
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)
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
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
% Saída
%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
% y(n+1)=y(n)+h*[f(x(n+1),y(n)+h*f(x(n),y(n))], n=0,1,2,...,N-1
function I=eulerimplicito(f,x0,X,y0,N)
% Entradas
% Saída
%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
% 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
function H=heun(f,x0,X,y0,N)
% Entradas
% Saída
%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
% 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
% Saída
%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
function A=abm(f,x0,X,y0,N)
% Entradas
% Saída
%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=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
function B=ab(f,x0,X,y0,N)
% Entradas
% Saída
%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: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'];