Departamento de Informática - UFES 1 o Trabalho Computacional de Algoritmos Numéricos - 13/2 Métodos de Runge-Kutta e Diferenças Finitas Prof. Andréa Maria Pedrosa Valli Data de entrega: Dia 23 de janeiro de 2014. Entrevista vai ser marcada para cada grupo. Considerações gerais: O trabalho poder ser feito em grupo de no máximo 2 alunos. Todos os trabalhos devem ser enviados por email (códigos (fonte e de dados) e o relatório em.pdf compactados). O assunto do email deve trab1 nome, onde nome contém os nomes dos componentes do grupo. 1 Descrição do Trabalho Equações diferenciais ordinárias e parciais aparecem frequentemente na solução de problemas em diversas áreas de conhecimento tais como Física, Matemática, Engenharias, Biologia, Economia, etc. Nesse trabalho vamos implementar métodos de Runge-Kutta de 1 a, 2 a e 4 a ordens para resolver Problemas de Valor Inicial (PVI), implementar o método das diferenças finitas para resolver Problemas de Valor de Contorno (PVC) e resolver algumas aplicações de interesse prático que aparecem nas engenharias. 2 Objetivos do Trabalho Os objetivos do trabalho podem ser divididos em duas partes, como apresentado a seguir: Problemas de Valor Inicial (PVI) Estudo comparativo dos métodos de Runge-Kutta de 1 a, 2 a e 4 a ordens; Estudo da ordem de convergência dos métodos de Runge-Kuttas; Resolução de um oscilador forçado. Problemas de Valor de Contorno (PVC) Estudo do método de diferenças finitas para o problema do resfriador unidimensional; Estudo e implementação de métodos de resolução de sistemas lineares tridiagonais; Obtenção da solução numérica para o problema do resfriador unidimensional.
3 Etapas do Trabalho Para cada um dos problemas estudados fazer: 1. Implementação computacional, na linguagem C, dos métodos; 2. Validação dos métodos através de problemas com soluções conhecidas; 3. Análise do comportamento dos métodos implementados; 4. Resolução das aplicações sugeridas; 5. Escrita dos resultados obtidos com as devidas conclusões. 4 Problema de Valor Inicial 4.1 Métodos de Runge-Kutta de 1 a, 2 a e 4 a ordens Implemente os métodos de Runge-Kutta de 1 a, 2 a e 4 a ordens e teste considerando o problema de valor inicial dy = x+y dx (1) y(0) = 1 (2) cuja solução exata é y(x) = 2e x (x + 1). Analise as soluções encontradas nos experimentos listados a seguir. (a) Calcule a solução no intervalo [0, 4], usando o método de Runge-Kutta de ordem 1 com h 0 = 0.4 e compare o efeito de diminuir o tamanho do passo. Mostre, em um mesmo gráfico, a solução exata e as soluções calculadas para diferentes valores de h. (b) Ainda para o método de Euler, mostre tambemográficodotamanho do passo erro máximoparaosvaloresdehutilizados e uma tabela com os valores calculados. (c) Calcule as soluções aproximadas no intervalo [0,4] com h = 0.4,0.05, pelos métodos de Runge-Kutta 1, 2 e 4. Mostre, em um mesmo gráfico, a solução exata e as soluções aproximadas para cada valor de h. 4.2 Análise da convergência dos métodos de Runge-Kutta Para o estudo da ordem de convergência dos três métodos de Runge-Kutta, podemos usar o procedimento descrito a seguir. Para o método de Runge-Kutta de ordem k, assuma que existe uma constante C tal que erro = y(x k ) y k Ch k, para todo k (3) Aplicando menos o logaritmo nos dois lados da equação (3), obtemos uma relação linear, z a+kt, entre -log(h) e -log(erro) como segue log(erro) log(c)+k ( log(h)) (4)
Observe que o coeficiente angular da reta é dado por k, a ordem de convergência do método. O objetivo aqui é determinar experimentalmente este coeficiente. Para isso, examine o erro máximo cometido quando resolvemos o problema (1)-(2) para oito valores diferentes de h, o tamanho do passo, começando com h 0 = 0.4 e dividindo pelo meio cada vez. Ajuste, para cada método uma reta e verifique as ordens de convergência obtidas numericamente. Elas correspondem as ordens de convergência teóricas esperadas? Mostre, em um mesmo gráfico os pontos das tabelas [-log(h), -log(erro)], e as retas dos ajustes obtidas em cada método. Pode usar o octave/matlab para determinar os coeficientes da reta do ajuste. 4.3 Oscilador forçado e ressonâncias Considere um oscilador que é forçado a oscilar. Por exemplo, aplicamos uma força periódica a uma criança em um balanço quando queremos que as oscilações continuem. A força mais fácil de se tratar matematicamente é uma força periódica na forma F = F 0 cos(wt). Somando todas as forças do oscilador, incluindo a força de atrito e a força aplicada, a equação torna-se m d2 y dt 2 +ddy dt +ky = F 0cos(wt) (5) onde y representa a distância do objecto, na extremidade da mola, a partir da sua posição de equilíbrio, m é a massa do corpo, d é a constante de amortecimento e k é constante da mola. Estas mesmas equações podem representar também um circuito elétrico simples contendo apenas um capacitor, um resistor, uma indutância e uma fonte de tensão em série. Vamos considerar que no tempo t = 0 o objeto esteja em repouso, ou seja, y(0) = 0 e dy = 0. Resolva o problema para duas situações dt distintas, d = 0 (sem amortecimento) e d = 50, usando o método de Runge-Kutta de ordem 4. Assuma F 0 = m = 1, k = 100 e w = 12 e t = [0,6]. Escolha um tamanho de passo adequado de forma a conseguir representar corretamente a solução que é da forma y(t) = y m cos(wt+f). Este problema já foi bastante estudado na literatura e sabe-se que quando a frequência da força aplicada é igual à frequência natural do oscilador (w 0 = k/m), a amplitude da oscilação é máxima. Isto é um fenômeno bem conhecido. Por e- xemplo, no caso da criança no balanço sabemos que a oscilação será máxima se aplicarmos uma força em ressonância com a frequência de oscilação natural do balanço. Ressonâncias são também responsáveis por vibrações indesejáveis em sistemas mecânicos, ruptura de estruturas como prédios e pontes sob a ação de ventos ou terremotos, etc. Toda vez que um oscilador sofre uma força periódica com a mesma frequência que sua frequência natural, o fenômeno de ressonância aparecerá. Dizemos que a força está em fase com a oscilação.
5 Problema de Valor de Contorno 5.1 Métodos de solução de sistemas tridiagonais Implemente o algoritmo tridiagonal de Thomas [1] para encontrar a solução de um sistema tridiagonal e teste com soluções conhecidas. Implemente também o método SOR (succesive over relaxation) para resolver sistemas tridiagonais e faça um estudo da escolha do parâmetro w em ]0,2[. 5.2 Problema de Valor de Contorno Considere o problema dado pela equação no intervalo 0 < x < L d ( K du(x) ) +Cu(x) = f(x) (6) dx dx com condições de contorno do tipo: u(0) = u 0 (7) c ref u(l)+k du dx (L) = c refu ref (8) Nesse exemplo a solução exata é conhecida, u(x) = x 2 + x. Calcule f(x) em (6), usando o valor exato da solução dado, e defina essa função no seu código assumindo K = 2, C = 10, c ref = 1.5 e L = 1. Calcule a solução aproximada e mostre em um mesmo gráfico as soluções exata e aproximada calculadas. Calcule também o erro máximo cometido para pelo menos dois valores de h. 5.3 Resfriador unidimensional Considere o problema de resfriar uma região (massa) aquecida, através da transferência de calor da massa para uma região vizinha mais fria, como mostrado na Fig. 1. Exemplos incluem chips de computadores, amplificadores elétricos, um Figura 1: Geometria do Resfriador transformador em uma linha de energia ou um motor a gasolina. Neste problema, queremossercapazesdemodelarofluxodecalor, demodoquesepodedeterminarse
existe ou não uma configuração particular que irá esfriar suficientemente a massa. O modelo matemático do problema é dados pela equação diferencial (6) e duas condições de contorno, (7) e (8). Detalhes sobre a definição do modelo matemático pode ser encontrado em R. E. White 1, disponível na página do curso. Aqui K é a condutividade térmica, u ref é uma temperatura de referência, u 0 é a temperatura inicial da massa e c ref é a habilidade da superfície do resfriador de transmitir calor na região. A constante C e o termo fonte f são funções da geometria do resfriador (observe a Fig. 1), dadas por: ( ) 2W +2T C c ref TW f Cu ref ondeatemperaturainicialdamassau 0 = 160,atemperaturadereferênciau ref = 70, K = 0.001, T = 0.1, W = 10 e L = 1. Podemos considerar diferentes possibilidades para o coeficiente c ref, por exemplo, c ref = 0.0001, c ref = 0.001, c ref = 0.01, c ref = 0.1. Considerando n = 10, n = 50 e n = 100 encontre a solução aproximada para os diferentes coeficientes c ref. Para cada caso plote o gráfico da solução aproximada. 1 R. E. White,Computational Modeling with Methods and Analysis, Department of Mathematics, North Carolina State University, 2003