二维离散动力学系统的混沌研究【基于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系统的混沌
厄农映射是由法国数学家米歇尔·厄农提出的,以此作为洛伦茨模型的庞加莱截面的简化模型。对经典厄农映射而言,任意初始点或趋向厄农奇异吸引子,或发散至无穷大。厄农吸引子具有分形结构,其在一个方向上连续,另一个方向上则为一个康托尔集,其方程动力学微分方程为:
其中: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:200x=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;
仿真结果:
其中,横轴代表迭代时间,纵轴为迭代值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:nx2=1-a(j)*x^2+y; y=0.3*x; x=x2; %首先进行序列迭代endif x(end)>-100 & x(end)<100 %若不发散,再计算指数x=0.2; y=0.3; %设立二阶单位矩阵JJ=eye(2);for i=1:nx2=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;endL=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指数变化图:
1.3系统正平衡点的求解
根据微分方程(1),利用平衡条件:
可得:
变化一下,可得:
利用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*的值
计算结果为:
可得正平衡点E*为:
2 Lotka-Volterra捕食模型的混沌
在捕食系统中,最经典的捕食模型就是Lotka-Volterra模型(简称L-V模型),其模型方程为:
L-V模型中,分别表示再t时刻食饵和捕食者的密度,而则分别表示食饵和捕食者在t时刻的种群密度变化量。代表食饵种群内自然增长率、代表捕食者对食饵捕食的所造成的影响(或者说威胁)、代表捕食者种群内部因素带来的数量变化,比如生老病死亦或同族之间的相互争斗带来的影响、代表食饵对捕食者所提供的积极影响,即提供食物来源。
2.1系统的混沌发展
把系统参数中的当作一个变化的参数,而另外的、、当作常数,就可以利用类似于得到Logitic模型分叉图那样调制得到L-V模型的系统分叉图,其相应程序为:
clc
clear all
close all
a10=1.4;
xjL=[];yjL=[];
for k=1:120a10=1.4+(k-1)*0.001;
xj=[];yj=[]; x=0.6667,y=3.500;for j=1:20x=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];endend
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;
得分岔图:
从上图可以看到,从起点出发,随着迭代次数的增加(即繁殖代数),物种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:nx2=a(j)*x-0.4*x*y; y2=1.2*y+0.3*x*y;x=x2; %首先进行序列迭代endif x(end)>-100 & x(end)<100 %若不发散,再计算指数x=0.6667,y=3.500;JJ=eye(2);for i=1:nx2=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;endL=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指数')
仿真结果为:
2.3正平衡点的求解
我们设平衡点为由于各个种群的变化率为0,由上文中的模型可得:
求解该方程组,我们可以用到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*的值
结果为:
带入系统参数:
可求得正平衡点E*(0.6667,3.500)
3 总结
根据上述例子,我们可以看到对于二维系统而言,当有两个系统参数时,为了简化计算我们可以尝试着只改变其中一个参数,而将另外一个参数设为常数。当然对于多个系统参数的系统,也可以只设置一个变量参数,另外几个设置为常量参数。当然如果需要讨论不同参数的作用时,我们可以采用控制变量法,依次讨论各个参数的迭代变化所带来的影响。
最大Lyapunov指数的求取也可以对系统的混沌状态进行刻画,即大于0时,系统是处于混沌状态。而正平衡点的求取,可以找出系统所处平衡状态的节点,这也对找出系统的混沌,以及对混沌状态的模拟提供了依据。
参考文献
- 柯赟,蒋天发.基于离散余弦和Contourlet混合变换域的图像水印方案.武汉大学学报:工学版,2012,45(2):264-267.
二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】相关推荐
- 一维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_8】
摘 要:混沌(Chaos)是指发生在确定系统中的貌似随机的不规则运动,本文将基于几种经典的一维动力学方程系统,根据其动力学方程研究其混沌产生过程以及相对应的MATLAB仿真. /*仅当作学习笔记,若有 ...
- 基于Duffing系统的分数阶混沌研究【基于matlab的动力学模型学习笔记_5】
/*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/ 前面的几篇博文我们提到提到的都是整数阶模型,这里我们将对分数阶模型进行一个简单的研究. 摘要:与整数阶混沌相比,分数 ...
- 【概率论与数理统计】猴博士 笔记 p11-14 一维、二维离散型求分布函数和期望、方差
一维离散型求分布函数 通过一道例题来掌握这种题怎么做: 解: 一些补充: FX(x)表示的是P{X≤x}F_X(x)表示的是P \{X \le x\} FX(x)表示的是P{X≤x} 如果只有X一个 ...
- 基于Android的二维码识别系统的研究与实现(eclipse开发)
目 录 1 Android系统开发背景与意义 1 1.1 Android系统平台的出现 1 1.2 Android系统的发展 1 1.3 Android系统架构的介绍 1 1.4 Android开放系 ...
- 基于主要成分分析的人脸二维码识别系统-含Matlab代码
目录 一.引言 二.人脸图像信息处理 2.1 主成分分析PCA 2.2 PCA人脸压缩与重构算法分析 三.二维码转换以及识别 3.1 QR码 3.2 将人脸图像生成二维码 3.3 二维码的识别与图像还 ...
- 基于MATLAB的条码二维码识别系统
基于MATLAB的条码二维码识别系统 课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大 ...
- 对图像进行二维离散Fourier变换
用函数fft2对图像进行二维离散Fourier变换.用图像的形式分别显示清晰的频谱幅度和相位.对图像用窗函数加权,观察其Fourier变换,解释加窗前后的变化.对图像作Fourier变换和反变换.将图 ...
- 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换
目录 二变量函数的傅里叶变换 二维冲激及其取样性质 二维连续傅里叶变换对 二维取样和二维取样定理 图像中的混叠 二维离散傅里叶变换及其反变换 二变量函数的傅里叶变换 二维冲激及其取样性质 两个连续变量 ...
- 单尺度二维离散小波重构(逆变换)idwt2
clc,clear all,close all; load woman; %单尺度二维离散小波分解.分解小波函数haar [cA,cH,cV,cD]=dwt2(X,'haar'); %单尺度二维离散小 ...
最新文章
- 4 年开发 43 款软件,这位乡村教师火了
- centos中ifcfg-eth0配置ip后,重启network服务提示地址已被使用
- c++ 11.一维数组
- 如何在机器学习项目中使用统计方法的示例
- 记录cocos2d-x3.0版本号更改内容官方说明
- SAP License:AM手工折旧计算外折旧
- 学习python菜鸟教程
- springcloud之ribbon负载均衡
- 「数据集」一文道尽人脸数据集
- android toast通知关闭,Android Toast通知用法实例详解
- 解决jqueryUI img tilte样式不显示问题
- TPM设备管理之设备采购方法及注意事项
- 2019年安徽省大数据与人工智能应用赛总结---本科组
- Postman couldn‘t upload file
- 自动化测试框架之unittest
- GIFCAM GIF录制编辑工具 V5.5中文版 GIF制作
- scrapy链接mysql_Scrapy存入MySQL(四):scrapy item pipeline组件实现细节
- fire.fire_如何将第三方控制器与Fire TV和Fire TV Stick配对
- 电脑上快速剪辑歌曲的方法
- 引领时代变化的人都是“骗子”
热门文章
- python和stata哪个数据分析实例,STATA数据分析案例:Zoutendijk可行方向法
- 可行方向法的matlab代码,zoutendijk 可行方向法的matlab实现
- win10网页找不到服务器dns,教你win10打开网页提示无法解析服务器dns地址的解决教程。...
- Python AutoCAD 注释
- 头脑王者服务器维护,微信头脑王者请求超时及查询服务器失败的解决方法
- html p代码的效果,html元素 p 标签的使用方法及作用
- Arcgis利用dem数据生成等高线
- 流动性风险与次贷危机
- Python爬虫JD杜蕾斯源码
- matplotlib中导入中文字体