matlab画虫口模型分岔图,[转载]Matlab——混沌分岔图
经过近期的研究发现,目前对于系统单参数分岔图的计算共有以下的几种方法:
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——混沌分岔图相关推荐
- matlab画虫口模型分岔图,Matlab画图片碰磨转子系统中的分岔图,poincare映射图???...
图片中是转子碰磨故障的动力学模型,应用龙格库塔法求解,在画分岔图和poincare截面图,画出来不对,不知道为什么,下面是我自己编的程序,请大侠们帮忙看看我错在哪里了? global omega; ...
- 在线使用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, ...
- matlab四元一次非线性方程求解,[转载]MATLAB求解非线性方程(转)
1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=i ...
- matlab物元分析模型,物元分析法(matlab)
物元分析法(matlab) 所属分类:matlab例程 开发工具:matlab 文件大小:30KB 下载次数:25 上传日期:2019-05-28 23:43:53 上 传 者:木易人左 说明: 物 ...
- matlab画一个树,搞气氛!用MATLAB画一棵Bling Bling的圣诞树
0.前言 马上圣诞节了,今天推一篇用MATLAB画圣诞树的,效果如下图所示: 1.准备工作 因为这次用的是MATLAB,不像PYTHON一样需要装一些依赖库,要实现本文的效果,只需安装MATLAB即可 ...
- matlab层次分析法程序购置设备,[转载]MATLAB实现层次分析程序
层次分析法(AHP)适用于那些难于完全定量分析的问题.运用层次分析建模,大体上可按下面四个步骤进行: (1)建立递阶层次结构模型: (2)构造出各层次中的所有判断矩阵: (3)层次单排序及一致性检验: ...
- matlab的模型文件扩展名,[转载]matlab simulink基础知识
Simulink 是面向框图的仿真软件. 7.1 演示一个Simulink 的简单程序 [例7.1]创建一个正弦信号的仿真模型. 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命 ...
- matlab画二维正态等密度曲线,matlab:画二维正态分布密度函数图
首先,把二维正态分布密度函数的公式贴这里 这只图好大啊~~ 但是上面的那个是多维正态分布的密度函数的通式,那个n阶是对称正定方阵叫做协方差矩阵,其中的x,pi,u都是向量形式.虽然这个式子很酷,但是用 ...
- 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; ...
最新文章
- POJ - 2337 Catenyms 欧拉回路
- C++_vptr与vtbl,虚函数与虚表
- UVa12100 - Printer Queue
- java 解析 jar_解析java中对jar包进行再次修改
- 直播 | ICLR 2021论文解读:兼听则明,信而有征:可信多模态分类
- Spark记录-Scala语法基础
- linux学习之路之使用脚本来复制二进制程序和所需的库文件
- kaggle案例实战班
- Linux程序安装创建桌面图标
- Oracle和MySQL语法区别
- delphi 集合的用法
- 如何实现图片的上传-(上传到本地)
- mapreduce推测执行算法及原理
- NYOJ 题目772 数独
- spring源码bean生命周期篇 一 如何实例化对象
- JB的产品之旅-产品经理是干嘛的?
- 大白菜android模拟器,大白菜U盘启动制作工具uefi体验版 V5.0
- 如何运营一个软件微社区
- 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助
- 【华人学者风采】麦立强 武汉理工大学