Аттрактор Лоренца

Система Лоренца - это система обыкновенных дифференциальных уравнений, впервые изученная математиком и метеорологом Эдвардом Лоренцем: \[\begin{aligned} & x' = -s x + sy \\ & y' = -xz+rx-y \\ & z' = xy-dz \\ \end{aligned}\]

При определенных значениях параметров и начальных условий эта система имеет хаотические решения, например, при \[d = 8/3, \quad s = 10, \quad r = 28,\] \[x_0=-8, \quad y_0 = 8, \quad z_0 = 27\]

Хаотические системы могут быть полностью детерминированными, но при этом оставаться непредсказуемыми на длительных интервалах времени.

Файл-функция правых частей дифференциального уравнения (dqdt.m):

function dq = dqdt(t,q,p)
    x = q(1);
    y = q(2);
    z = q(3);
    
    s = p.s;
    r = p.r;
    d = p.d;

    dx = -s*x+s*y;
    dy = -x*z+r*x-y;
    dz = x*y-d*z;

    dq = [dx;dy;dz];
end

Главный файл-скрипт (lorenz_system.m)

p.s = 10;
p.r = 28;
p.d = 2.67;

x0 = -8;
y0 = +8;
z0 = +27;

np = 6;

tlist = 0:0.01:200;

q = zeros(numel(tlist),3,np);

% Исследуем влияние параметра s 
s = [3, 4, 5.2, 10, 17.82, 18];

opt = odeset('RelTol',1e-8,'AbsTol',1e-8);

for i = 1:np
    p.s = s(i);
    [t,q(:,:,i)] = ode45(@(t,q) dqdt(t,q,p),tlist,[x0;y0;z0],opt);
    subplot(3,2,i);
    plot3(q(:,1,i),q(:,2,i),q(:,3,i),'LineWidth',0.8);
    xlabel('x');ylabel('y');zlabel('z');
    view(45,20);    
    box on;
    title(sprintf('s=%4.2f',s(i)));
    grid;
    xlim([-30 30])
    ylim([-30 30])
    zlim([0 50])
end


© 2024. All rights reserved.

Powered by Hydejack v9.1.6