Baixe o app para aproveitar ainda mais
Prévia do material em texto
Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta Aula 8 1 Método de Runge-Kutta 1.1 Introdução Os métodos de Runge-Kutta são os mais usados para P.V.I., pois são simples e tem alta pre- cisão. A ideia básica destes métodos é aproveitar o que tem de bom na proposta de Taylor para o desenvolvimento de f (x) em termos de monomios, mas eliminar o cálculo das derivadas de f (x, y) o que computacionalmente inaceitável devido a sua lentidão. Vamos aos Métodos. 2 Método de Runge-Kutta de 2a. Ordem Considere o PVI: dy dx = f (x, y) y(x0) = y0 Queremos determinar uma solução para o PVI em (a,b) contendo x0. Para isto, discretiza- mos o intervalo [a,b] em n partes iguais e calculamos y(xn), onde x0,x1, · · · ,xn são os pontos em [a,b] A˙ partir dai podemos ajustar uma função a este conjunto de pontos(veremos como fazer no próximo assunto). O Método de Runge-Kutta de segunda ordem consiste no processo iterativo: yn+1 = yn + h 2 ( k1+k2 ) onde: k1 = f (xn , yn) e k2 = f (xn +h, yn +h ∗k1) para i = 0,1,2,3, · · · e h o tamanho dos intervalos após discretização, isto é, h = x f −x0 n . Exemplo 2.1 Determine uma solução aproximada de PVI, para d y dx =−xy ; y(0)= 1, no inter- valo [0,1] utilizando Runge-Kutta de segunda ordem com h = 0,1 Para o caso , k1 =−xn yn , k2 =−(xn +0,1)(yn +0,1∗k1) e yn+1 = yn + 0,1 2 ( k1+k2 ) temos : Tabela a seguir, foi gerada através do Excel, usando o código VBA(ver código logo abaixo da tabela) Curso de Engenharia ©2014 1 Prof. Roberto Capistrano Prof José Vicente Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta i x yn k1 k2 yn+1 0 0 1 0 -0,1 1 1 0,1 0,995012 -0,0995 -0,19701 0,995 2 0,2 0,980199 -0,1960349 -0,28817 0,980175 3 0,3 0,955997 -0,28678926 -0,37091 0,955964 4 0,4 0,923116 -0,36923161 -0,44308 0,923079 5 0,5 0,882497 -0,44123177 -0,503 0,882464 6 0,6 0,83527 -0,50115105 -0,5496 0,835252 7 0,7 0,782705 -0,54790009 -0,58234 0,782714 8 0,8 0,726149 -0,58096194 -0,6013 0,726202 9 0,9 0,666977 -0,6003806 -0,60705 0,66709 10 1 0,606531 0,606718 Tabela 1: Exemplo extraído do livro Fundamentos de Cálculo Numérico para Engenheiros - Qua- dros e Bertoli ’Programa construida pelo Prof. Roberto Capistrano/Prof. José Vicente ’Utlizada nas aulas de Cálculo Numérico do UNIPE Sub Runge_Kutta() Range("A10:I200").Clear x = Cells(1, 2).Value y = Cells(2, 2).Value h = Cells(3, 2).Value imax = Cells(4, 2).Value Cells(10, 1).Value = 0 Cells(10, 2).Value = x ’=t nas aplicações Cells(10, 3).Value = FO(x) ’analítica Cells(10, 6).Value = y For i = 1 To imax Step 1 k1 = F(x, y) k2 = F(x + h, y + h * k1) y = y + (h / 2) * (k1 + k2) x = x + h Cells(10 + i, 1).Value = i Cells(10 + i, 2).Value = x Cells(10 + i, 3).Value = FO(x) ’analítica Cells(10 + (i - 1), 4).Value = k1 Cells(10 + (i - 1), 5).Value = k2 Curso de Engenharia ©2014 2 Prof. Roberto Capistrano Prof José Vicente Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta Cells(10 + i, 6).Value = y ’aproximações Next i End Sub Function F(x, y) F = -x * y ’equação em estudo End Function Function FO(x) ’ equação analítica FO = Exp(-x 2/2) End Function 3 Método de Runge-Kutta de 4a. Ordem O método de Runge-Kutta que é mais usado na engenharia(tecnologias de forma geral), é o de quarta ordem, por combinar, simplicidade, e alta precisão, além de não precisar calcular deri- vadas de ordem superior(torna lento o processo) e, é fácil de trocar o tamanho do intervalo(passo). Este método é descrito pelo processo iterativo: yn+1 = yn + h 6 ( k1+2k2+2k3+k4 ) , onde k1 = f (xn , yn); k2 = f ( xn+h 2 , yn+h 2 k1 ) ; k3 = f ( xn+h 2 , yn+h 2 k2 ) ; k4 = f (xn+h, yn+hk3). Exemplo 3.1 Determine uma solução aproximada de PVI, para d y dx =−xy ; y(0)= 1, no inter- valo [0,1] utilizando Runge-Kutta de quarta ordem com h = 0,1 Para o caso, o processo escreve-se : yn+1 = yn + 0,1 6 ( k1+2k2+2k3+k4 ) , com : k1 =−(xn yn); k2 =−(xn +0,05)(yn +0,05∗k1); k3 =−(xn +0,05)(yn +0,05∗k2) e k4 =−(xn +0,01)(yn +0,01∗k3); Iniciando as iterações com x0 = 0 e y0 = 1, obtemos os resultados : Tabela gerada através do Excel, usando o código VBA - Runge-Kutta de 4a. ordem(ver código logo abaixo da tabela) Curso de Engenharia ©2014 3 Prof. Roberto Capistrano Prof José Vicente Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta i x yn k1 k2 k3 k4 yn+1 0 0 1 0 -0,05 -0,049875 -0,0995013 1 1 0,1 0,995012 -0,09950125 -0,148506 -0,14813808 -0,1960397 0,995012 2 0,2 0,980199 -0,19603973 -0,242599 -0,242017179 -0,2867991 0,980199 3 0,3 0,955997 -0,28679924 -0,32958 -0,328831466 -0,3692457 0,955997 4 0,4 0,923116 -0,36924654 -0,407094 -0,406242733 -0,441246 0,923116 5 0,5 0,882497 -0,44124845 -0,473239 -0,472359224 -0,5011566 0,882497 6 0,6 0,83527 -0,50116213 -0,526638 -0,525809906 -0,5478825 0,83527 7 0,7 0,782705 -0,54789318 -0,566482 -0,565785316 -0,5809008 0,782705 8 0,8 0,726149 -0,58091924 -0,592538 -0,592043844 -0,6002502 0,726149 9 0,9 0,666977 -0,60027916 -0,605115 -0,604885052 -0,6064883 0,666977 10 1 0,606531 0,606531 Tabela 2: Exemplo extraído do livro Fundamentos de Cálculo Numérico para Engenheiros - Qua- dros e Bertoli Comentário: O método de Euler não é usado em razão de precisarmos usar intervalos pequenos para obter uma boa aproximação. Os métodos de passo mmúltiplo como de ADAMS e o de predição correção são pouco utilizados na engenharia, pois a ordemde aproximação é amesma da de Runge- Kutta de quarta-ordem ’Programa construido pelo Prof. Roberto Capistrano/Prof. José Vicente ’Utilizado nas aulas de Cálculo Numérico do UNIPE Sub Euler_Sis() Range("A10:I200").Clear x = Cells(1, 2).Value y = Cells(2, 2).Value h = Cells(3, 2).Value imax = Cells(4, 2).Value Cells(10, 1).Value = 0 Cells(10, 2).Value = x ’=t nas aplicações Cells(10, 3).Value = y Cells(10, 8).Value = FO(x) ’analtico For i = 1 To imax Step 1 k1 = F(x, y) k2 = F(x + h / 2, y + k1 * h / 2) k3 = F(x + h / 2, y + k2 * h / 2) Curso de Engenharia ©2014 4 Prof. Roberto Capistrano Prof José Vicente Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta k4 = F(x + h, y + k3 * h) y = y + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6 x = x + h Cells(10 + i, 1).Value = i Cells(10 + i, 2).Value = x Cells(10 + i, 3).Value = y ’função em estudo Cells(10 + i, 4).Value = k1 Cells(10 + i, 5).Value = k2 Cells(10 + i, 6).Value = k3 Cells(10 + i, 7).Value = k4 Cells(10 + i, 8).Value = FO(x) ’função análitica Next i End Sub Function F(x, y) F = (-x) * y ’ inserir a equação End Function Function FO(x) ’ analítica FO= Exp(−x2/2) ’ inserir a equação exata End Function 4 Exercícios Propostos (EP1) Para o PVI 5xy ′ = y2− 2 = 0; y(4) = 1 encontre uma solução aproximada para y(x) em [4.0,4.5] usando Runge-Kutta de 2a. ordem e de quarta ordem com h = 0.1 . (EP2) Considere o PVI: y ′ = 1− y x y(2) = 2. Encontre y(2.1) pelo método de Euler e por Runge- Kutta, analisando os resultados, com h = 0.1 e h = 0.05. (EP3) Dado P.V.I. y ′ = 0,04y y(0)= 100. Encontre y(1) usando o método de Euler e Runge- Kutta de segunda e quarta ordem, com h = 0,25. (EP4) Considere o P.V.I. y ′ = cos(x)+1 y(0)=−1. Calcule y(2) aproximadamente através do Curso de Engenharia ©2014 5 Prof. Roberto Capistrano Prof José Vicente Centro Universitário de João Pessoa UNIPÊ Aula - 3o Estágio Cálculo Numérico Método de Runge-Kutta método de Euler e Runge-Kuta de segunda e quarta ordem para h = 0,5e h = 0,25. (EP5) Encontre um valor aproximado para y(0,1) com quatro dígitos, onde y ′ = xy + 1, e y(0)= 1. (EP6) Resolva a E.D.O. x ′′+20x ′+125x = 9t ; x(0)= 1 e x ′(0)= 0, usando Euler com h = 0,2 e h = 0,1. (EP7) Determinar uma solução aproximada em [4 ; 5] para x ′′+ 5t x ′+ x2 = 1 e x(4) = 1 e x ′(4)= 1, usando Euler com h = 0,25 e h = 0,2. (EP8) Encontre uma solução aproximada no intervalo [0 ; 2] para o sistema x ′ = t x−4y onde x(0)= 4 e y(0)= 1 y ′ = −9x+7y use Euler com h = 0,5 e h = 0,2 Curso de Engenharia ©2014 6 Prof. Roberto Capistrano Prof José Vicente
Compartilhar