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.
Download

slides_ADSA_2012