模拟二维立方映射系统- MATLAB

本文介绍了一个MATLAB函数,用于模拟二维立方映射系统并计算Lyapunov指数,以研究其混沌行为。函数通过迭代计算状态变化和Lyapunov指数,展示了系统对初始条件的敏感性。
摘要由CSDN通过智能技术生成

二维立方映射系统

这段代码是一个用于模拟二维立方映射系统的 MATLAB 函数。给定参数a、b、g、初始值x0、y0,以及迭代次数N,函数将模拟系统的演化,并返回演化的轨迹x和y,以及系统的Lyapunov指数Ly。
在函数中:首先初始化了x和y的数组,并给定了初始值x0和y0。
接着,采用迭代的方式计算了系统的状态变化,其中x(i)和y(i)分别代表第i次迭代后的x和y的值。
在每一步迭代中,计算了雅可比矩阵J,并根据J更新了Q矩阵,然后通过QR分解计算了Lyapunov指数的估计值Ly。
最后,返回了模拟系统演化的轨迹x和y,以及Lyapunov指数的估计值Ly。值得注意的是,Lyapunov指数在混沌系统中通常用来衡量系统对初始条件的敏感程度,
这段代码是模拟系统的混沌行为并估计Lyapunov指数。

function [x,y,Ly]=TwoDCubic(a,b,g,x0,y0,N)
x=zeros(1,N);
y=x;
x(1)=x0;
y(1)=y0;
Q=eye(2);
temp=zeros(1,2);
Ly=zeros(2,N);
for i=2:N
    x(i)=a*x(i-1)^3-b*(1+g*cos(y(i-1)))*x(i-1);
    y(i)=y(i-1)+x(i-1);
    
    J(1,1)=3*a*x(i-1)^2-b*(1+g*cos(y(i-1)));
    J(1,2)=b*g*sin(y(i-1))*x(i-1);
    J(2,1)=1;
    J(2,2)=1;

     B=J*Q;
     [Q,R]=qr(B);
     for j=1:2
         temp(j)= temp(j)+log(abs(R(j,j)));
     end
     Ly(:,i)=temp./i;
      
end

测试运行程序如下:

clc;clear
a=2.5;b=1.8;       %输入参数,x0、y0是初始值
x0=0.1;y0=0.1;
g=0.1446;N=10000;    %N是迭代次数
[x,y]=TwoDCubic(a,b,g,x0,y0,N);      %调用TwoDCubic函数生成二维曲线的数据
figure
plot(x(2000:end),y(2000:end),'.b','MarkerSize',1)
xlabel('\itx')
ylabel('\ity')
xlim([-1.5,1.5])
grid on;
set(gca,'linewidth',0.5,'fontsize',12,'fontname','Times');
figure
plot(x(1:1000))
%--------------------------------------------------------------------------
clc;clear
a=2.5;b=1.8;
x0=0.1;y0=0.1;
g=0.5;N=10000;
L=250;
G=linspace(0,0.6,L);
Lyy=zeros(2,L);
for i=1:L
    g=G(i);
    
    [x,y,Ly]=TwoDCubic(a,b,g,x0,y0,N);
    Lyy(:,i)=Ly(:,end);
    data=y(5000:end);
    Com(i)=COFuZadu(data,15);
plot(g,data(end-20:end),'b.');
hold on
    disp(i)
end
figure
plot(G,Lyy)        %调用plot函数绘制出参数g与最终结果之间的关系
  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值