Renato Assunção DCC, UFMG Derivada numérica Lembre da definição de derivada Como no caso da integral, a definição e’ uma operação de limite quando h 0 Uma estimativa simples e’ então tomar h ≈0 e usar a aproximação Este e’ chamado o método das diferença sucessiva (forward difference method) Precisão da diferença sucessiva Se f e’ diferenciavel duas vezes, podemos escrever sua expansao de Taylor de 2ª ordem: Onde ε (x, x+h) Entao Portanto, o erro de Dhf e’ Exemplo Considere a função e calcule f ' ( 2 ) Pelo método da diferença sucessiva: Por outro lado, sabemos do calculo que f ’(x)=1/(1+x2) e portanto Um método mais preciso Considere as seguintes DUAS expansões de Taylor: Isolando f ’ (x) encontramos: Isto produz o método da diferença simétrica Diferença simétrica Este método e’ uma media dos métodos de diferença sucessiva e diferença retroativa. Qual a precisão desta media? Como e O método da diferença simétrica tem um erro de aproximação igual a Extrapolação de Richardson Extrapolação de Richardson pode ser usada para melhorar qualquer método numérico que tenha a ordem de grandeza de seu erro conhecida. Podemos usa-la para melhorar: Diferença sucessiva (O(h)) Diferença simétrica (O(h2)) Nos podemos ser bastante específicos sobre o impacto da extrapolação de Richardson nestes dois casos. Se nos tivéssemos tomado a expansão completa de Taylor quando derivamos o método das diferenças simétricas teríamos: ou onde k2, k4, .. são constantes independentes de h. Agora podemos olhar a precisao da extrapolacao de Richardson para diferencas simetricas (p=2): 4/3 Dh/2 – 1/3 Dh Do slide anterior: Multiplicando pelos fatores apropriados temos Substituindo (2) em (1) temos Assim, diferenças simétricas com extrapolação de Richardson tem erro O(h4) Estimando a derivada segunda Vamos considerar de novo as duas expansões de Taylor: Isolando f’’(x) encontramos E assim temos a aproximação Calculo diferencial e integral Newton e Leibniz inventaram o calculo diferencial e integral por volta de 1670. O objetivo era ter ferramentas matemáticas apropriadas para lidar com o movimento e mudanças no tempo. Entender, modelar e predizer o movimento dos corpos celestes era um dos maiores objetivos da ciência naqueles tempos. Para os homens daquele tempo, compreender o movimento dos céus era ouvir a voz de Deus. Calculo diferencial e integral Logo depois ocorre uma explosão cientifica revolucionaria: Os irmãos Bernoulli, Euler, Lagrange, Laplace, etc. A ciência e engenharia modernas nascem, vicejam, crescem e criam o que temos hoje em dia. Derivadas e integrais aparecem em todos os modelos científicos para descrever a natureza se um processo de mudança estiver envolvido no fenômeno estudado. A mais famosa lei da física, a 3ª lei de Newton, envolve uma segunda derivada: F = m * d2 y(t)/dt2 Um passo alem: Equações diferenciais Equação não linear usual: achar os valores de t para os quais a igualdade f(t)=0 e’ válida Equação diferencial ordinária: achar as funções y(t) para as quais a igualdade g(t, y(t), y’(t)) = 0 e’ válida PARA TODO t Por exemplo: achar y(t) tal que seja válida a equação y’(t)–3y(t) = 0 OU SEJA y’(t) = 3y(t). Isto e’, queremos achar as todas as funções y(t) tais que a sua função derivada y’(t) seja igual a 3 vezes a própria função y(t). EDO de 1ª ordem Achar y(t) tal que y’(t) = 3y(t) Geometricamente: Desenhe o gráfico da função y(t) Calcule a inclinação da reta tangente y’(t) em cada ponto t A inclinação deve ser igual a 3 vezes o valor da função y(t) Existe alguma função que satisfaz esta condição? Se existem, e’ possível encontra-las? Técnicas de solução ANALITICA de EDO: solução exata EDO de 1ª ordem Achar y(t) tal que y’(t) = 3y(t) Que tal y(t) = t2 ?? Neste caso, y’(t) = 2 t t2 = y(t) Que tal y(t) = cos(t) ? Neste caso, y’(t) = -sen(t) cos(t) = y(t) OU ainda y(t) = log(t) ?? y‘(t) = 1/t que não e’ a própria função y(t)=log(t) EDO de 1ª ordem Achar y(t) tal que y’(t) = 3y(t) Que tal y(t) = e3t ?? De fato, para esta função, temos y’(t) = 3 e3t = 3 y(t) e’ uma solução da equação diferencial. Existe alguma outra função que também seja solução? Sim: todas as funções da forma y(t) = c e3t onde c R também e’ uma solução. Existem outras? Não, estas são todas, não existem mais funções para as quais temos y’(t) = 3 y(t) PARA TODO t EDO 1ª ordem com valor inicial Achar y(t) tal que y’(t) = 3y(t) E ALEM DISSO, y(0) = 2 Agora, colocamos uma restrição adicional, uma condição sobre o valor inicial da função y(t). No tempo t=0, a função deve valer y(0)=2 Como todas as soluções de y’(t) = 3y(t) são da forma y(t) = c e3t temos de encontrar alguma que satisfaça a condição inicial. 2 = y(0) = c e3*0 = c.1 y(t) = 2 e3t Notação: ordinária? Equações diferenciais: ok Mas por que Equações diferenciais ORDINÁRIAS? Existem Equações diferenciais EXTRAORDINÁRIAS? Não. O palavra “ordinária” e’ usada para diferenciar das equações diferenciais PARCIAIS. Parciais: equações que envolvem funções de mais de uma variável e suas derivadas parciais. Exemplo: Equação de difusão do calor numa barra de densidade homogênea. Seja u(t,x) a temperatura no ponto x no tempo t Então u 2u onde c depende do material c t x 2 EDO de 1ª ordem Equações diferenciais ordinárias de 1ª ordem são equações envolvendo apenas a derivada y’(t) e a funcao y(t) e possivelmente outras funções FIXAS e conhecidas (tais como sin(t) ou exp(t)). Por exemplo: y’(t) = p(t) * y(t) + g(t) Casos particulares: y’(t) = 3 * y(t) + sin(t) y’(t) = (3*t2 + 2t -1) * y(t) + sin(t) EDO de ordem n EDO ordem n são equações envolvendo : As derivadas yn(t), yn-1(t),..., y’(t) a função y(t) e possivelmente outras funções FIXAS e conhecidas (tais como sin(t) ou exp(t)). Por exemplo, uma EDO de 2ª ordem: y”(t) = sin(t) * y’(t) + y(t) + 3t Qual a (ou as) FUNCAO y(t) tal que a sua FUNCAO derivada segunda y’’(t) obedece a equação acima? Mas isto e’ so’ um exercício de matemáticos sem ter o que fazer, certo? Exemplos de EDOs famosas Decaimento radioativo: proporção carbono- 14/carbono-12 presente na matéria orgânica viva é constante. No entanto, na matéria orgânica morta a quantidade de 14C diminui com o tempo, a uma taxa proporcional à quantidade existente. Se designarmos essa quantidade por Q, teremos: Q’(t) = -c Q(t) onde c > 0 e’ uma constante Exemplos de EDOs famosas Corpo em queda livre com atrito devido a resistência do ar: Mv’(t) = mg – k v(t) ou v’(t) + k/m v(t) – g = 0 Engenharia Química: balanço de massa ou volume ou energia num reator químico. O volume de líquido num tanque e a concentração de uma solução A mudam com o tempo. Entra e sai líquido a taxas constantes e diferentes. Os líquidos possuem concentrações de A diferentes. Descrever a concentração de A em cada instante : terminamos em uma EDOs Exemplos de EDOs famosas Oscilador harmônico amortecido: y’’(t) + a y’(t) + b y(t) = 0 Para descrever a física do átomo de hidrogênio: Legendre: (1-t2)y’’(t) – 2 t y’(t) + k(k+1) y(t) = 0 Para descrever o comprimento de onda no átomo de hidrogênio: Laguerre: t y’’(t) + (1-t) y’(t) + k y(t) = 0 Membranas vibratórias: Bessel : t2 y’’(t) + t y’(t) + (t2 – k2) y(t) = 0 Mecânica quântica: Hermite: y’’(t) – 2 t y’(t) + 2 k y(t) = 0 Arco-íris y’’(t) + t y(t) = 0 EDO linear de 1ª ordem Suponha que y’(t) = a(t) * y(t) + b(t) Solução: Com o fator integrante Se y’(t) = - y2(t) EDO NÃO-LINEAR. Esta EDO particular pode ser resolvida pelo método de separação de variáveis . EDO de 1ª ordem Vamos considerar problemas do seguinte tipo: Existe alguma solução? Quando ela e’ única? TEOREMA: Métodos numéricos: Euler Nosso problema de EDO de 1ª ordem: Euler e’ o método mais simples. Acha uma aproximação para a solução y(t) num intervalo [t0, tN] Divide o intervalo em N subintervalos de comprimentos iguais: t0, t1, ..., tN onde tk=t0 + k * h com h=(tN-t0)/N Se h e’ pequeno, temos Método de Euler Nosso problema de EDO de 1ª ordem: t0, t1, ..., tN onde tk=t0 + k * h com h=(tN-t0)/N Se h e’ pequeno, temos Algoritmo: Temos uma aproximação y0, y1, y2, ..., yN para y(t) Método de Euler – 1ª iteracao y(t) y' (t ) f t , y(t ), Slope y0 y0 f t0 , y0 Valor de y(t0+ h) (t0, y0) Valor aproximado y1 y1 y0 f t0 , y0 t1 t0 Passo h y0 f t0 , y0 h y(t0 h) y(t1 ) t t0 t1 Interpretação gráfica: primeiro passo do método de Euler 29 Método de Euler – 2ª iteração y(t) Valor verdadeiro y(x2) y2 y1 f t1 , y1 h Note que y2 e’ o valor em t2 de uma reta que passa por (t1, y1) e que tem inclinação f(t1,y1). y2 Valor aproximado y1 h Tamanho do passo t1 t2 t Segunda iteração do método de Euler 30 Método de Euler – 2ª iteração NÃO ESTAMOS USANDO y(t) Valor verdadeiro y(t2) y*2 = y(t1) + f(t1, y(t1))h uma reta passando por y(t1) e com inclinação f(t1,y(t1)) pois NOS NÃO TEMOS y(t1) y2 Valor aproximado y1 h Na 1ª iteração obtivemos uma aproximação y1 para y(t1) Tamanho do passo t1 y2 y1 f t1 , y1 h t2 t 31 Método de Euler – iteração i y Valor verdadeiro y(ti+1) yi 1 yi f ti , yi h h ti 1 ti yi+1, Valor aproximado yi h Tamanho do passo ti ti+1 t Passo genérico do método de Euler 32 Erros em Euler Assim, na n-ésima iteração, gostaríamos de aproximar yn+1 pelo valor em tn+1 = tn+h da reta tangente a y(t) no ponto (tn, y(tn)) Entretanto, NÃO TEMOS y(tn) mas somente uma aproximação yn Assim, temos dois erros acumulando-se em cada iteração do método de Euler. Existe um erro em aproximar y(tn) por yn , a n-ésima iteração Além disso, gostaríamos de ter f(tn,y(tn)) mas usamos f(tn,yn) Exemplo Uma esfera possui temperatura de 1200K (ou 920oC ) e comeca a resfriar ‘a temperatura ambiente de 300K (ou 27oC). Assumindo que o calor e’ dissipado sem interferência, a equação diferencial que reflete a temperatura (t) da esfera no tempo t deve satisfazer a seguinte EDO d 2.2067 10 12 4 81 10 8 , dt 0 1200 K Encontrar a temperatura em t=480 segundos usando o método de Euler. Assuma um passo de tamanho h=240 segundos 34 Solução Primeira iteração: d 2.2067 10 12 4 81 10 8 dt f t, 2.20671012 4 81108 i 1 i f ti , i h 1 0 f t0 , 0 h 1200 f 0,1200240 1200 2.2067 1012 12004 81 108 240 1 1200 4.5579240 106.09K e’ a temperatura aproximada em t t1 t0 h 0 240 240 240 1 106.09K 35 Solução - continuação Iteração 2: Para i 1, t1 240, 1 106.09 2 1 f t1 ,1 h 106.09 f 240,106.09240 106.09 2.20671012 106.094 81108 240 106.09 0.017595240 110.32K 2 e’ a temperatura aproximada em t t2 t1 h 240 240 480 480 2 110.32K 36 Solução – continuação A solução exata da EDO e’ dada pela raiz da equação não-linear 0.92593ln (t ) 300 1.8519tan1 0.00333 (t ) 0.22067103 t 2.9282 (t ) 300 A solução (480) desta equação não-linear em t=480 segundos e’ (480) 647.57K Bem diferente da aproximação: 480 2 110.32K 37 Comparação das soluções exata e numérica Temperature, θ(K) 1400 1200 1000 Exact Solution 800 600 Euler 400 h=240 200 0 0 100 200 300 400 500 Time, t(sec) 38 Efeito do tamanho do passo h Temperatura aos 480 segundos como uma função do passo h Step, h (480) Et |єt|% 480 240 120 60 30 −987.81 110.32 546.77 614.97 632.77 1635.4 537.26 100.80 32.607 14.806 252.54 82.964 15.566 5.0352 2.2864 (480) 647.57K (valor exato) 39 Comparação com resultado exato Temperature, θ(K) 1500 1000 Exact solution 500 h=120 h=240 0 0 -500 100 200 Tim e, t (sec) 300 400 500 h=480 -1000 -1500 Apenas h=480, 240 e 120 40 Efeito do tamanho do passo h em Euler Valor exato Temperature,θ(K) 800 400 0 0 100 200 300 400 500 -400 Step size, h (s) -800 -1200 41 Mais um exemplo Considere a EDO Como x0=0 então xn=nh Iteração: Usando h=0.1 e 0.001 E comparando com a solução exata temos a tabela ao lado Erros no método de Euler Vimos que o método de Euler PODE ter erros grandes. Para entender a ordem de grandeza desses erros, vamos fazer a expansão de Taylor em torno de xi y i 1 dy 1 d2y xi 1 xi yi dx xi , yi 2! dx2 xi 1 xi 2 xi , yi 1 d3y 3! dx3 xi 1 xi 3 ... xi , yi Isto e’: yi 1 yi f ( xi , yi )xi 1 xi 1 1 2 3 f ' ( xi , yi )xi 1 xi f ' ' ( xi , yi )xi 1 xi ... 2! 3! Os dois primeiros termos da serie de Taylor e’ o método de Euler yi1 yi f xi , yi h O erro na aproximação e’ dado por Et f xi , yi 2 f xi , yi 3 h h ... 2! 3! Et h2 43 Runge - Kutta Euler fez a seguinte aproximação Que tal usar uma aproximação melhor para a integral? Por exemplo, podemos usar a regra do trapézio: Neste caso, teremos então a aproximação E o algoritmo Runge-Kutta Encontramos a equação de iteração: Existe um problema no entanto: yn+1 aparece dos dois lados da equação acima. Não conseguimos isolar yn+1. Uma possibilidade e’ substituir yn+1 NO LADO DIREITO por sua aproximação baseada em Euler: yn+1 = yn + f(tn,yn)h Este e’ o metodo de Runge-Kutta de 2ª ordem Runge Kutta de 2ª ordem Equação de iteração: ou simplesmente onde Assim, este e’ um método de Euler com inclinação (s1+s2)/2 Runge – Kutta de 2ª ordem E’ possível uma interpretação gráfica-geométrica deste método de Runge-Kutta. Temos com Isto corresponde ao seguinte esquema em dois passos: Tome um passo preliminar de Euler com inclinação s1 em tn: Com isto, obtenha uma segunda inclinação s2 em tn+h A atualização de Euler realmente dada usa a média das inclinações s1 em tn e s2 em tn+h Exemplo Uma esfera possui temperatura de 1200K (ou 920oC ) e comeca a resfriar ‘a temperatura ambiente de 300K (ou 27oC). Assumindo que o calor e’ dissipado sem interferência, a equação diferencial que reflete a temperatura (t) da esfera no tempo t deve satisfazer a seguinte EDO d 2.2067 10 12 4 81 10 8 , dt 0 1200 K Encontrar a temperatura em t=480 segundos usando o método EULER MELHORADO (ou metodo classico de Runge-Kutta de segunda ordem) Assuma um passo de tamanho h=240 segundos d 2.2067 10 12 4 81 10 8 dt f t, 2.20671012 4 81108 1 2 1 2 i 1 i s1 s2 h 48 Solução Iteração 1: i 0, t0 0, 0 (0) 1200K s1 f t0 , o f 0,1200 s2 f t0 h, 0 s1h 2.20671012 12004 81108 4.5579 1 2 1 2 f 0 240, 1200 4.5579240 f 240, 106.09 2.20671012 106.094 81108 0.017595 1 0 s1 s2 h 1 1 1200 4.5579 0.017595240 2 2 1200 2.2702240 655.16K 49 Solução - continuação Iteração 2: i 1, t1 t0 h 0 240 240, 1 655.16K s1 f t1 ,1 f 240,655.16 s 2 f t1 h, 1 k1h 2.20671012 655.164 81108 0.38869 1 2 1 2 f 240 240, 655.16 0.38869240 f 480,561.87 2.20671012 561.874 81108 0.20206 2 1 s1 s2 h 1 1 655.16 0.38869 0.20206240 2 2 655.16 0.29538240 584.27K 50 Solução - continuação A solução exata da EDO e’ dada pela solução de uma equação não -linear: 0.92593ln (t ) 300 1.8519tan1 0.0033333 (t ) 0.22067103 t 2.9282 (t ) 300 A solução para esta equação não-linear em t=480 segundos e’ (480) 647.57K 51 Comparação com resultado exatos Temperature, θ(K) 1200 h=120 Exact 800 h=240 400 h=480 0 0 100 200 300 400 500 -400 Time, t(sec) Euler melhorado (ponto médio) para diferentes valores de h 52 Efeito do tamanho do passo h Temperatura em t=480 segundos como uma funcao do tamanho do passo h Passo h (480) Erro = Et |єt|% 480 240 120 60 30 −393.87 584.27 651.35 649.91 648.21 1041.4 63.304 −3.7762 −2.3406 −0.63219 160.82 9.7756 0.58313 0.36145 0.097625 (480) 647.57K (exact) 53 Efeito do tamanho do passo h Temperature, θ(480) 800 600 400 200 0 0 -200 100 200 300 Step size, h 400 500 -400 54 Um segundo método de Runge-Kutta O método de Runge-Kutta que acabamos de estudar começou aproximando uma integral pela regra do trapézio: Podemos usar alguma outra regra: Simpson ou midpoint Vamos usar midpoint: Neste caso Note que y(t+h/2) no lado direito não e’ conhecido. Vamos usar Euler de novo para este valor. 2º. Método de Runge - Kutta Temos a aproximação y n 1 yn tn h tn h f ( , y ( )) d y n hf t n , y (t n h / 2) 2 Usamos a aproximação de Euler para o termo y(tn+h/2): y(tn+h/2) ≈y(tn)+h/2 * f(tn, yn) Substituindo a iteração para yn+1 temos Este método e’ conhecido como método de Euler modificado ou método do ponto médio 2º metodo de Runge-Kutta Também podemos ver este novo método de Runge- Kutta como um processo em dois estágios. Escrevemos como onde Resumo dos 2 métodos de R-K Primeiro: o método clássico de 2ª ordem de R-K (ou método de Euler melhorado) yn+1 = yn + h (s1+s2)/2 com Segundo: Método de Euler modificado (método do ponto médio) yn+1 = yn + h s2 com O que eles tem em comum? Comparando os dois R-K Os dois métodos usam dois estágios intermediários s1 e s2 para obter uma iteração. Os estágios correspondem a diferentes estimativas para a inclinação da solução. No método clássico de RK (Euler melhorado) nós damos um passo completo yn+1 = yn + h (s1+s2)/2 tomando a media das inclinações s1 em tn e s2 em tn+h No método de Euler modificado (ponto médio), nós usamos s1 em tn para dar um meio-passo ate tn+h/2. A seguir, calculamos s2, a estimativa da inclinação no ponto médio, e então tomamos o passo completo yn+1 = yn + h s2 Exemplo Considere a EDO Euler modificado: yn+1 =yn+hs2 Temos s1=x2n+ y2n e s2=(xn+h/2)2+(yn+s1/2)2 Exemplo numérico na tabela ao lado y(xi) e’ o valor exato e yi e’ a aproximação numérica De volta ao exemplo basico Uma esfera possui temperatura de 1200K (ou 920oC ) e comeca a resfriar ‘a temperatura ambiente de 300K (ou 27oC). Assumindo que o calor e’ dissipado sem interferência, a equação diferencial que reflete a temperatura (t) da esfera no tempo t deve satisfazer a seguinte EDO d 2.2067 10 12 4 81 10 8 , dt 0 1200 K Encontrar a temperatura em t=480 segundos usando o método EULER MELHORADO (ou método clássico de Runge-Kutta de segunda ordem) e EULER MODIFICADO (ou ponto médio) Assuma um passo de tamanho h=240 segundos 61 Comparação de Euler e RK de 2a ordem Passo h 480 240 120 60 30 (480) Euler −987.84 110.32 546.77 614.97 632.77 Euler Melhorado −393.87 584.27 651.35 649.91 648.21 Ponto Medio 1208.4 976.87 690.20 654.85 649.02 (480) 647.57K (exato) Ralston (ignore) 449.78 690.01 667.71 652.25 648.61 62 Comparação de Euler e RK de 2a ordem t % Passo h 480 240 120 60 30 Euler Euler Melhorado Ponto Médio Ralston (ignore) 252.54 82.964 15.566 5.0352 2.2864 160.82 9.7756 0.58313 0.36145 0.097625 86.612 50.851 6.5823 1.1239 0.22353 30.544 6.5537 3.1092 0.72299 0.15940 (480) 647.57K (exato) 63 Comparação de Euler e RK de 2a ordem 1200 Temperature, θ(K) 1100 Ponto MidpointMédio 1000 Ralston 900 Melhorado Heun 800 700 Analytical 600 Euler 500 0 100 200 300 400 500 600 Time, t (sec) 64 Para a prova Memorizar apenas: Método de Euler e os dois métodos mais simples de Runge-Kutta: Euler melhorado (RK clássico de 2ª ordem) Euler modificado (ponto médio) Pode ignorar o resto dos slides Runge-Kutta 2ª ordem geral Podemos imaginar varias outras maneiras alternativas de calcular s1 e s2. O método geral de Runge-Kutta de 2ª ordem e’ da forma onde com (esta notação vem de uma teoria mais avançada ligada a métodos implícitos) Clássico RK (Euler melhorado): Euler modificado (ponto médio): γ1=0, γ2=1 e α2= β21=1/2 Tabela de Butcher E’ costume arranjar os coeficientes αi, βij e γi em uma tabela chamada tabela de Butcher Onde α2 = β21 Para o método ser de segunda ordem e ter certas propriedades desejáveis impomos também as condições Tabela de Butcher RK Clássico (Euler melhorado) α2 = β21 RK : Euler modificado (ponto médio) Método de Ralston RK: Método de Heun 0 0 α2=3/4 β21=3/4 0 Γ1=1/3 0 Γ2=2/3 Runge-Kutta de 4ª ordem E’ o mais famoso método de Runge-Kutta com E tabela de Butcher