MATLAB 双吸引子 代码
时间: 2024-05-03 20:19:39 浏览: 11
双吸引子是一种经典的混沌系统,其数学模型可以用 Lorenz 方程来描述。MATLAB 中可以使用 ode45 函数来求解 Lorenz 方程,并绘制双吸引子图形。
下面是 MATLAB 的代码:
```matlab
% 定义 Lorenz 方程
function dxdt = lorenz(t, x)
sigma = 10;
rho = 28;
beta = 8/3;
dxdt = [sigma * (x(2) - x(1));
x(1) * (rho - x(3)) - x(2);
x(1) * x(2) - beta * x(3)];
end
% 求解 Lorenz 方程
[t, X] = ode45(@lorenz, [0, 50], [1, 1, 1]);
% 绘制双吸引子图形
plot3(X(:,1), X(:,2), X(:,3));
hold on;
plot3(X(1,1), X(1,2), X(1,3), 'bo'); % 初始点用蓝色圆点标记
plot3(X(end,1), X(end,2), X(end,3), 'r*'); % 终止点用红色星号标记
grid on;
xlabel('x');
ylabel('y');
zlabel('z');
title('Lorenz Attractor');
```
在这个代码中,我们首先定义了 Lorenz 方程,然后使用 ode45 函数求解这个方程。最后,我们使用 plot3 函数绘制双吸引子图形。这个图形是一个三维图形,其中 x,y,z 分别对应 Lorenz 方程中的三个变量。