Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Resoluc¸a˜o Nume´rica de Equac¸o˜es Diferenciais Ordina´rias (EDO) Ivanovitch Medeiros Dantas da Silva Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computac¸a˜o e Automac¸a˜o DCA0399 - Me´todos Computacionais para Engenharia Civil Natal, 09 de novembro de 2011 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Suma´rio 1 Introduc¸a˜o 2 Me´todo de Euler 3 Me´todos de Runge-Kutta Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Suma´rio 1 Introduc¸a˜o 2 Me´todo de Euler 3 Me´todos de Runge-Kutta Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Uma Equac¸a˜o Diferencial e´ uma equac¸a˜o que envolve derivadas de uma ou mais func¸o˜es. Elas servem para descrever o comportamento de sistemas dinaˆmicos e possuem enorme aplicac¸a˜o Engenharia - comportamento de um circuito ele´trico ou do movimento oscilato´rio de estruturas Biologia - crescimento de populac¸o˜es de bacte´rias Economia - aplicac¸o˜es financeiras Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Classificac¸a˜o Equac¸o˜es diferenciais sa˜o classificadas de acordo com o seu tipo, ordem ou grau. Equac¸a˜o diferencial ordina´ria - se uma equac¸a˜o diferencial envolve derivadas de uma func¸a˜o de uma u´nica varia´vel independente. F (x , y , dy dx , d2y dx , . . . , dny dx ) Equac¸a˜o diferencial parcial - se uma equac¸a˜o diferencial envolve derivadas parciais de uma func¸a˜o com duas ou mais varia´veis independentes. F (x1, . . . , xn, y , ∂y x1 , . . . , ∂y xn , ∂2y x1 , . . . , ∂2y xn , . . .) Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Significado gra´fico Suponha um polinoˆmio de quarto grau y = −0.5x4 + 4x3 − 10x + 8.5x + 1 Derivando-o, obtemos uma EDO dy/dx = −2x3 + 12x2 − 10 Essa equac¸a˜o tambe´m descreve o comportamento de polinoˆmio, sendo que de uma maneira diferente. Ao inve´s de descrever explicitamente o valor de y para cada valor de x, ela fornece a taxa de variac¸a˜o de y com relac¸a˜o a x. Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Significado gra´fico Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Embora possamos determinar uma equac¸a˜o diferencial dada a func¸a˜o original, o objetivo aqui e´ determinar a func¸a˜o original, dada a equac¸a˜o diferencial. A func¸a˜o original e´ a soluc¸a˜o do nosso problema. No exemplo anterior, podemos calcular a func¸a˜o original analiticamente y = ∫ (−2x3 + 12x2 − 10)dx = −0.5x4 + 4x3 − 10x + 8.5x + C Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Exemplo Problema: ana´lise de um corpo de massa m que cai com velocidade v(t). Este corpo sofre uma forc¸a de resisteˆncia do ar na forma Fr = c · v(t), onde c e´ o coeficiente de resisteˆncia. A forc¸a que leva o corpo para baixo F = P − Fr Sabendo que, P = m · g, F = m · a(t) e a(t) = dv(t)dt dv(t) dt = g − c m v(t) Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Resoluc¸a˜o A soluc¸a˜o para uma equac¸a˜o diferencial consiste em encontrar uma func¸a˜o que satisfac¸a a equac¸a˜o diferencial. A func¸a˜o na˜o deve conter derivadas nem diferenciais e ela pode ser uma soluc¸a˜o geral ou particular. Uma soluc¸a˜o geral de ordem n e´ uma soluc¸a˜o contendo n constantes de integrac¸a˜o independentes v(t) = d1e ct m + gm c Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Resoluc¸a˜o Uma soluc¸a˜o particular e´ obtida a partir da soluc¸a˜o geral, dando-se valores especı´ficos a`s constantes f (x0) = y0 f ′(x1) = y1 f ′′(x2) = y2 ... f (n−1)(n − 1) = yn−1 Se x0 = x1 = x2 = . . . = xn enta˜o o problema e´ dito ser de valor inicial, caso contra´rio e´ dito ser de contorno. Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Porque usar me´todos nume´ricos? A busca de uma soluc¸a˜o para uma equac¸a˜o diferencial ordina´ria com problema de valor inicial apresenta alguns problemas. Os procedimentos para a busca de uma soluc¸a˜o analı´tica na˜o e´ trivial. Muitas questo˜es pra´ticas na˜o possuem soluc¸a˜o conhecida. Os coeficientes ou as func¸o˜es existentes na equac¸a˜o diferencial sa˜o dados somente na forma de um conjunto tabelado de informac¸o˜es experimentais, o que torna impossı´vel o uso de um procedimento analı´tico para determinar a soluc¸a˜o da equac¸a˜o. Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Equac¸o˜es Diferenciais Me´todos nume´ricos Sera˜o tratados os me´todos nume´ricos de resoluc¸a˜o de equac¸o˜es diferenciais ordina´rias (EDO) com o problema do valor inicial (PVI). Esses me´todos apresentam a seguinte forma geral:{ dy(x) dx = f (x , y(x)) y(x0) = y0 Me´todo de Euler Me´todo de Runge-Kutta Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Suma´rio 1 Introduc¸a˜o 2 Me´todo de Euler 3 Me´todos de Runge-Kutta Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Introduc¸a˜o Dado uma equac¸a˜o diferencial ordina´ria de primeira ordem com problema de valor inicial{ dy(x) dx = f (x , y(x)) y(x0) = y0 e um conjunto de pontos x ∈ [a,b], pode-se aproximar a func¸a˜o y(x) (soluc¸a˜o desejada) por um polinoˆmio da se´rie de Taylor em torno de um valor xk pertencente ao intervalo [a,b]. y(x) = y(xk ) + y ′(xk ) (x − xk ) 1! + y ′′(xk ) (x − xk )2 2! + . . . Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Introduc¸a˜o Truncando a se´ria no segundo termo e fazendo x = xk+1 y(xk+1) ≈ y(xk ) + y ′(xk )(xk+1 − xk ) Pore´m, xk+1 − xk = h e y ′(xk ) = f (xk , y(xk )) y(xk+1) = y(xk ) + h · f (xk , y(xk )) yk+1 = yk + h · f (xk , yk ) onde k = 0, 1, 2, . . ., n-1. n e´ o nu´mero de subintervalos. Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Exemplo Resolver a seguinte EDO, onde x ∈ [0,1] e h = 0.25{ dy(x) dx = y − 2xy y(0) = 1 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Exemplo Primeiramente devemos encontrar a variac¸a˜o do ı´ndice k h = b − a n ⇒ n = 1− 0 0.25 = 4 Dessa forma, o ı´ndice k varia de 0 ate´ 3. f (xk , y(xk )) = yk − 2xkyk k = 0 x1 = x0 + h⇒ 0 + 0.25 = 0.25 f (x0, y0) = y0 − 2 · x0y0 ⇒ 1− 2 · 0 1 = 1 y1 = y0 + h · f (x0, y0)⇒ 1 + 0.25 · 1 = 1.25 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Exemplo k = 1 x2 = x1 + h⇒ 0.25 + 0.25 = 0.5 f (x1, y1) = y1 − 2 · x1y1 ⇒ 1.25− 2 · 0.25 1.25 = 0.85 y2 = y1 + h · f (x1, y1)⇒ 1.25+ 0.25 · 0.85 = 1.4625 k = 2 x3 = x2 + h⇒ 0.5 + 0.25 = 0.75 f (x2, y2) = y2 − 2 · x2y2 ⇒ 1.4625− 2 · 0.5 1.4625 = 0.77874 y3 = y2 + h · f (x2, y2)⇒ 1.4625 + 0.25 · 0.77874 = 1.6572 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Exemplo k = 3 x4 = x3 + h⇒ 0.75 + 0.25 = 1 f (x3, y3) = y3 − 2 · x3y3 ⇒ 1.6572− 2 · 0.75 1.6572 = 0.75222 y4 = y3 + h · f (x3, y3)⇒ 1.6572 + 0.25 · 0.75222 = 1.84526 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todo de Euler Exemplo Resolver a seguinte EDO, onde x ∈ [0,2] e h = 0.5 { dy(x) dx = yx 2 − y y(0) = 1 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Suma´rio 1 Introduc¸a˜o 2 Me´todo de Euler 3 Me´todos de Runge-Kutta Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Introduc¸a˜o Quanto menor o passo usado no me´todo de Euler menor o erro de truncamento. Muitas vezes o erro na˜o e´ satisfato´rio mesmo usando-se um passo muito pequeno. O me´todo de Euler na˜o e´ usado na pra´tica. Utilizam-se me´todos mais precisos Runge-Kutta de primeira ordem (me´todo de Euler) Runge-Kutta de segunda ordem Runge-Kutta de quarta ordem Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Segunda ordem Formato I (Euler melhorado) K1 = f (xj , yj) K2 = f (xj + h, yj + h · K1) yj+1 = yj + h2(K1 + K2) Formato II (Euler modificado) K1 = f (xj , yj) K2 = f (xj + h2 , yj + h 2 · K1) yj+1 = yj + h · K2 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Quarta ordem Dentre os me´todos de Runge-Kutta, e´ o mais popular K1 = f (xj , yj) K2 = f (xj + h2 , yj + h 2 · K1) K3 = f (xj + h2 , yj + h 2 · K2) K4 = f (xj + h, yj + h · K3) yj+1 = yj + h6(K1 + 2K2 + 2K3 + K4) Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Exemplo Resolver a EDO para x ∈ [0,1] e h = 0.1{ y ′ = x − y + 2 y(0) = 2 Calculando o nu´mero de subintervalos h = b − a n ⇒ n = b − a h = 1− 0 0.1 = 10 Portanto, j varia de 0 ate´ 9 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Exemplo Para j = 0 K1 = f (x0, y0) = x0 − y0 + 2 = 0− 2 + 2 = 0 K2 = f (x0 + h2 , y0 + h 2K1) = f (0 + 0.12 ,2 + 0.1 2 · 0) = f (0.05,2) = 0.05− 2 + 2 = 0.05 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Exemplo K3 = f (x0 + h2 , y0 + h 2K2) = f (0 + 0.12 ,2 + 0.1 2 · 0.05) = f (0.05,2.0025) = 0.05− 2.0025 + 2 = 0.0475 K4 = f (x0 + h, y0 + h · K3) = f (0 + 0.1,2 + 0.1 · 0.0475) = f (0.1,2.00475) = 0.1− 2.00475 + 2 = 0.09525 Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introduc¸a˜o Me´todo de Euler Me´todos de Runge-Kutta Me´todos de Runge-Kutta Exemplo y1 = y0 + h6(K1 + 2K2 + 2K3 + K4) = 2 + 0.16 (0 + 2 · 0.05 + 2 · 0.0475 + 0.09525) = 2.0048375 Esse procedimento deve ser repetido ate´ j = 9, ou seja, ate´ encontrar o y10. Ivanovitch Silva Resoluc¸a˜o Nume´rica de EDOs Introdução Método de Euler Métodos de Runge-Kutta
Compartilhar