Аттрактор Лоренца
Система Лоренца - это система обыкновенных дифференциальных уравнений, впервые изученная математиком и метеорологом Эдвардом Лоренцем: \[\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