复现混沌同步的图像,但是复现出的图不对,想知道代码哪里出问题了

img

img


混沌同步
复现上面的图
写的代码如下
但是出的图并不一样
不知道代码哪里出问题了


function dxdt = driver_system(t, x)
    alpha = 0.98; % 可根据需要设置 alpha 的值
    dxdt = zeros(2, 1);
    dxdt(1) = x(2)^(1/alpha);
    dxdt(2) = (x(1) - x(1) * abs(x(1)) + 0.05 * x(2) * (1 - x(2)^2) + 0.4 * sin(t))^(1/alpha);
end
function [u1, u2] = control_function(t, x, y, alpha)
    e1 = x(1) - y(1);
    e2 = x(2) - y(2);
    u1 = e1 + e2;
    u2 = 1.05 * e2 + e1 - x(1) * abs(x(1)) + y(1) * abs(y(1))  - 0.05 * x(2)^3 + 0.05 * y(2)^3;
end
function dydt = response_system(t, y)
    alpha = 0.98; % 可根据需要设置 alpha 的值
    x = [y(1); y(2)]; % x 是通过测量得到的驱动系统输出
    [u1, u2] = control_function(t, x, y, alpha);
    dydt = zeros(2, 1);
    dydt(1) = (y(2) + u1)^(1/alpha);
    dydt(2) = (y(1) - y(1) * abs(y(1)) + 0.05 * y(2) * (1 - y(2)^2) + 0.4 * sin(t) + u2)^(1/alpha);
end
function main()
    % 设置仿真时间范围
    tspan = [0 10];
    
    % 设置初始条件
    x0 = [3; -3]; % 初始状态值
    y0 = [-3; 2];
    
    % 解驱动系统和响应系统的微分方程
    [~, X] = ode45(@driver_system, tspan, x0);
    [~, Y] = ode45(@response_system, tspan, y0);
    
    
    % 绘制 y(1) 与时间 t 的图像

  figure;
plot(Y(:,1));
axis([0 100 -4 3]);
end






img

求大家指点

你得复现代码怎么来的