二维线图标记轴并添加坐标如下程序(命令行窗口)

 x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
xlabel('x')
ylabel('sin(x)')
title('Plot of the Sine Function')

典型混沌系统matlab仿真

logistic映射(逻辑斯蒂映射)


其中mu是增长率,即为需要调节的控制参数

按照时间序列进行迭代映射仿真

若设系统初值为0.1,迭代50次,分别选取mu=0.5、2.8、3、3.3、3.5、4。用matlab编程仿真,画出不同的mu时的X(n)。仿真程序如下所示:

clear all;close all;
mu=0.5;        %Growth rate parameter
x=0.6*ones(1,200); %Create a matrix 1*200
% Iterative 200 times
for n=1:200 x(n+1)= mu * x(n) * (1- x(n));
end
plot(x(1,:),'k','MarkerSize',10);
xlabel('n');
ylabel('x(n)');
title('logistic(\mu=0.5)');






分岔的极限形态图仿真

mu=2.6:3e-5:4;%From 2.6 to 4, increasing gradually at 3e-5 intervals
k=length(mu);
x=linspace(0.6,0,k);%There's a linear spacing between zero and one, and the spacing is 1/(k-1)
for n=1:kx(n+1)=mu(n)*x(n)*(1-x(n));plot(mu,x(1,:),'k.');xlabel('\mu');ylabel('x(n)');
end

Lorenz系统(洛伦兹方程)


设系统的初始状态为(5,5,5),sigma=10,b=8/3,r=28,在matlab中调用ode45工具对该微分方程组ODE进行运动求解,得到系统的相图与混沌时序图如下所示:

ICs=[5, 5, 5];  % Your data
t=[0, 20];      % Your simulation space
OPTs = odeset('reltol', 1e-6, 'abstol', 1e-8);  % Optional ODE options set up
[time, fOUT]=ode45(@LORENZ_sys_1ODE, t, ICs, OPTs);
close all
%在该程序中调用ode45,并且在程序最后声明洛伦兹方程 function  df = LORENZ_sys_1ODE(~, x)
% HELP: Lorenz Functions
% dx/dt=-sigma*x+sigma*y;
% dy/dt=r*x-y-x*z;
% dz/dt=x*y-b*z;
sigma=10; b=8/3; r=28;
% ICs: x(0)=5; y(0)=5; z(0)=5;  % Your ICs
df=[-sigma*x(1)+sigma*x(2); ...r*x(1)-x(2)-x(1)*x(3);...x(1)*x(2)-b*x(3)];
end

由此整个运动系统便被构造并调取了出来,在此基础上依次加入不同图像函数即可生成各种所需图像:

figure
plot3(fOUT(:,1), fOUT(:,2), fOUT(:,3)), grid
xlabel('x(t)'), ylabel('y(t)'), zlabel('z(t)')
title('LORENZ functions x(t) vs. y(t) vs. z(t)')
axis tight

由上述程序生成的图像如下图所示:

figure
comet3(fOUT(:,1), fOUT(:,2), fOUT(:,3))

由上述程序生成的图像如下图所示:(呈现出系统从初始给定点不断运动的图像,发现这些线始终是一个轨道且不交叉)

figure
subplot(3,1,1)
plot(time, fOUT(:,1), 'b','linewidth', 3), grid minor
title 'LORENZ functions x(t), y(t), z(t)', xlabel 'time', ylabel 'x(t)'
subplot(312)
plot( time', fOUT(:,2), 'r', 'linewidth', 2 ), grid minor
xlabel 'time', ylabel 'y(t)'
subplot(313)
plot(time, fOUT(:,3),'k', 'linewidth', 2), grid minor, xlabel 'time', ylabel 'z(t)'

由上述程序生成的图像如下图所示:

figure
plot(fOUT(:,1), fOUT(:,2), 'b', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('x(t)'), ylabel 'y(t)'
axis square

由上述程序生成的图像如下图所示:

figure
plot(fOUT(:,1), fOUT(:,3), 'k', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('x(t)'), ylabel 'z(t)'
axis square

由上述程序生成的图像如下图所示:

figure
plot(fOUT(:,2), fOUT(:,3), 'm', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('y(t)'), ylabel 'z(t)'
axis square

由上述程序生成的图像如下图所示:

整篇Lorenz方程混沌运动形态的matlab仿真代码如下:

ICs=[5, 5, 5];  % Your data
t=[0, 20];      % Your simulation space
OPTs = odeset('reltol', 1e-6, 'abstol', 1e-8);  % Optional ODE options set up
[time, fOUT]=ode45(@LORENZ_sys_1ODE, t, ICs, OPTs);
close all
figure
plot3(fOUT(:,1), fOUT(:,2), fOUT(:,3)), grid
xlabel('x(t)'), ylabel('y(t)'), zlabel('z(t)')
title('LORENZ functions x(t) vs. y(t) vs. z(t)')
axis tight
figure
comet3(fOUT(:,1), fOUT(:,2), fOUT(:,3))figure
subplot(3,1,1)
plot(time, fOUT(:,1), 'b','linewidth', 3), grid minor
title 'LORENZ functions x(t), y(t), z(t)', xlabel 'time', ylabel 'x(t)'
subplot(312)
plot( time', fOUT(:,2), 'r', 'linewidth', 2 ), grid minor
xlabel 'time', ylabel 'y(t)'
subplot(313)
plot(time, fOUT(:,3),'k', 'linewidth', 2), grid minor, xlabel 'time', ylabel 'z(t)'figure
plot(fOUT(:,1), fOUT(:,2), 'b', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('x(t)'), ylabel 'y(t)'
axis square
figure
plot(fOUT(:,1), fOUT(:,3), 'k', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('x(t)'), ylabel 'z(t)'
axis square
figure
plot(fOUT(:,2), fOUT(:,3), 'm', 'linewidth', 1.5)
grid minor, title('LORENZ functions'), xlabel('y(t)'), ylabel 'z(t)'
axis squarefunction  df = LORENZ_sys_1ODE(~, x)
% HELP: Lorenz Functions
% dx/dt=-sigma*x+sigma*y;
% dy/dt=r*x-y-x*z;
% dz/dt=x*y-b*z;
sigma=10; b=8/3; r=28;
% ICs: x(0)=5; y(0)=5; z(0)=5;  % Your ICs
df=[-sigma*x(1)+sigma*x(2); ...r*x(1)-x(2)-x(1)*x(3);...x(1)*x(2)-b*x(3)];
end

当然在编写程序时有需要注意的小知识点








Henon映射

a=1.4;
b=0.3;
x(1)=0.4;
y(1)=0.4;
for i=1:10000x(i+1)=1-a*x(i)^2+y(i);y(i+1)=b*x(i);
end
plot(x,y,'.');
xlabel('x');
ylabel('y');

三维混沌系统的李雅普洛夫指数仿真

在matlab中分成两个.m文件编写,一个为李亚普洛夫指数生成文件,另一个是运动学方程编写文件,其中需要调用function函数和ode45功能

clc;
clear all;
close all;e=0;
global parameter;scan = linspace(0.027, 0.07, 150); %在0.027-0.07区间内等间隔取150个点,作为横坐标采样点
for parameter = scan;    %parameter取150个输入参数值parameter
InitialTime=0; %初始时间
FinalTime=800; %终止时间
TimeStep=0.01;     %步长
RelTol=1e-5;       %Relative tolerance
AbsTol=1e-6;       %Absolute toleranceDiscardItr=150; %Iterations to be discarded不再使用的迭代次数
UpdateStepNum=10;  %Lyapunov exponents updating steps——李雅普诺夫指数更新步长
linODEnum=9;   %No. of linearized ODEs
ic=[0.1;0.1;0.2];  %Initial conditions ——初始条件%Dimension of the linearized system (total: d x d ODEs)——线性化系统的维数
d=sqrt(linODEnum); %线性化系统的维数是3
%Initial conditions for the linearized ODEs——线性化常微分方程的初始条件
Q0=eye(d); % 返回一个主对角线元素为 1 且其他位置元素为 0 的 d×d 单位矩阵。
IC=[ic(:);Q0(:)];% 李亚普洛夫指数图像的变化是跟随可变控制参数(瑞利数)变化而变化的,只要瑞利数变化一次,系统就会重回初始点重新做一次非线性运动
ICnum=length(IC);      %Total no. of initial coniditions——?初始条件
%One iteration: Duration for updating the LEs——一次迭代,更新LES的持续时间
Iteration=UpdateStepNum*TimeStep;
DiscardTime=DiscardItr*Iteration+InitialTime;%迭代时间累加,从InitialTime=0到FinalTime=800T1=InitialTime;
T2=T1+Iteration; % T1+迭代
TSpan=T1:TimeStep:T2;
%Absolute tolerance of each components is set to the same value
options=odeset('RelTol',RelTol,'AbsTol',ones(1,ICnum)*AbsTol);%确定误差容限%Initialize variables初始化变量
n=0;       %Iteration counter迭代计数
k=0;       %Effective iteration counter有效迭代计数器% (discarded iterations are not counted)丢弃的迭代不计算在内
Sum=zeros(1,d);%生成1行3列的0向量
xData=[];%生成空集
yData=[];A=[];%Main loop
while (1)n=n+1;%Integration[t,X]=ode45('Lg_F_3',TSpan,IC,options);   %调用运动方程[rX,cX]=size(X);L=cX-linODEnum;      %No. of initial conditions for %the original system原始系统的没有初始条件for i=1:dm1=L+1+(i-1)*d;m2=m1+d-1;A(:,i)=(X(rX,m1:m2))';end%QR decomposition  QR分解if d>1%The algorithm for 1st-order system doesn't require一阶系统的算法不需要%QR decomposition[Q,R]=qr(A); %X = qr(A) 返回 QR 分解 A = Q*R 的上三角 R 因子。如果 A 为满矩阵,则 R = triu(X)。如果 A 为稀疏矩阵,则 R = Xif T2>DiscardTimeQ0=Q;elseQ0=eye(d);endelseR=A;end%in the following calculation, so discard this step.在下面的计算中可省略此步骤permission=1;for i=1:dif R(i,i)==0permission=0;break;endend%To determine the Lyapunov exponents来确定李亚普诺夫指数if (T2>DiscardTime && permission)k=k+1;T=k*Iteration;TT=n*Iteration+InitialTime;%There are d Lyapunov exponents有d个李亚普诺夫指数Sum=Sum+log(abs(diag(R))');Lambda=Sum/T; %这里涉及到了李亚普洛夫指数的推导公式%Display the calculated Lyapunov exponents every 10 steps每10步显示计算出的李亚普诺夫指数if rem(k,10)==0  %表示整除,即r = rem(a,b) 返回 a 除以 b 后的余数,其中 a 是被除数,b 是除数。此函数通常称为求余运算,表达式为 r = a - b.*fix(a./b)。rem 函数遵从 rem(a,0) 是 NaN 的约定。Lambda ; % Lambda is the calculated Lyapunov exponents计算出来的李亚普诺夫指数T2    ; %Current timexData=[xData;TT]; %store the data to plotyData=[yData;Lambda];endend%If calculation is finished , exit the loop.如果计算结束,退出循环if (T2>=FinalTime)%Show the final results (for making sure the final results being shown if DisplayStep>1)if (T2>DiscardTime && permission)Lambda
%         LD      %the Lyapunov dimension李雅普诺夫维endbreak;end%Update the initial conditions and time span for the next iteration%这一步就是我第一个瑞丽数的李亚普洛夫指数值已经求完了,现在要使系统重新恢复初始条件并改变瑞利数,开始求第二个瑞利数对应的李亚普洛夫指数ic=X(rX,1:L);T1=T1+Iteration;T2=T2+Iteration;TSpan=T1:TimeStep:T2;IC=[ic(:);Q0(:)];
end     %End of main loop
pp=length(yData(:,1));
e=e+1;
ll(e,1)= yData(pp,1);
ll(e,2)= yData(pp,2);
ll(e,3)= yData(pp,3);
%ll(e,4)= yData(pp,4);将上述生成的每次迭代的李亚普洛夫指数值存储在这里面,如果要增加更高维度可在此编写
enda = scan ;
plot(a, ll(:,1),a, ll(:,2),a, ll(:,3));grid;%生成图像xlabel('x(0)')
ylabel('Lyapunov');%getBehavior = get(behavior) 构造 PropertyGetBehavior 对象来定义 mock 属性的 get 行为。通常情况下,当您定义 mock 行为时,可使用 get 方法来隐式构造 PropertyGetBehavior。
set(get(gca,'XLabel'),'FontSize',22);%图上文字为8 point或小5号
set(get(gca,'YLabel'),'FontSize',20);
set(get(gca,'TITLE'),'FontSize',15);
set(gca,'fontsize',16);legend('LE1', 'LE2', 'LE3');%给生成的曲线命名

调用function声明运动学方程的程序如下:
**注意:**要掌握在该程序中将微分方程组编写成矩阵形式的方法

function OUT=Lg_F_3(~,X)global parameter;uc=X(1);il=X(2);x=X(3);Q=[ X(4), X(7), X(10);X(5), X(8), X(11);X(6), X(9), X(12)];%ww=k1*((1-k2*(z-k3))^(-1/2));CC=0.13;
LL=parameter;duc=-1/CC * (il + (1.3*x^2-x-1.3)*uc);%系统运动方程在此输入
dil= (1/LL) * (uc);
dx= 2.01*x - 1.9*x^3+1.7*uc-2*uc*x;DX1=[duc;dil;dx]; %Output data%Linearized system %将原先的微分方程写成矩阵形式,由此构造出3*3的矩阵,内含9给变量
aa=(1.3*x.^2-x-1.3);
bb=(1.7-2*x);
cc=(2.01-1.9*3*x);J=[-aa/CC, -1/CC,  0;1/LL,      0,  0;bb,       0,  cc];%Variational equation
F=J*Q;%Output data must be a column vector
OUT=[DX1; F(:)];

由此生成的李亚普洛夫指数的图像如下所示:

混沌matlab仿真相关推荐

  1. 蔡氏混沌matlab,蔡氏混沌电路的MATLAB仿真研究_高见芳

    总第89期 第3期 2006年9月 高校实验室工作研究 SerialNO.89,NO.3 Sep.2006 蔡氏混沌电路的MATLAB仿真研究 * 高见芳 李友明 12 (1.湖南涉外经济学院 湖南 ...

  2. matlab混沌信号 仿真,蔡氏混沌电路的分析和MATLAB仿真

    与<蔡氏混沌电路的分析和MATLAB仿真>相关的范文 蔡氏二极管实现方法研究 摘要:该文首先基于一种常用的蔡氏二极管实现方法对蔡氏电路进行了仿真研究,分别使用Matlab 和PSpice ...

  3. 混沌系统matlab仿真,混沌电路仿真。 非线性同步控制,忆阻混沌仿真

    混沌系统matlab仿真,混沌电路仿真. 非线性同步控制,忆阻混沌仿真,混沌图像加密应用. ID:12150672489138544

  4. 蔡氏电路matlab程序,蔡氏电路matlab仿真报告

    <蔡氏电路matlab仿真报告>由会员分享,可在线阅读,更多相关<蔡氏电路matlab仿真报告(10页珍藏版)>请在人人文库网上搜索. 1.蔡氏电路仿真分析学院:电气工程学院班 ...

  5. 静电场的有限差分法与matlab 仿真课程设计,计算物理和MATLAB课程设计--自激振动系统的MATLAB仿真.doc...

    东北石油大学课程设计任务书 课程 计算物理和MATLAB课程设计 题目 自激振动系统的MATLAB仿真 专业 姓名 学号 主要内容.基本要求.主要参考资料等 主要内容: 研究范?德?波耳(Van de ...

  6. matlab 自激振荡,自激振荡系统matlab仿真课程设计

    课程 计算物理和MATLAB课程设计 题目 自激振动系统的MATLAB仿真 专业 姓名 学号 主要内容.基本要求.主要参考资料等 主要内容: 2 研究范 德 波耳(Van der pol)方程dx x ...

  7. 蔡氏电路matlab,蔡氏电路matlab仿真报告.doc

    PAGE \* MERGEFORMAT8 蔡氏电路仿真分析 学院:电气工程学院 班级:硕6036 姓名: 张东海 学号:3116312053 目录 TOC \o "1-3" \h ...

  8. matlab duffing相图,典型二阶非线性Duffing方程的MATLAB仿真.doc

    典型二阶非线性Duffing方程的MATLAB仿真 摘要:作为一类具有广泛物理意义的动力系统,Duffing方程及其混沌现象长期以来为人们关注.本文在详细阐释Duffing方程物理意义的基础上讨论了这 ...

  9. 应用matlab仿真几类混沌电路,改进型二级Colpitts混沌电路的制作方法

    本发明涉及电子电路技术领域,特别涉及一种基于电路产生超宽带混沌信号的电路,具体为改进型二级Colpitts混沌电路. 背景技术: 混沌是在确定系统中产生的不规则运动,混沌作为一种复杂的非线性运动行为, ...

  10. 应用matlab仿真几类混沌电路,应用MATLAB仿真几类混沌电路

    应用MATLAB仿真几类混沌电路 更新时间:2017/1/24 17:55:00  浏览量:564  手机版 本科毕业设计(论文) 应用MATLAB仿真几类混沌电路 学 生 姓 名: 单玉青 指 导 ...

最新文章

  1. spi时序图怎么分析,怎么看懂spi时序图
  2. AVPlayer 之avcore模块
  3. 数据库获取的字符串按照逗号分隔,放进数组集合中
  4. VTK:图像拉普拉斯算子用法实战
  5. .net 浏览器请求过程(图)
  6. Java SecurityManager checkDelete()方法与示例
  7. arraylist扩容是创建新数组吗 java_Java编程之数组扩容
  8. C/C++无限关机(提权例子)
  9. javascript的内置对象
  10. Java开发笔记(六十九)泛型类的定义及其运用
  11. 工厂设计模式究竟怎么写更优雅?!
  12. 关于身份证OCR识别,你知道多少?
  13. 多选题spss相关分析_spss多选题的录入及分析
  14. 房地产里有多少“三季人”?
  15. CAD修复块中心点问题(网页版)
  16. echart结合高德地图的数据可视化大数据展示平台模板
  17. 【计算机网络系列】链路层的差错控制与流量控制
  18. Dilated Residual Networks
  19. 微星 MPG B460I GAMING EDGE WIFI +i5-10400电脑 Hackintosh 黑苹果efi引导文件
  20. 注塑机摆放间距多少合适_注塑机一般的说法比如多少多少g,对应的型号,拉杆间距,锁模力的对应表谁能给我张...

热门文章

  1. 惊喜! UE4 + ftrack开源了!
  2. 2021年全国大学生计算机能力挑战赛(Java)决赛试题代码(外加部分试题)
  3. jpeg图片太大怎么办?一分钟轻松搞定
  4. Spring的AOP的基于AspectJ注解开发——Spring的JDBC的模板的使用——Spring的事务管理
  5. 3D游戏场景模型制作的细节与技巧
  6. 夜深人静写算法(九)- Dancing Links X(跳舞链)
  7. 计算机汉字50字一分钟,一分钟的演讲稿一分钟演讲稿50字
  8. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第2章 TWen-ASR-ONE开发环境搭建与使用
  9. 语义分割、域适应相关论文
  10. 我用FreeMind