2 Sol Num de EDO

Propaganda
7– Solução Numérica de E.D.O.’s
7.1 – Introdução
Até este ponto, discutimos métodos de resolução de equações diferenciais mediante
técnicas analíticas como a integração. Em geral, buscamos uma expressão exata para a solução.
Mas em muitos problemas importantes da engenharia e da ciência, especialmente não lineares,
estes métodos não se aplicam, ou são de utilização muito complicada. Aqui, discutiremos a
aplicação de procedimentos numéricos a fim de conseguir uma aproximação (muitas vezes mais
precisa) da solução exata de uma e.d.o..
7.2 – Equações de Diferença de 1a Ordem
Embora um modelo contínuo que leva a uma equação diferencial seja razoável e atraente
em muitos problemas, há casos em que um modelo discreto pode ser mais natural. Em algumas
circunstâncias, o crescimento de algumas populações pode ser descrito com maior exatidão por
um modelo discreto e não por um modelo contínuo. É o que ocorre, por exemplo, com as espécies
cujas gerações sucessivas não se superpõem e que se propagam em intervalos regulares, e em
certas épocas especiais do ano. Neste caso, a população y n+1 no ano n+1 é função da população
y n do ano anterior, isto é,
y n+1 = f ( n, y n ) ,
n = 0,1,2,...
(1)
Definição 7.2.1: A equação (1) é uma equação de diferença de primeira ordem. É de 1a ordem
pois o valor de y n+1 depende do valor de y n , mas não dos valores y n−1 , y n− 2 , etc. Como no caso
das e.d.o., (1) é linear se f for uma função linear de y n ; se não for, a equação será não-linear.
Definição 7.2.2: Uma solução de (1) é uma seqüência de números y 0 , y1 , y 2 ,... que satisfaz à
equação para cada n. Além de (1), pode haver também uma condição inicial
y0 = α
(2)
que fixa o primeiro termo da seqüência solução.
Vamos admitir, para considerações iniciais, que a função de (1) dependa somente de y n ,
mas não de n. Neste caso
y n+1 = f ( y n ) , para n = 0, 1, 2, ... .
(3)
Se y 0 for dada, os termos sucessivos da solução podem ser calculados por (3). Assim
y1 = f ( y0 )
e
y 2 = f ( y 1 ) = f [ f ( y0 )]
Assim, o último termo da expressão acima representa a segunda iterada da equação de
diferença e simbolizada, às vezes, por f 2 ( y 0 ) . Analogamente, a terceira iterada y 3 é dada por
y 3 = f ( y 2 ) = f { f [ f ( y 0 )}} = f 3 ( y 0 ) .
Prosseguindo com o processo, obtém-se a enésima iterada dada por
y n = f ( y n−1 ) = f n ( y 0 ) .
O que se torna interessante neste processo é a verificação do comportamento de y n quando
n → ∞ , isto é, se y se aproxima de um limite, e se for possível, encontrá-lo.
145
Definição 7.2.3: As soluções para as quais y n tem sempre o mesmo valor para todos os n, são as
soluções de equilíbrio.
Se houver uma solução de equilíbrio, é possível encontrá-la fazendo y n+1 igual à y n em (3)
resolvendo a equação resultante
yn = f ( yn )
(4)
em y n .
7.2.1 – Equações Lineares
Suponhamos que a população de uma certa espécie, numa dada região, no ano de n+1,
denotada por y n+1 , é um múltiplo positivo ρ n da população y n no ano n, isto é,
y n+1 = ρ n y n ,
n = 0, 1, 2, ...
(5)
A taxa de reprodução ρ n pode diferir de ano para ano. A equação diferença (5) é linear e pode ser
resolvida, por iteração. Obtemos:
y1 = ρ 0 y 0
y 2 = ρ1 y 1 = ρ1 ρ 0 y 0
e mais geralmente
y n = ρ n−1...ρ 0 y 0 ,
n = 1, 2, ...
(6)
Assim, se a população inicial y 0 for dada, a população de cada geração sucessiva está
determinada por (6).
Observações:
1. Embora num problema populacional ρ n seja intrinsecamente positiva, a solução de (6) também
é válida com ρ n negativa para alguns valores de n.
2. Se ρ n for nula para um certo n, então y n+1 e todos os valores sucessivos de y serão nulos; em
outras palavras, a espécie se extinguiu.
Se a taxa de reprodução ρ n tiver o mesmo valor de ρ para qualquer n, então a equação
diferença (5) fica
y n+1 = ρ y n
(7)
e a sua solução é
yn = ρ n y0
(8)
A equação (7) tem também uma solução de equilíbrio, ou seja y n = 0 para todos os n,
correspondendo ao valor inicial y 0 = 0 . O comportamento de y n no limite é determinado por (8).
Tem-se que:
se | ρ |< 1
0,


yn = 
y0 ,
lim
n→ ∞
não existe,

se ρ =1
em qualquer outro caso.
146
(9)
Em outras palavras, a solução de equilíbrio y n = 0 é assintoticamente estável para | ρ | < 1
e instável para | ρ | >1 .
Ainda trabalhando com este modelo, vamos modificá-lo a fim de incluir o efeito de
imigração ou da emigração. Se bn for o crescimento líquido da população no ano n devido a
imigração, então a população no ano n+1 será igual a soma do crescimento devido à reprodução
natural com o crescimento devido a imigração. Assim
y n+1 = ρy n + bn , n = 0, 1, 2, ...,
(10)
onde é admitido que a taxa de reprodução é constante igual a ρ . Iterando da mesma forma que no
problema anterior, chegamos à:
y1 = ρ y0 + b0
y 2 = ρ ( ρy 0 + b0 ) + b1 = ρ 2 y0 + ρb0 + b1
y 3 = ρ ( ρ 2 y0 + ρb0 + b1 ) + b2 = ρ 3 y 0 + ρ 2 b0 + ρb1 + b2 ,
e assim sucessivamente. Em geral, obtemos:
n −1
y n = ρ n y 0 + ρ n−1b0 + ... + ρ bn− 2 + bn −1 = ρ n y 0 + ∑ ρ n −1− j b j .
(11)
j= 0
A primeira parcela no segundo membro de (11) representa os descendentes da população
original, enquanto as outras parcelas representam a população, no ano n, resultante da imigração
em todos os anos precedentes.
No caso de bn = b para todos os valores de n, a equação diferença é:
y n+1 = ρ. y n + b ,
(12)
e por (11) a sua solução é:
y n = ρ n y 0 + (1 + ρ + ρ 2 + ... + ρ n−1 )b .
(13)
Se ρ ≠ 1 , podemos escrever esta solução de forma mais compacta
yn = ρ n y0 +
1− ρn
b.
1− ρ
(14)
Podemos reescrever (14) como
b
b
)+
,
(15)
1 − ρ 1− ρ
onde o comportamento de y n a longo prazo fica mais evidente. De (15) vem que se | ρ | <1 , então
b
b
yn →
e que, nos outros casos, y n não tem limite. A grandeza
é uma solução de
(1 − ρ )
1− ρ
equilíbrio de (12). É claro que (14) não vale para ρ = 1 . Para verificar que isto realmente ocorre,
faremos ρ = 1 em (13). Com isto chegamos à:
y n = y 0 + nb
e neste caso y n fica ilimitada quando n → ∞ .
O mesmo modelo y n+1 = ρ n yn + bn também proporciona um esquema para resolver muitos
problemas de caráter financeiro. Nestes problemas, y n é o montante no enésimo período de
tempo, ρ n = 1 + rn , onde rn é a taxa de juros do período, e bn é o depósito, ou a retirada, do
período.
y n = ρ n ( y0 −
147
Exemplo 7.2.1:
Um cidadão toma um empréstimo de R$ 10.000,00 para efetuar uma compra. Se a taxa de
juros reais for 12% ao ano, qual o pagamento mensal necessário para amortizar o empréstimo em
quatro anos?
Solução:
Basicamente, a equação diferença é a (12), onde yn é o montante no enésimo mês, ρ é a
taxa de juros por mês e b é a prestação mensal. Note-se que b é negativa e que ρ = 1,01 ,
correspondente a taxa de juros de 1% ao mês.
A solução da equação diferença (12), com este valor de ρ e com a condição inicial y 0 =
10.000, é dada por (15), ou seja,
y n = (1,01) n (10.000 + 100b) − 100b .
(17)
A prestação b necessária para a amortizar o empréstimo em quatro anos pode ser calculada
fazendo-se y 48 = 0 e resolvendo a equação em b, o que dá
(1,01) 48
= −263,34 .
(18)
(1,01) 48 − 1
O montante total pago pelo empréstimo é igual a 48 vezes b, ou seja
R$ 12.640,32. Deste montante, R$10.000,00 é o pagamento do principal e o restante R$ 2.640,32
é o pagamento dos juros.
b = −100
7.2.2 – Equações Não Lineares
As equações de diferenças não lineares são muito mais complicadas e têm soluções muito
mais variadas do que as equações lineares. Restringiremos nosso atenção à uma equação de
diferença logística
 y 
y n+1 = ρ y n 1 − n  ,
(19)
k 

análoga a equação diferencial logística1
dy
y

(20)
= r y 1 −  .
dt
K

onde r é uma constante de proporcionalidade.
dy
Observe que se
for substituída pela diferença ( y n+1 − y n ) / h , a equação (20) se reduz à
dt
(1 + hr) K
(19) com ρ = 1 + hr e k =
. Para simplificar um pouco mais, podemos mudar a escala
hr
y
da variável através de uma mudança de variável u n = n . Então a equação (19) fica
k
u n+1 = ρu n (1 − u n )
(21)
onde ρ é um parâmetro positivo.
1
Chama-se taxa de crescimento de y =
φ (t ) (ou de declínio) à
dy
dt = ry . Se levarmos em conta
que a velocidade de crescimento depende da população, trocamos r por h(y), uma função de y,
onde na maioria das vezes, h(y) = (r-ay). Com esta modificação, esta equação denomina-se
equação logística.
148
Investigaremos (21), procurando as soluções de equilíbrio ou constantes. É possível
dy
encontrá-las fazendo u n+1 = u n em (21), o que corresponde a fazer
= 0 em (20). A equação
dt
resultante é
u n = ρu n − ρu n2
(22)
de modo que de (21) se conclui que a soluções de equilíbrio são:
ρ −1
un = 0 e un =
.
(23)
ρ
A questão seguinte é saber se as soluções de equilíbrio são estáveis ou instáveis, ou seja,
dada uma condição inicial na vizinhança de uma solução de equilíbrio, a seqüência de soluções se
aproxima ou se afasta da solução de equilíbrio. Uma forma de examinar esta questão é aproximar
(21) por uma equação linear na vizinhança das solução de equilíbrio u n = 0 ; por exemplo, a
função u n2 é pequena em comparação com u n e podemos desprezar o termo quadrático em (21)
diante dos termos lineares, o que nos leva a uma equação diferença linear
u n+1 = ρu n
(24)
que presumivelmente é uma boa aproximação de (21) se u n estiver suficientemente próxima de
zero2 . Assim a solução de equilíbrio u n = 0 é assintoticamente estável para a aproximação linear
(24), com ρ neste intervalo, e então concluímos que também é uma solução assintoticamente
estável para a equação não-linear completa (21)3 .
Na figura abaixo, temos a representação gráfica do cálculo de algumas iteradas u n+1 para
certos valores de ρ = 0.8, 1.5, 2.8 e u 0 = 0.3, 0.85, 0.3 respectivamente:
ρ = 0.8 e u 0 = 0.3
2
Já vimos que (24) é a equação (7) e já concluímos , em (9), que
u n → 0, quando n → ∞ , somente se ρ < 1 ,
ou, como ρ deve ser positiva, se 0 < ρ < 1.
3
Esta conclusão está correta, embora o argumento não esteja completo. Falta um teorema que afirme a semelhança
entre as soluções da equação não-linear (21) e as soluções da equação linear.
149
ρ = 1.5 e u 0 = 0.385
ρ = 2.8 e u0 = 0.3
7.3 – Métodos de Passo Múltiplo e Predictor-Corretor
Os métodos que estudaremos se baseiam em:
 y ' = f ( x, y)
Dado o PVI: 
(1)
 y( x0 ) = y 0
construímos x1 , x2 , ..., xn que, embora não necessariamente, para nós serão igualmente espaçados,
ou seja, x i+1 − xi = h, i = 0, 1, ..., e calculamos as aproximações yi ≈ y ( x i ) nestes pontos, usando
informações anteriores.
Se, para calcular yj usamos apenas yj-1 teremos um método de passo simples ou passo um.
Porém, se usarmos mais valores, teremos um método de passo múltiplo.
Como estamos trabalhando com PVI de primeira ordem, temos uma aproximação inicial
y(x0 ) para a solução. Assim, os métodos de passo um são classificados como auto-iniciantes. Já
para os métodos de passo múltiplo temos de lançar mão de alguma estratégia (como usar métodos
de passo simples) para obtermos as aproximações iniciais necessárias.
Outras características dos métodos de passo simples são:
i) em geral temos de calcular o valor de f(x,y) e suas derivadas em muitos pontos;
ii) temos dificuldades em estimar o erro.
150
7.3.1 – Métodos de Passos Um (ou Passo Simples)
7.3.1.1- O Método de Euler
Um método numérico que podemos aplicar à solução aproximada de um PVI da forma (1)
é o método de Euler , o qual consiste em: como conhecemos x 0 e y 0 = y ( x 0 ) , então sabemos
calcular y 0' = f ( x 0 , y 0 ) . Assim a reta que passa por ( x0 , y 0 ) com coeficiente angular y ' ( x0 ) ,
denotada por r0 ( x) é conhecida:
r0 ( x ) : y 0 ( x ) = y( x0 ) + ( x − x 0 ) y ' ( x 0 )
Escolhido h = x k +1 − x k , y ( x1 ) ≈ y1 = r0 ( x1 ) = y 0 + hy ' ( x0 ) , ou seja,
y1 = y0 + hf ( x 0 , y 0 )
O raciocínio é repetido com ( x1 , y1 ) e y 2 = y1 + hf ( x1 , y1 ) e assim, sucessivamente, o
método de Euler nos fornece:
y k +1 = y k + hf ( xk , y k ) , k = 0, 1, 2, ...
Consideremos por exemplo a E.D.O. y ' = e x :
Exemplo 7.3.1:
Para ilustrar a utilização deste método, consideremos o PVI:
 ' x − y
y =

x
 y ( 2) = 2,
para x ∈ [2; 2,3].
151
(*)
Exemplo 3:
 dy
Calcule a solução aproximada de  dx = f ( x, y ) = − xy

y ( 0) = 1
tomando h = 0,1 e I = [0, 1].
De (*), obtém-se: y l = yl −1 + h( xl −1 . y l−1 ) onde l = 1, 2, ..., 10. ( l =
1− 0
= 10) .
0,1
Como x 0 = 0 e y 0 = 1 , obtemos:
l
0
1
2
3
4
5
6
7
8
9
10
xl
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
yl
1
1
0,99
0,9702
0,941094
0,903450024
0,858277728
0,8067811064
0,75030639
0,690281879
0,62815651
− xl yl
Solução exata: y = e
0
-0,1
-0,198
-0,29106
-0,3764376
-0,451725512
-0,514966637
-0,564746745
-0,600245112
-0,621253691
-0,62815651
152
1,0
0,995012479
0,9801198673
0,955997482
0,923116346
0,882496903
0,835270211
0,782704538
0,726149037
0,666976811
0,606530660
2
−x 2
Observação:
O erro cometido no 1O intervalo é carregado para o 2O intervalo. No 3O intervalo, carregamos o
erro para o 1O e o 2O intervalos e assim por diante.
Solução para este problema: tomar mais termos da expansão em série de Taylor acarretaria numa
melhor aproximação de y(x).
Desvantagem: Calcular mais derivadas de f ( x, y( x)) .
Exemplo 7.3.2:
 y'= x − y + 2
Resolva o P.V.I. 
 y( 0) = 2
na malha [0,1], com h = 0,1 e calcule o erro em cada
ponto.
Solução:
Temos
x 0 = 0,
y0 = 2,
a = 0,
b = 1,
l=
1− 0
= 10
0,1
Para j = 0
y1 = y0 + hf ( x 0 , y 0 ) = y 0 + h( x0 − y 0 + 2)
y1 = 2 + 0,1( 0 − 2 + 2) = 2 ,
Obs.: Solução algébrica y ( x ) = x + 1 + e − x
Exemplo 7.3.4:
Resolva a equação diferencial:
 dy
=x+ y
 dx
 y (0) = 1
153
x
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
y
1,0
1,1
1,22
1,362
1,5282
1,721
1,9431
2,1974
2,4871
2,8158
3,1874
y'
1,0
1,2
1,42
1,662
1,9282
2,221
2,5431
2,8974
3,2871
3,7158
4,1874
Mudando a variação no incremento de x nos leva à:
x 1,5
2,0
2,5
y 5,8543
10,4548
18,1689
A solução exata da e.d.o. é y ( x ) = 2e x − x + 1 , e pode-se determinar os valores para um
certo x, confrontando as soluções:
x
0
0,5
1,0
1,5
2,0
2,5
y (Euler)
1,0
1,7210
3,1874
5,8543
10,4548
18,1689
Y (Exata)
1,0
1,7974
3,4366
6,4634
11,7781
28,8650
Observação: Nós notamos que os valores encontrados através de método de Euler estão muito
distantes dos verdadeiros valores.
Para superar os erros do Método de Euler pode ser modificado para dar melhores
resultados. Esta modificação consiste de determinar os valores médios da derivada sobre o
intervalo x por uma série de aproximações sucessivas. O procedimento é como se segue:
'
a. calcule y 00
= f (x 0 , y 0 )
e y10 = y 0 + y '00∆x ;
1 '
b. calcule y10' = f ( x1 , y10 )
e ( y 00
+ y10' ) ;
2
1 '
'
c. calcule y11 = y 0 + ( y 00 + y10 ) ∆x
e y11' = f ( x1 , y11 );
2
1 '
1 '
d. calcule ( y 00
+ y11' )
e y12 = y 0 + ( y 00
+ y11' ) ∆x .
2
2
Os cálculos prosseguem até que seja atingido o grau de precisão desejado.
O procedimento é então repetido para o próximo intervalo. Aplicando isto para o exemplo acima
podemos arranjar os cálculos como segue:
x
0
0,1
0,2
0,3
0,4
0,5
y i0
1,0
1,1
1,2316
1,3875
1,5704
1,7831
y i'0
1,0
1,2
1,4316
1,6875
1,9704
2,2831
yi1
yi'1
y i2
y i'2
y i2
1,1
1,2426
1,3997
1,5839
1,798
1,21
1,4426
1,6997
1,9839
2,298
1,1105
1,2432
1,4003
1,5846
1,7987
1,2105
1,4432
1,7003
1,9846
2,2987
1,1105
1,2432
1,4004
1,5849
1,7988
154
É aparente que os resultados precisos com o método de Euler foram obtidos somente após
um considerável serviço. O método é portanto recomendado somente para questões rápidas e
diretas.
Seja y ( x n+1 ) a solução exata da equação diferencial em x = x n+1 . Desejamos estimar a
grandeza do erro devido ao truncamento, rn+1 , definido por:
rn + 1 = y n + 1 − y ( x n + 1 ) .
(2)
Observamos que, se y0 é exato, como iremos considerar, teremos r0 = 0. Admitindo que
existem as derivadas apropriadas, podemos expandir y ( x n+1 ) para x = xn , usando o Teorema de
Taylor com resto:
h2 "
y ( x n+1 ) = y ( x n ) + hy ' ( x n ) +
y (ξ n ), xn ≤ ξ n ≤ x n+1
(3)
2!
h2 "
A quantidade
y (ξ n ) é denominada “ Erro de Truncamento Local”, isto é, o erro cometido na
2!
única etapa de xn a xn+1 , admitindo que y e y’ sejam conhecidos, exatamente, para x = xn .
Subtraindo (3) de y n+1 = y n + hf ( xn , y n ), n = 0,1, ... obtemos:
h2 "
y n+1 − y( x n+1 ) = y n − y( xn ) + h[ f ( x n , y n ) − f ( xn , y( x n )] −
y (ξ n )
2!
e usando (2), chegamos à
h2 "
r n+1= rn + h[ f ( x n , y n ) − f ( x n , y ( xn )] −
y (ξ n ) .
2!
Pelo Teorema do valor Médio do Cálculo Diferencial, obtemos:
−
−
f ( x n , y n ) − f ( x x , y ( x n )) = f y ( xn , y n )( y n − y ( x n )) = f y ( x n , y n ) rn
−
onde y n está situado entre y n e y ( x n ) . Assim:
−
h2 "
r n+1= rn + hf y ( x n , y n ) rn −
y (ξ n )
2!
−
h2 "
r n+1= rn [1 + hf y ( xn , y n )] −
y (ξ n )
2!
Consideremos, agora, que ao longo do intervalo em questão
| f y ( x , y ) | < L e | y " ( x) | <Y .
Teorema 7.3.1:
Seja yn a solução aproximada do PVI (1) obtida pelo Método de Euler. Se a solução exata y(x) de
(1) possui uma derivada de segunda ordem no intervalo [x0 , b], e se nesse intervalo as
desigualdades
| f y ( x , y ) | < L e | y " ( x) | <Y
forem satisfeitas para constantes positivas L e Y limitadas, o erro rn = y n − y ( xn ) do método de
Euler, num ponto x n = x0 + nh é limitado como segue:
hY ( xn − x 0 ) L
| rn | ≤
[e
− 1] .
(4)
2L
Observação: Este teorema mostra que o erro tende a zero quando h → 0.
155
Exemplo 7.3.5:
Determinar um limite superior para o erro de truncamento, decorrente da aplicação do
método de Euler à solução da equação:
y ' = y, y (0) = 1, 0 ≤ x ≤ 1.
Solução:
df
Neste caso, f(x, y) = y;
= 1 e L =1.
dy
Também, uma vez que y(x) = ex , temos y”(x) = ex e | y" ( x) | ≤ e para 0 ≤ x ≤ 1. Afim de calcular
um limite para o erro em x = 1, temos x n − x0 = 1 e Y = e assim
he (1−0)1
he
| r (1) | ≤
(e
− 1) =
(e − 1) < 2, 4h ∴ | r (1) | < 2, 4h .
2(1)
2
Exemplo 7.3.6:
y

Resolva o P.V.I.  xy' = x − y = 1 − x e

y ( 2) = 2
encontre y(2,1) pelo método de Euler com:
a) h = 0,1
b) h = 0,05
c) h = 0,025
Solução: y n+1 = y n + hf ( x x , yn )
(Método de Euler)
y
h
y n+1 = y n + h − h n = h + (1 − ) y n
xn
xn
a) h = 0,1 ⇒ x0 = 2,0 ⇒ x1 = 2,1.
h
 0,1 
) y 0 = 0,1 + 1 −  2 ≈ 2,0.
x0
2

b) h = 0.05 ⇒ x 0 = 2.0 ⇒ x1 = 2.05 e x2 = 2.1 .
 0,05 
y ( x1 ) = y1 = 0,05 +  1 −
2 = 2
2 

 0,05 
y ( x 2 ) = y 2 = 0,05 + 1 −
.2 = 0,05 + 1,95121195 ≈ 2,0012195 .
 2,05 
c) h = 0.025 ⇒ x 0 = 2.0 ⇒ x1 = 2.025 , x 2 = 2,05, x3 = 2,075 e x 4 = 2,1
0,025 

y ( x1 ) = y1 = 0,025 +  1 −
.2 = 2 .
2 

 0,025 
y ( x 2 ) = y 2 = 0,025 + 1 −
.2 ≈ 2,0003085
 2,025 
y (2,1) ≈ y1 = h + (1 −
 0,025 
y ( x 3 ) = y 3 = 0,025 + 1 −
.2,0003085 = 2,0009145 .
2,05 

 0,025 
y ( x 4 ) = y 4 = 0,025 + 1 −
.2,0009145 = 2,0018071
 2,075 
156
7.3.1.2- Exercícios
6.3.1.2.1) Resolver numericamente, usando o método de Euler, os seguintes problemas de valor
inicial:
 y'= y 2 + 1
a) 
;
0 ≤ x ≤ 1; h = 0,2
 y( 0) = 0
 y ' = − xy
b) 
;
0 ≤ x ≤ 0,4; h = 0,2
 y (0) = 2
 y ' = −2 xy
c) 
;
0 ≤ x ≤ 0,6; h = 0,3
 y ( 0) = 1
(Usar duas casas decimais)
7.3.2- Método Previsor - Corretor
Seja o problema de valor inicial:
 y ' = f ( x, y )
.

 y( x0 ) = y 0
Se integrarmos a equação diferencial acima de x n−1 a x n teremos:
xn
xn
xn − 1
xn − 1
∫ y ' ( x)dx =
∫
xn
f ( x , y ( x )) dx ⇒ y ( xn ) − y ( xn −1 ) =
∫ f (x, y (x ))dx
xn − 1
Aproximando essa integral por meio da fórmula do Trapézio obtemos a fórmula
h
y ( x n ) = y ( x n−1 ) + [ f ( x n−1 , y ( x n−1 )) + f ( x n , y ( x n ))], n = 0,1, 2, ...
2
h3
h3
onde o erro que se comete é da ordem de −
f " ou −
y ' ' ' , o que representa um
12
12
aperfeiçoamento sobre o método de Euler.
Substituindo y ( x n ) e y ( x n−1 ) por y n e y n−1 , respectivamente, obtemos:
h
y n = yn −1 + [ f ( x n−1 , y n−1 ) + f ( xn , y n )] .
(1)
2
Mas (1), é uma equação implícita para y n , uma vez que y n aparece como um argumento
no segundo membro.
Se f ( x , y ) for uma função não-linear não teremos, em geral, condições de resolver (1) em
relação a y n de uma forma exata. Podemos, contudo, tentar obter y n através de iterações.
Mantendo xn fixo, podemos obter uma primeira aproximação y n(0 ) para y n através da fórmula de
Euler:
y n(0 ) = y n−1 + hf ( x n−1 , y n−1 )
(2)
Este método chamará previsor.
(0)
Calculamos, então, f (x n , y n ) e substituímos o valor encontrado no segundo membro para
obter a aproximação:
yn
(1)
= y n−1 +
[
(
h
(0 )
f ( xn −1 , yn −1 ) + f xn , yn
2
157
)]
(
(1)
)
A seguir calculamos f x n , y n
e usamos novamente a equação para obter uma nova
aproximação. A iteração é definida por:
h
(k)
(k −1 )
y n = y n−1 + f ( x n−1 , y n −1 ) + f x n , y n
, k = 1,2 ,3,...
2
Chamaremos esse método de corretor.
A iteração finaliza quando dois valores sucessivos satisfazem a precisão desejada.
[
)]
(
Resumo: Para a equação diferencial y´ = f ( x , y ) , y (x 0 ) = y 0 , com h conhecido e x n = x 0 + nh ,
para cada valor fixo n = 1, 2, 3,... :
= y n−1 + hf (x n −1 , y n−1 ) (Preditor),
h
(k)
2. Calcular y n , k = 1,2,... , usando y n ( k ) = y n−1 + f ( x n−1 , y n −1 ) + f x n , y n (k −1) ,
2
(Corretor)
(k )
( k −1)
yn − yn
iterando para valores crescentes de k , até que
determinado
< ε para um
(k)
yn
ε.
1. Calcular y n
( 0)
usando y n
(0 )
[
[
(
(
)]
)]
h
(k −1 )
f ( x n−1 , y n −1 ) + f x n , y n
, k = 1, 2, 3,... , é denominada,
2
algumas vezes, de iteração intermediária.
Obs.: A equação
yn
(k)
= y n−1 +
Duas questões que surgem naturalmente vinculadas às fórmulas corretoras são:
1. “Sob que condições convergirá a iteração intermediária correspondente a k ?”
2. “Quantas iterações serão necessárias para se atingir a precisão desejada ?”
A resposta à última pergunta dependerá de muitos fatores. Contudo, a experiência mostra
que somente uma ou duas aplicações da corretora são suficientes, desde que a amplitude do
intervalo h tenha sido selecionada adequadamente. Caso verifiquemos que uma ou duas
correções não são suficientes, será melhor reduzirmos a amplitude do intervalo h , ao invés de
prosseguirmos a iteração.
A resposta à primeira questão está contida no seguinte teorema:
Teorema 7.3.2 (Convergência para o Método Previsor-Corretor).
∂f
∂f
Se f (x , y ) e
forem contínuas em x e y no intervalo fechado [a , b] , e se
não se anular
∂y
∂y
h
nesse intervalo, a iteração intermediária definida por y n ( k ) = y n−1 + f ( x n−1 , y n −1 ) + f x n , y n (k −1)
2
2
convergirá, desde que h seja escolhido de modo a satisfazer: h <
.
∂f
∂y
Exemplo 7.3.7:
1
Resolver a equação y´ = x − ; y (0 ) = 1 , de x = 0 até x = 0,2 , usando o método Previsory
Corretor com h = 0,1 .
Solução:
[
158
(
)]
Etapa 1- Pelo Método de Euler:
y1
Por
yn
y1
y1
y1
y1
y1
(k)
(1)
(1)
= y n−1 +
[
(
h
(k −1 )
f ( x n−1 , y n −1 ) + f x n , y n
2
[
(
)]
(
)]
)] (C):
h
(0 )
f (x 0 , y 0 ) + f x1 , y1
2
0,1  1  
1 
=1+

 0 −  +  0,1 −
2  1  
0,9 
= y0 +
(1)
= 0,8994445 ( C)
(2 )
= y0 +
(2 )
 1
= y 0 + hf ( x 0 , y 0 ) = 1 + 0,10 −  = 0,9 (P)
 1
(0 )
[
h
(1)
f ( x 0 , y 0 ) + f x1 , y1
2
0,1  1  
1

=1+
  = 0,8994102 (C )
 0 −  +  0,1 −
2  1  
0,8994445  
Logo consideramos y1 = 0 ,8994 . (há uma igualdade de 4 casas)
Etapa 2 – Pelo Método de Euler:

1 
y 2 (0 ) = y1 + hf ( x1 , y1 ) = 0,8994 + 0,1 0,1 −
 = 0,7982 (P)
0,8994 

h
Por y n ( k ) = y n−1 + f ( x n−1 , y n −1 ) + f x n , y n (k −1) : (C)
2
h
(1)
(0)
y 2 = y1 + f ( x1 , y1 ) + f x 2 , y 2
2
0,1 
1  
1 
(1)
y 2 = 0,8994 +
 +  0,2 −
 = 0,7962 (C )
 0,1 −
2 
0,8994  
0,7982 
y2
y2
(2 )
(2 )
[
[
)]
(
)]
[
(
)]
(
h
(1)
f (x1 , y1 ) + f x2 , y 2
2
0,1 
1  
1 
= 0,8994 +
 +  0 ,2 −
 = 0,7960
 0,1 −
2 
0,8994  
0,7962 
= y1 +
Temos então y 2 = 0,7960 (C).
∂f
1
= 2
∂y y
e , em conseqüência, conforme o teorema, concluímos que h deve ser menor do que 2 y 2 . Não
conhecemos a solução y , mas está evidente, de acordo com as etapas acima, que y > 0,7 , no
Para verificar que as iterações intermediárias convergem para h = 0,1 , calculamos
intervalo [0; 0,2] . Portanto as iterações intermediárias convergirão se h < 2(0 ,7 ) = 0,98 .
2
159
7.3.2.1- Exercícios
6.3.2.1.1) Nos exercícios abaixo, utilize o método do previsor-corretor para obter uma
aproximação para a solução nos intervalos indicados:
 y'= x 2 + y
a) 
;
 y( 0) = 1
x ∈ [0, 0,4]; h = 0,2.
 y ' = y( x − y ) + 1
b) 
; x ∈ [0, 0,3]; h = 0,15.
y (0) = 1

 y ' = −2 xy
c) 
; x ∈ [0, 0,2];
 y ( 0) = 1
h = 0,1.
160
Download