【matlab混沌理论】1.2.洛伦兹吸引子

发布时间 2023-12-12 21:35:56作者: 屋檐下的树叶
【matlab混沌理论】1.2.洛伦兹吸引子

Lorenz洛伦兹吸引子。定义洛伦兹函数组后,通过ode45函数求解此微分方程方程。

input:

% Lorenz函数的洛伦兹吸引子

% 2.定义模型参数
sigma = 10; 
beta = 8/3;
rho = 28; 
% 定义一组初始条件和一个时间间隔
x0 = [1, 0, 0.5];
tspan = 0:.01:100;

% 3.解常微分方程,定义一个选项结构来设置ode45的参数
options = odeset('RelTol', 1e-4, 'AbsTol', [1e-4 1e-4 1e-4]);
% ode45函数求解洛伦茨方程
[t, x] = ode45(@(t,x) LorenzFunc(t, x, sigma, rho, beta), tspan, x0, options);

% 4.绘制洛伦兹吸引子
plot3(x(:,1), x(:,2), x(:,3), 'linewidth', 0.5); 
xlabel("x"); ylabel("y"); zlabel("z");
title('洛伦兹吸引子图(Lorenz Attractor)');
grid on

% 1.先定义洛伦兹方程,使用ode45函数来求解常微分方程组。
function dxdt = LorenzFunc(t, x, sigma, rho, beta)
    dxdt = [sigma*(x(2)-x(1));      % dx/dt = sigma*(y-x)
    x(1)*(rho-x(3))-x(2);           % dy/dt = x*(rho-z)-y
    x(1)*x(2) - beta*x(3)];         % dz/dt = xy - betaz
end