quarta-feira, 19 de julho de 2017

Simulado as equações de Edward Lorenz

Simulação do sistema de equações de Lorenz.

Página inicial do artigo E. N. Lorenz



Um sistema de equações diferenciais não lineares acopladas não uma tem solução analítica, mas podemos simular usando um método numérico para solução de equações diferenciais. As equações de Lorenz (sobre esse pesquisador, ver aqui) modelam a intensidade de movimento do fluido atmosférico $x$ às variações de temperatura $y$ e $z$ nas direções horizontal e vertical, respectivamente. O modelo matemático (equações 25, 26 e 27 do artigo seminal Deterministic Nonperiodic Flow, ver aqui) é:
\begin{align*} \frac{dx}{dt} &= \sigma (y - x) \\ \frac{dy}{dt} &= rx - y - xz \\ \frac{dz}{dt} &= -bz + xy \end{align*}
Resolvemos numericamente essas equações usando o Scilab (ver gráficos acima) e o método de Euler, que é o mais simples e razoável para este problema.

Código Scilab (como já é "tradicional", economizamos nos comentários):

///////////////////  Lorenz
////   dx/dt = -sx + sy
////   dy/dt = rx - y - xy
////   dz/dt = - bz + xy

clc; close; close;

N = 10000;
vx = zeros(1,N);
vy = zeros(1,N);
vz = zeros(1,N);

x = 10;
y = 20;
z = 30;
dt = 0.005;
s = 10; b = 8/3; r = 28;
for k=1:N
    x = x + dt*s*(y - x);
    y = y + dt*(r*x - y - x*z);
    z = z + dt*(x*y - b*z);
    vx(k) = x;
    vy(k) = y;
    vz(k) = z;
end

subplot(2,2,1); plot(vx,vy);
subplot(2,2,2); plot(vx,vz);
subplot(2,1,2); plot(vy,vz);
figure; param3d(vx,vy,vz); xgrid(3);

Lorenz percebeu que pequenas mudanças nos parâmetros iniciais das suas equações levam a grandes mudanças nos resultados - isso é conhecido como efeito borboleta (ver aqui) - que faz parte da teoria do caos - como podemos ver na figura abaixo:
Mesmas equações, mas valores iniciais levemente diferentes geram uma solução totalmente diferente a longo prazo.


Nenhum comentário:

Postar um comentário