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,10 − = 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