Processing math: 4%

terça-feira, 15 de abril de 2025

Principais Sistemas Caóticos com Descrição Matemática

 


1. Sistema de Lorenz. Modelo clássico de convecção atmosférica.
\begin{align*} \dot{x} &= \sigma (y - x) \\ \dot{y} &= x (\rho - z) - y \\ \dot{z} &= x y - \beta z \end{align*}
Parâmetros típicos: \sigma = 10, \rho = 28, \beta = \frac{8}{3}
 

2. Mapa Logístico. Modelo discreto de crescimento populacional.
x_{n+1} = r x_n (1 - x_n)

Com: 0 < x_n < 1, 0 < r \leq 4.  

Caos: para r \gtrsim 3.57
 

3. Sistema de Rössler. Modelo contínuo com dinâmica caótica em três variáveis.
\begin{align*} \dot{x} &= -y - z \\ \dot{y} &= x + a y \\ \dot{z} &= b + z(x - c) \end{align*}
Parâmetros típicos: a = 0.2, b = 0.2, c = 5.7

4. Mapa de Hénon. Sistema discreto bidimensional com comportamento caótico.
\begin{align*} x_{n+1} &= 1 - a x_n^2 + y_n \\ y_{n+1} &= b x_n \end{align*}
Parâmetros típicos: a = 1.4, b = 0.3

5. Oscilador de Duffing. Sistema não linear forçado com amortecimento.
\ddot{x} + \delta \dot{x} + \alpha x + \beta x^3 = \gamma \cos(\omega t)

Caos ocorre para certos conjuntos de parâmetros.
 

6. Mapa Padrão de Chirikov. Mapa discreto usado em sistemas quase integráveis.
\begin{align*} p_{n+1} &= p_n + K \sin(x_n) \\ x_{n+1} &= x_n + p_{n+1} \mod 2\pi \end{align*}

Parâmetro de controle: K

7. Sistema de Chen. Semelhante ao sistema de Lorenz, com dinâmica distinta.
\begin{align*} \dot{x} &= a (y - x) \\ \dot{y} &= (c - a)x - xz + c y \\ \dot{z} &= xy - b z \end{align*}
Parâmetros típicos: a = 35, b = 3, c = 28
 

8. Atrator de Halvorsen. Sistema contínuo tridimensional com dinâmica caótica.
\begin{align*} \dot{x} &= -a x - 4 y - 4 z - y^2 \\ \dot{y} &= -a y - 4 z - 4 x - z^2 \\ \dot{z} &= -a z - 4 x - 4 y - x^2 \end{align*}
Parâmetro típico: a = 1.4 

Código Scilab para simular os atratores:

//////////
// Função que define o sistema de 
// equações diferenciais do 
// Atrator de Halvorsen
function dydt=halvorsen(xyz)
    a = 1.4; // Parâmetro típico
    x = xyz(1);
    y = xyz(2);
    z = xyz(3);
    
    // Sistema de equações
     dxdt = -a*x - 4*y - 4*z - y*y;
     dydt = -a*y - 4*z - 4*x - z*z;
     dzdt = -a*z - 4*x - 4*y - x*x;
     
   dydt = [dxdt; dydt; dzdt];
endfunction

function dydt=lorenz(xyz)
    s = 10; r = 28; b = 8/3;
    x = xyz(1);
    y = xyz(2);
    z = xyz(3);

    // Sistema de equações
    dxdt = s*(y - x); 
    dydt = x*(r-z) - y; 
    dzdt = x*y - b*z;

   dydt = [dxdt; dydt; dzdt];
endfunction

function dydt=rossler(xyz)
    a = 0.2; b = 0.2; c = 5.7;
    x = xyz(1);
    y = xyz(2);
    z = xyz(3);

    // Sistema de equações
    dxdt = -y - z; 
    dydt = x + a*y; 
    dzdt = b + z*(x - c);

   dydt = [dxdt; dydt; dzdt];
endfunction

function dydt=chen(xyz)
    a = 35; b = 3; c = 28;
    x = xyz(1);
    y = xyz(2);
    z = xyz(3);
    
    // Sistema de equações
    dxdt = a*(y - x); 
    dydt = (c-a)*x - x*z + c*y; 
    dzdt = x*y - b*z;

   dydt = [dxdt; dydt; dzdt];
endfunction

// Parâmetros da simulação
t0 = 0;           // Tempo inicial
dt = 0.005;
y0 = [1; 0.5; 0.5];   // Condições iniciais 
yh = y0; yhk = y0;
yl = y0; ylk = y0;
yc = y0; yck = y0;
yr = y0; yrk = y0;

// Integração numérica usando 
// o metodo Runge-Kutta
kmax = 20000;
k=1;
dt2=dt/2;
dt6=dt/6;
while k<kmax
    k1 = halvorsen(yhk);
    k2 = halvorsen(yhk+dt2*k1);
    k3 = halvorsen(yhk+dt2*k2);
    k4 = halvorsen(yhk+dt*k3);  
    yhk = yhk + dt6*(k1+k2+k2+k3+k3+k4);
    yh(:,k) = yhk;
    
    k1 = lorenz(ylk);
    k2 = lorenz(ylk+dt2*k1);
    k3 = lorenz(ylk+dt2*k2);
    k4 = lorenz(ylk+dt*k3);  
    ylk = ylk + dt6*(k1+k2+k2+k3+k3+k4);
    yl(:,k) = ylk;
    
    k1 = chen(yck);
    k2 = chen(yck+dt2*k1);
    k3 = chen(yck+dt2*k2);
    k4 = chen(yck+dt*k3);  
    yck = yck + dt6*(k1+k2+k2+k3+k3+k4);
    yc(:,k) = yck;
    
    k1 = rossler(yrk);
    k2 = rossler(yrk+dt2*k1);
    k3 = rossler(yrk+dt2*k2);
    k4 = rossler(yrk+dt*k3);  
    yrk = yrk + dt6*(k1+k2+k2+k3+k3+k4);
    yr(:,k) = yrk;
    
    k=k+1;
end

// Extração das variáveis x, y, z
xx = yh(1,:);
yy = yh(2,:);
zz = yh(3,:);

xxl = yl(1,:);
yyl = yl(2,:);
zzl = yl(3,:);

xxc = yc(1,:);
yyc = yc(2,:);
zzc = yc(3,:);

xxr = yr(1,:);
yyr = yr(2,:);
zzr = yr(3,:);

// Criação do gráfico 3D
clf; // Limpa a janela gráfica

subplot(2,2,1);
param3d(xx, yy, zz,'m'); // Plota as trajetórias em 3D

// Configurações do gráfico
xtitle("Atrator de Halvorsen", "X", "Y", "Z");
gca().rotation_angles = [60, 45]; // Ajusta o ângulo de visualização
gca().grid = [1 1 1]; // Adiciona grade

// Adiciona cores para melhor visualização
e = gce();
e.thickness = 2;
e.foreground = color("blue");

subplot(2,2,2);
param3d(xxl, yyl, zzl,'m'); // Plota as trajetórias em 3D

// Configurações do gráfico
xtitle("Atrator de Lorenz", "X", "Y", "Z");
gca().rotation_angles = [60, 45]; // Ajusta o ângulo de visualização
gca().grid = [1 1 1]; // Adiciona grade

// Adiciona cores para melhor visualização
e = gce();
e.thickness = 2;
e.foreground = color("blue");

subplot(2,2,3);
param3d(xxc, yyc, zzc,'m'); // Plota as trajetórias em 3D

// Configurações do gráfico
xtitle("Atrator de Chen", "X", "Y", "Z");
gca().rotation_angles = [60, 45]; // Ajusta o ângulo de visualização
gca().grid = [1 1 1]; // Adiciona grade

// Adiciona cores para melhor visualização
e = gce();
e.thickness = 2;
e.foreground = color("blue");

subplot(2,2,4);
param3d(xxr, yyr, zzr,'m'); // Plota as trajetórias em 3D

// Configurações do gráfico
xtitle("Atrator de Rossler", "X", "Y", "Z");
gca().rotation_angles = [60, 45]; // Ajusta o ângulo de visualização
gca().grid = [1 1 1]; // Adiciona grade

// Adiciona cores para melhor visualização
e = gce();
e.thickness = 2;
e.foreground = color("blue");

 

Nenhum comentário:

Postar um comentário