Análise de Sistemas e Simulação em Ambiente Métodos numéricos e programação Outubro 2012 Análise de Sistemas e Simulação em Ambiente Sumário equações diferenciais ordinárias Definição Solução analítica Soluções numéricas método de Euler método de Heun método de Runge-Kutta Introdução à programação com Excel Análise de Sistemas e Simulação em Ambiente Equações diferenciais ordinárias definição: uma equação diferencial ordinária é uma relação entre uma variável independente X e uma variável dependente Y em que entram um ou mais coeficientes diferenciais de Y com respeito a X. Análise de Sistemas e Simulação em Ambiente Equações diferenciais representam modelos ambientais Exemplos: Modelo predador-presa (equações de Lotka-Volterra) dH/dt=(a-b*P)*H dP/dt=(-c+d*H)*P H - Número de presas P - Número de predadores t - tempo a - taxas de reprodução das presas na ausência de predadores b - taxa de morte das presas por encontro com predador c - taxa de morte dos predadores na ausência de presas d - ganho do predador por encontro com presa (= b * eficiência de conversão presa - predador) Com este modelo obtem-se os valores de H e P ao longo do tempo. Análise de Sistemas e Simulação em Ambiente Equações diferenciais representam modelos ambientais exemplos: Modelo de dispersão de poluentes num fluído (equação de advecção-difusão) dC/dt=-u*dC/dx + D*d2C/dx2 C – Concentração do poluente t - tempo x - espaço U - velocidade do fluído D – coeficiente de dispersão Com este modelo obtem-se os valores de C ao longo do tempo e do espaço. Análise de Sistemas e Simulação em Ambiente Soluções analíticas Exemplo: reacção química de 1ª ordem Equação diferencial: dy/dx= -k*y y – concentração do reagente; k – taxa de reacção x - tempo Solução analítica: y = k *exp(-x) Para cada x calcula-se directamente o valor de y através de uma função contínua. Mas esta é uma situação simples. Para problemas mais complexos que ocorrem geralmente no ambiente tem de se utilizar métodos numéricos. Análise de Sistemas e Simulação em Ambiente Método de Euler dy/dx= f(x,y) Novo valor = valor anterior + declive * passo de cálculo Ou em termos matemáticos: yi+1 = yi + f(xi,yi)*h Sendo o passo de cálculo h = xi+1-xi Para iniciar o cálculo temos de conhecer o valor inicial de y (por exemplo, y0). De seguida calcula-se y1 e depois utiliza-se este valor para calcular y2, repetindo-se o processo para os restantes valores pretendidos. Análise de Sistemas e Simulação em Ambiente Cálculo de yi+1 y Valor previsto yi+1 Valor exacto yi h xi xi+1 x Análise de Sistemas e Simulação em Ambiente Cálculo de yi+2 y Valor previsto yi+2 yi+1 yi Valor exacto h xi h xi+1 xi+2 x Análise de Sistemas e Simulação em Ambiente Resolver dy/dx=-y utilizando o método de Euler y0=1; yi+1 = yi + f(xi,yi)*h = yi – yi*h yi+2 = yi+1 – yi+1*h (a mesma fórmula para i+n) Para utilizar um método numérico tem de se definir o passo de cálculo. Neste exemplo utiliza-se h=0.5: O erro vai crescendo! Exercício: fazer as contas com h/2 = 0.25 Análise de Sistemas e Simulação em Ambiente Cálculo de yi+1 utilizando passo de cálulo h y Tangente em (xi,yi) Valor previsto yi+1 Valor exacto yi h xi xi+1 x Análise de Sistemas e Simulação em Ambiente Cálculo de yi+1 e yi+2 utilizando passo de cálulo h/2 y Valor previsto yi+2 yi+1 yi Valor exacto h/2 h/2 xi xi+1 xi+2 x O erro diminui devido do aumento do número de cálculos Análise de Sistemas e Simulação em Ambiente Método de Heun dy/dx= f(x,y) Dados conhecidos: yi, xi, f(xi,yi), h, xi+1. Pretende-se calcular yi+1 1 – calcula-se valor intermédio y’i+1 y’i+1 = yi + f(xi,yi)*h (corresponde ao método de Euler) 2 – calcula-se valor final yi+1 yi+1 = yi + (f(xi,yi)+f(xi+1,y’i+1))*h / 2 Análise de Sistemas e Simulação em Ambiente Resolver dy/dx=-y utilizando o método de Heun y0=1; y’i+1 = yi + f(xi,yi)*h = yi – yi * h Como f(xi+1,y’i+1)=-y’i+1 yi+1 = yi + (- yi +(- yi + yi * h))*h/2 -y’i+1 Calcular para h=0.5 Análise de Sistemas e Simulação em Ambiente Método de Heun - Cálculo de yi+1 utilizando passo de cálulo h y y declive = f(xi,yi) declive final= (f(xi,yi) +f(xi+1,y’i+1))/2 Valor previsto declive = f(xi+1,y’i+1) y’i+1 yi+1 yi yi h xi xi+1 x Valor exacto h xi xi+1 O declive final corresponde à média dos dois declives calculados no primeiro gráfico x Análise de Sistemas e Simulação em Ambiente Método de Runge-Kutta de 4ª ordem dy/dx= f(x,y) y i+1 = yi + (k1+2k2+2k3+k4) h/6 k1=f(xi, yi) k2=f(xi+h/2, yi+h.k1/2) k3=f(xi+h/2, yi+h.k2/2) k4=f(xi+h, yi+h.k3) Exercício: resolver dx/dy = -y Resolução: k1= -yi ; k2= - (yi+h.k1/2) ; k3= - (yi+h.k2/2) ; k4= - (yi+h.k3) y i+1 = yi + (k1+2k2+2k3+k4) h/6 Análise de Sistemas e Simulação em Ambiente Programação – exercício da aula Construir um modelo que resolva o sistema Predador-Presa descrito pelas seguintes equações: dH/dt=(a1-b1*P)*H dP/dt=(-a2+b2*H)*P em que: H - presas P - Predadores t - tempo a1 - taxas de reprodução das presas a2 - taxa de morte dos predadores b1 - taxa de morte das presas por encontro com predador b2 - ganho do predador por encontro com presa (é b1 * eficiência de conversão presa predador) Utilizar o método de Euler, de Heun Runge-Kutta. Correr o modelo considerando H0=30, P0=5, a1=1, a2=0.5, b1=0.1, b2=0.02. Utilizar passo de cálculo (dt) = 0,01 e calcular para um tempo total = 100 Análise de Sistemas e Simulação em Ambiente TPC: À semelhança do que foi feito na aula, programa o modelo que descreve a evolução de duas populações de predadores e uma população de presas descrito pelas seguintes equações: dH/dt=a*H-c*H*Q-b*H*P dP/dt=d*H*P-f*P dQ/dt=e*H*Q-g*Q em que: H – população de presas P – população de predadores Y Q – população de predadores Z t – tempo (unidades de tempo) a - taxa de crescimento da presa (1/tempo) b – morte de presas por predação do predador Y (1/Y*tempo) c – morte de presas por predação do predador Z (1/Z*tempo) d – ganho por predação do predador Y (1/X*tempo) e – ganho por predação do predador Z (1/X*tempo) f – taxa de mortalidade do predador Y (1/tempo) g – taxa de mortalidade do predador Z (1/tempo) Corra o modelo entre o tempo 0 e o tempo 200, considerando: a = 1,2 b = 0.5 c = 0.04 d = 0.03 e = 0.02 f = 0.5 g = 0.6 No início da simulação considere: H=10 P=5 Q=5 Utilize o método de Runge-Kutta 4ª ordem com um passo de cálculo de 0.01. Análise de Sistemas e Simulação em Ambiente Nota sobre o TPC: O Exercício do TPC tem duas componentes de avaliação: a) a implementação correcta do código em Visual Basic para Excel b) a interface de utilização do modelo. Pode ser utilizada qualquer tipo de interface, incluindo a apresentada na aula que comporta a utilização de células de excel para que o utilizador do modelo possa interagir. Podem construir janelas para a interacção ou pode ser inventada uma interface completamente nova. No caso da implemantação da interface que seja idealizada ser complexa, podem descrever brevemente como imaginavam o seu funcionamento. Podem-se inspirar nas aulas e visitas que fizeram durante a cadeira de ASSA. Notem que esta parte do trabalho é opcional, mas será considerada para a atribuição da nota final deste TPC. Análise de Sistemas e Simulação em Ambiente bibliografia: Bossel, H., Modeling and Simulation, A.K. Peters, Wellesley, Ma., 1994. Brown, D. e Rothetry, P., Models in Biology, John Wiley, New York, 1993. Chapra, S. e R.P. Canale, Numerical Methods for Engineers, McGraw Hill, New York, 1986. Conte, S.D. e C. de Boor, Elementary Numerical Analysis, McGraw Hill, New York, 1980.