经过近期的研究发现,目前对于系统单参数分岔图的计算共有以下的几种方法:

1)最大值法

即对系统微分方程(组)进行求解,对求解的结果用getmax函数进行取点,并绘图。

2)Poincare截面法

对系统参数的每一次取值,绘制其Poincare截面,进而得到其分岔图。

这种方法需要注意的是,自治系统的Poincare截面是选取一超平面,平面上点的分布即构成一Poincare截面,非自治系统的Poincare截面则是根据系统激励的频率进行取点并绘图。

本帖将以Lorenz系统为例,对这两种方法进行比较

首先对第二种方法进行阐述。

编程如下(matlab)

Lorenz系统:

function dy = Lorenz(t,y)

% Lorenz系统

% 系统微分方程:

%

dx/dt = -a(x-y)

%

dy/dt = x(r-z)-y

%

dz/dt = xy-bz

%

a=y(4)

%    r=y(5)

%

b=y(6)

dy=zeros(6,1);

dy(1)=-y(4)*(y(1)-y(2));

dy(2)=y(1)*(y(5)-y(3))-y(2);

dy(3)=y(1)*y(2)-y(6)*y(3);

dy(4)=0;

dy(5)=0;

dy(6)=0;​

随r的分岔图求解程序:——按照x=y平面取截面

function Lorenz_bifur_r

Z=[];

for r=linspace(1,500,1000); %

舍弃前面迭带的结果,用后面的结果画图

[T,Y]=ode45('Lorenz',[0,1],[1;1;1;16;r;4]);

[T,Y]=ode45('Lorenz',[0,50],Y(length(Y),:));

Y(:,1)=Y(:,2)-Y(:,1); %

对计算结果进行判断,如果点满足x=y,则取点

for k=2:length(Y)

f=k-1;

if

Y(k,1)<0

if Y(f,1)>0

y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+abs(y)*i];

end

else     if

Y(f,1)<0  y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+abs(y)*i];

end

end

end

end

plot(Z,'.','markersize',1)title('Lorenz映射分岔图')xlabel('r'),ylabel('|y|

where x=y')

getmax法——取最大值法

function [Xmax] = getmax(y)

a=length(y);

j=1;

for i=(a-1)/2:a

b=(y(i,1)-y(i-2,1))/2;

c=(y(i,1)+y(i-2,1))/2-y(i-1,1);

if

y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)&c==0

Xmax(j)=y(i-1,1);

j=j+1;

elseif

y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)Xmax(j)=y(i-1,1)-b^2/(4*c);

j=j+1;

end

end

function Lorenz_bifur_r_getmax% 最大值法求解分岔图

clear all

t0=[0 100];%积分时间

%bifurcation

for r=linspace(1,500,1000);  %r的变化精度

[t,y]=ode45('Lorenz',t0,[1;1;1;16;r;4]);

[Xmax]=getmax(y(:,1));

plot(r,Xmax,'b','markersize',1)

hold on

clear Xmax

end

matlab画虫口模型分岔图,[转载]Matlab——混沌分岔图相关推荐

  1. matlab画虫口模型分岔图,Matlab画图片碰磨转子系统中的分岔图,poincare映射图???...

    图片中是转子碰磨故障的动力学模型,应用龙格库塔法求解,在画分岔图和poincare截面图,画出来不对,不知道为什么,下面是我自己编的程序,请大侠们帮忙看看我错在哪里了? global omega;  ...

  2. 在线使用Octave、Matlab画单电荷等位线和电力线、matlab的nonconformant arguments错误

    如下代码,据说是matlab画单电荷等位线和电力线的: theta=[0:.01:2*pi]'; r=0:10; x=sin(theta) * r; y=cos(theta)*4; plot(x,y, ...

  3. matlab四元一次非线性方程求解,[转载]MATLAB求解非线性方程(转)

    1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=i ...

  4. matlab物元分析模型,物元分析法(matlab)

    物元分析法(matlab) 所属分类:matlab例程 开发工具:matlab 文件大小:30KB 下载次数:25 上传日期:2019-05-28 23:43:53 上 传 者:木易人左 说明:  物 ...

  5. matlab画一个树,搞气氛!用MATLAB画一棵Bling Bling的圣诞树

    0.前言 马上圣诞节了,今天推一篇用MATLAB画圣诞树的,效果如下图所示: 1.准备工作 因为这次用的是MATLAB,不像PYTHON一样需要装一些依赖库,要实现本文的效果,只需安装MATLAB即可 ...

  6. matlab层次分析法程序购置设备,[转载]MATLAB实现层次分析程序

    层次分析法(AHP)适用于那些难于完全定量分析的问题.运用层次分析建模,大体上可按下面四个步骤进行: (1)建立递阶层次结构模型: (2)构造出各层次中的所有判断矩阵: (3)层次单排序及一致性检验: ...

  7. matlab的模型文件扩展名,[转载]matlab simulink基础知识

    Simulink 是面向框图的仿真软件. 7.1 演示一个Simulink 的简单程序 [例7.1]创建一个正弦信号的仿真模型. 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命 ...

  8. matlab画二维正态等密度曲线,matlab:画二维正态分布密度函数图

    首先,把二维正态分布密度函数的公式贴这里 这只图好大啊~~ 但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵,其中的x,pi,u都是向量形式.虽然这个式子很酷,但是用 ...

  9. matlab画y等于x平方,如何用matlab画Y=X^2的图啊?

    代码如下:[a,b]=solve('y=x^zd2','y=2*x+3')%求两条曲线的共同点的坐标,内即方程组的解:a为x,b为ysyms x;y1=x^2;ezplot(y1);y2=2*x+3; ...

最新文章

  1. POJ - 2337 Catenyms 欧拉回路
  2. C++_vptr与vtbl,虚函数与虚表
  3. UVa12100 - Printer Queue
  4. java 解析 jar_解析java中对jar包进行再次修改
  5. 直播 | ICLR 2021论文解读:兼听则明,信而有征:可信多模态分类
  6. Spark记录-Scala语法基础
  7. linux学习之路之使用脚本来复制二进制程序和所需的库文件
  8. kaggle案例实战班
  9. Linux程序安装创建桌面图标
  10. Oracle和MySQL语法区别
  11. delphi 集合的用法
  12. 如何实现图片的上传-(上传到本地)
  13. mapreduce推测执行算法及原理
  14. NYOJ 题目772 数独
  15. spring源码bean生命周期篇 一 如何实例化对象
  16. JB的产品之旅-产品经理是干嘛的?
  17. 大白菜android模拟器,大白菜U盘启动制作工具uefi体验版 V5.0
  18. 如何运营一个软件微社区
  19. 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助
  20. 【华人学者风采】麦立强 武汉理工大学

热门文章

  1. 7亿美元融资是假 外卖刷单是真 美团自打脸
  2. ssh连接linux网段不同_ssh 多台服务器之间连接(linux)
  3. 财富杂志评出美国25大高薪公司
  4. 步进电机与伺服电机的不同之处主要表现在哪里
  5. 14个超级牛X的免费开源小工具!
  6. 3.2 图像几何变换——旋转变换
  7. 复旦微ZYNQ EMIO控制PL LED
  8. 吃饭的时候吃饭,睡觉的时候睡觉
  9. ios输入框的坑(软键盘弹出不灵敏、输入法影响弹出高度)
  10. Extjs3.2 Form表单