二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

这篇具有很好参考价值的文章主要介绍了二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘 要:混沌(Chaos)是指发生在确定系统中的貌似随机的不规则运动,本文将基于经典的二维系统,然后根据动力学方程研究其混沌产生过程以及相对应的MATLAB仿真,再讨论Lyapunov指数以及正平衡点。

上一篇中介绍了一维系统,这次我们将维数提升到二。

/*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/

目录

0 引言

1 厄农(Henon)映射

1.1系统的混沌

1.2 最大Lyapunov指数

1.3系统正平衡点的求解

2 Lotka-Volterra捕食模型的混沌

2.1系统的混沌发展

2.2最大Lyapunov指数

2.3正平衡点的求解

 3 总结

 参考文献


0 引言

对于一维离散混沌系统来说,其具有形式简单、产生混沌序列时间短等优点。但其缺点是空间太小,难以处理较为复杂的情况。因此本文将从经典的二维混沌系统入手以此为基础,研究动力学系统的发展、混沌的产生以及相应的MATLAB仿真,借此建立一个对二维混沌系统有更为完整的认识与理解。

1 厄农(Henon)映射

1.1系统的混沌

厄农映射是由法国数学家米歇尔·厄农提出的,以此作为洛伦茨模型的庞加莱截面的简化模型。对经典厄农映射而言,任意初始点或趋向厄农奇异吸引子,或发散至无穷大。厄农吸引子具有分形结构,其在一个方向上连续,另一个方向上则为一个康托尔集,其方程动力学微分方程为:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

其中:a、b为系统的参数分别取为0.4、0.3,其对应MATLAB程序如下:

%厄农映射
%x(j+1)=1+yj-a*xj*xj
%y(j+1)=b*xj
clc
clear all
close all
a=0.4;b=0.3;%系统参数设置
xjL=[];yjL=[];
for k=1:140%迭代次数
    a=0.5+(k-1)*0.01;
xj=[];yj=[];
    x=0.1;y=0.1;
for j=1:200
        x=1+y-a*x*x;y=b*x;%系统函数
xj=[xj;j x];  
yj=[yj;j y];
if j>=120
xjL=[xjL;a b x];    
yjL=[yjL;a b y]; 
end
end
end
plot(xjL(:,1),xjL(:,3),'k.')
%坐标轴设置
xlabel('\itt','FontSize',20,'FontName','Times New Roman');
ylabel('\itx','FontSize',20,'FontName','Times New Roman');
grid on;

仿真结果: 

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

其中,横轴代表迭代时间,纵轴为迭代值x.从图中可以看出,在出现两次分岔之后,系统进入混沌状态混沌状况。

1.2 最大Lyapunov指数

根据系统参数a的变化,计算得到函数的最大Lyapunov指数,其程序如下:

clc, clear
a=0:0.01:1.6; n=140; S=[];
for j=1:length(a)
    x=0.2; y=0.3; %x,y的初值
    for i=1:n
        x2=1-a(j)*x^2+y; y=0.3*x; x=x2; %首先进行序列迭代
    end
    if x(end)>-100 & x(end)<100 %若不发散,再计算指数
        x=0.2; y=0.3; %设立二阶单位矩阵
        JJ=eye(2);
        for i=1:n
            x2=1-a(j)*x^2+y; y=0.3*x; x=x2;
            J=[-2*a(j)*x, 1; 0.3, 0]; %分别对两迭代式对于x、y求偏导数
            JJ=JJ*J;
        end
        L=eigs(JJ,1); %求模最大的特征值
        S=[S,[a(j);log(abs(L))/n]]; %把a值及指数值保存
    end
end
plot(S(1,:),S(2,:),'.-') %画出a对应的最大Lyapunov指数
hold on, plot([a(1),a(end)],[0,0],'k')
xlabel('\it a'), ylabel('最大Lyapunov指数')

 得最大Lyapunov指数变化图:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

1.3系统正平衡点的求解

根据微分方程(1),利用平衡条件:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

可得:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

变化一下,可得:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

利用matlab的solve函数求解,其程序为:

syms S L 
a=0.4;b=0.3;%系统参数设置
[solS,solL]=solve(1-a*S^2+L-S==0,b*S-L==0,S,L)%列出方程组
solutions=[solS,solL]
x1=double(solS)%an*的值
x2=double(solL)%bn*的值

计算结果为: 

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

可得正平衡点E*为: 

 二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

2 Lotka-Volterra捕食模型的混沌

在捕食系统中,最经典的捕食模型就是Lotka-Volterra模型(简称L-V模型),其模型方程为: 

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

L-V模型中,分别表示再t时刻食饵和捕食者的密度,而则分别表示食饵和捕食者在t时刻的种群密度变化量。代表食饵种群内自然增长率、代表捕食者对食饵捕食的所造成的影响(或者说威胁)、代表捕食者种群内部因素带来的数量变化,比如生老病死亦或同族之间的相互争斗带来的影响、代表食饵对捕食者所提供的积极影响,即提供食物来源。 

2.1系统的混沌发展

把系统参数中的当作一个变化的参数,而另外的、、当作常数,就可以利用类似于得到Logitic模型分叉图那样调制得到L-V模型的系统分叉图,其相应程序为: 

clc
clear all
close all
a10=1.4;
xjL=[];yjL=[];
for k=1:120
    a10=1.4+(k-1)*0.001;
xj=[];yj=[]; 
    x=0.6667,y=3.500;
   for j=1:20
       x=x*(a10-0.4*y);
       y=y*(-0.2+0.3*x);
xj=[xj;j x];
yj=[yj;j y];
       if j>=15
xjL=[xjL;a10 x];
yjL=[yjL;a10 y];
       end
   end
end
plot(xjL(:,1),xjL(:,2),'.k')
xlabel('\itt','FontSize',20,'FontName','Times New Roman');
ylabel('\itx','FontSize',20,'FontName','Times New Roman');
grid on;

得分岔图:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

从上图可以看到,从起点出发,随着迭代次数的增加(即繁殖代数),物种x1开始慢慢出现出现6条分岔。

2.2最大Lyapunov指数

根据系统参数a10的变化,计算得到函数的最大Lyapunov指数,其程序如下:

clc, clear
a=0:0.01:1.6; n=140; S=[];
for j=1:length(a)
     x=0.6667,y=3.500; %x,y的初值
    for i=1:n
        x2=a(j)*x-0.4*x*y; y2=1.2*y+0.3*x*y;x=x2; %首先进行序列迭代
    end
    if x(end)>-100 & x(end)<100 %若不发散,再计算指数
    x=0.6667,y=3.500;
        JJ=eye(2);
        for i=1:n
            x2=a(j)*x-0.4*x*y; y2=1.2*y+0.3*x*y; x=x2;
            J=[a(j)-0.4*y,-0.4*x;0.3*y, 1.2+0.3*x];
            JJ=JJ*J;
        end
        L=eigs(JJ,1); %求模最大的特征值
        S=[S,[a(j);log(abs(L))/n]]; %把a值及指数值保存
    end
end
plot(S(1,:),S(2,:),'.-') %画出a对应的最大Lyapunov指数
hold on, plot([a(1),a(end)],[0,0],'k')
xlabel('\it a'), ylabel('最大Lyapunov指数')

 仿真结果为:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

2.3正平衡点的求解

我们设平衡点为由于各个种群的变化率为0,由上文中的模型可得: 

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

求解该方程组,我们可以用到solve函数来求解,其对应程序如下: 

%计算正平衡点
symsxy%定义自变量
symsa10a12a20a22a21%定义系数
[solx,soly]=solve(x*(a10-a12*y)==0,y*(-a20+a21*x)==0,x,y)
solutions=[solx,soly]%方程组
m=double(solx)%x1*的值
k=double(soly)%x2*的值

 结果为:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

带入系统参数:

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

 可求得正平衡点E*(0.6667,3.500)

 3 总结

根据上述例子,我们可以看到对于二维系统而言,当有两个系统参数时,为了简化计算我们可以尝试着只改变其中一个参数,而将另外一个参数设为常数。当然对于多个系统参数的系统,也可以只设置一个变量参数,另外几个设置为常量参数。当然如果需要讨论不同参数的作用时,我们可以采用控制变量法,依次讨论各个参数的迭代变化所带来的影响。

最大Lyapunov指数的求取也可以对系统的混沌状态进行刻画,即大于0时,系统是处于混沌状态。而正平衡点的求取,可以找出系统所处平衡状态的节点,这也对找出系统的混沌,以及对混沌状态的模拟提供了依据。文章来源地址https://www.toymoban.com/news/detail-446125.html

 参考文献

  1. 柯赟,蒋天发.基于离散余弦和Contourlet混合变换域的图像水印方案.武汉大学学报:工学版,2012,45(2):264-267.

到了这里,关于二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于卡尔曼滤波进行四旋翼动力学建模(Simulink&Matlab)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来

    2024年02月11日
    浏览(47)
  • MindSponge分子动力学模拟——定义一个分子系统(2023.08)

    在前面两篇文章中,我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用教程。这里我们进入到实用化阶段,假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境,开始用MindSponge去做一些真正的分子模拟的工作。那么分子模拟的第一步,我们就需

    2024年02月11日
    浏览(41)
  • 【工具篇】拉格朗日动力学建模及系统设置初值求变量

    机器人的动力学方程通常可以通过 牛顿-欧拉公式 或 拉格朗日动力学公式 得到。 关于机器人动力学是什么,可以参考Robitics公众号的这一系列文章干货 | 机械臂的动力学(二):拉格朗日法;或者在CSDN上找,资料很多,如机器人动力学——拉格朗日法 ——简单来说, 牛顿

    2024年02月07日
    浏览(42)
  • 机器人动力学与控制学习笔记(十七)——基于名义模型的机器人滑模控制

            滑模运动包括趋近运动和滑模运动两个过程。系统从任意初始状态趋向切换面,直到到达切换面的运动称为趋近运动,即趋近运动为的过程。根据滑模变结构原理,滑模可达性条件仅保证由状态空间任意位置运动点在有限时间内到达切换面的要求,而对于趋近运动的

    2024年02月12日
    浏览(48)
  • 机器人学基础(3)-动力学分析和力-拉格朗日力学、机器人动力学方程建立、多自由度机器人的动力学方程建立

    本章节主要包括拉格朗日力学、拉格朗日函数及建立求解、多自由度机器人的动力学方程、机器人的静力分析、坐标系间力和力矩的变换,主要结合例题进行掌握理解 动力学分析是为了研究机器人应该以多大力进行驱动,虽然根据运动学方程+微分运动可以得到机器人的位置

    2024年02月05日
    浏览(64)
  • 飞行动力学 - 第17节-part3-垂尾和推进系统对航向的影响 之 基础点摘要

    平尾对航向静稳定性的影响机理与机翼相同,由于尺寸小,通常可忽略 垂尾是航向静稳定性的最大来源 其贡献取决于 l v l_v l v ​ , S v S_v S v ​ , AR, ∧ v wedge_v ∧ v ​ , 后机身几何形状及垂尾出的侧洗角 δ delta δ 亚音速、方向舵中立位置下,垂尾所产生的侧力: 垂尾产生的

    2024年02月09日
    浏览(69)
  • 【现代机器人学】学习笔记七:开链动力学(前向动力学Forward dynamics 与逆动力学Inverse dynamics)

    这节的内容主要讲述机器人动力学的内容。相对于本书其他部分运动学内容相比,把动力学一下子合成了一章。看完以后有三个感受: 1.本章难度相对其他章节较大,因此需要反复去看,以求对重要内容的眼熟,不求全部记住,但只求说起某块内容时,心中有数。2.阅读时一

    2024年02月14日
    浏览(47)
  • 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(空间位姿表示与动力学)

    随着我们了解到机器人如何建立运动学模型和动力学模型之后,我们可以使用Matlab中的仿真工具箱内来对模型的准确性进行验证,并且可以通过内置的函数进行简单的轨迹规划和可视化观察,本节涉及到的工具箱是MATLAB自带的Robotics Toolbox工具箱。 平移与旋转函数: SE2(x,y,t

    2024年02月07日
    浏览(51)
  • 自动驾驶——车辆动力学模型

    A矩阵离散化 B矩阵离散化 反馈计算 前馈计算: 超前滞后反馈:steer_angle_feedback_augment 参考【运动控制】Apollo6.0的leadlag_controller解析 控制误差计算 横向距离误差计算 横向误差变化率计算 航向角误差计算 航向角误差变化率计算 参考:Apollo代码学习(三)—车辆动力学模型

    2024年02月12日
    浏览(57)
  • 盐构造发育的动力学机制

    盐构造可以由以下6 种机制触发引起(图 2)[18] :①浮力作用;②差异负载作用;③重力扩张作 用;④热对流作用;⑤挤压作用;⑥伸展作用。盐体 的塑性流动和非常规变形是盐构造的主要特点,岩 盐有时在几百m 深处就可以流动,这主要与盐的纯度、地温梯度和盐的干湿度等因

    2024年02月20日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包