怎么用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')
结果如图1所示。
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
计算结果如图2所示!
最后上传一下参考计算机仿真第22卷第12期上一篇文章“李雅普诺夫指数的研究与仿真”中Lorenz系统的分岔图计算结果,大家比较一下即可看出孰优孰劣了!
怎么用matlab画分叉图,混沌------分岔图绘制不同方法的总结、比较(转)相关推荐
- matlab画虫口模型分岔图,[转载]Matlab——混沌分岔图
经过近期的研究发现,目前对于系统单参数分岔图的计算共有以下的几种方法: 1)最大值法 即对系统微分方程(组)进行求解,对求解的结果用getmax函数进行取点,并绘图. 2)Poincare截面法 对系 ...
- 分岔现象matlab,Matlab——混沌分岔图
经过近期的研究发现,目前对于系统单参数分岔图的计算共有以下的几种方法: 1)最大值法 即对系统微分方程(组)进行求解,对求解的结果用getmax函数进行取点,并绘图. 2)Poincare截面法 对系 ...
- 关于分岔图的一些问题,跪求解答
是一个非线性动力学方程求解并画出它的分岔图,在文献上画是这个样子的: 而我画出来的则是这个样子的虽然我只画了一部分,但是差别也太大了 这个是我画的1.0680到1.0690的分岔图,横坐标有1000个 ...
- bifurcation diagram 分岔图 如何理解分岔图
bifurcation diagram 分岔图 如何理解分岔图 总结 1.随着非线性系统参量的变化,系统的稳定点数量的变化的图就是分岔图: 参考资料: wiki: ------------ 相点就是状 ...
- matlab绘制三维混沌系统程序(以三阶微分方程系统为例),可以出庞加莱截面图、二维相图、三维相图、分岔图
matlab绘制三维混沌系统程序(以三阶微分方程系统为例),可以出庞加莱截面图.二维相图.三维相图.分岔图,需要的同学可以(不代做). _:8550662869649774皮皮and瓜瓜
- Logistic混沌映射分布图与分岔图附Matlab代码
目录 一.Logistic混沌映射 二. Logistic混沌映射分岔图及代码 三.Logistic混沌映射分布图与直方图 一.Logistic混沌映射 二. Logistic混沌映射分岔图及代码 c ...
- matlab绘制庞加莱截面_matlab庞加莱截面法画Lorenz系统分岔图(附图).doc
利用庞加莱截面法 画的Lorenz 系统的分岔图,复制改成其他系统即可运行,Matlab12a可以运行,附分岔图,见下页! function Lorenz_bifur_r Z=[]; for r=li ...
- matlab绘制庞加莱截面_matlab庞加莱截面法画Lorenz系统分岔图(附图)
利用庞加莱截面法 画的 Lorenz 系统的分岔图,复制改成其他系统即可运行, Matlab12a 可 以运行,附分岔图,见下页! function Lorenz_bifur_r Z=[]; for ...
- matlab画虫口模型分岔图,Matlab画图片碰磨转子系统中的分岔图,poincare映射图???...
图片中是转子碰磨故障的动力学模型,应用龙格库塔法求解,在画分岔图和poincare截面图,画出来不对,不知道为什么,下面是我自己编的程序,请大侠们帮忙看看我错在哪里了? global omega; ...
最新文章
- 【转】adobe acrobat pro修改pdf文字
- Directx教程(27) 简单的光照模型(6)
- jsp+tomcat程序helloworld
- [天地君亲若追问 枉为知音百年羞]2008.06.07 晃荡在芳华
- SQL Server命令行
- android安装管理,android-使用下载管理器下载后安装apk,并退出...
- linux命令dstat,linux系统监控:dstat命令
- 组装计算机的主要配置,自己组装电脑的基本配置跟一些注意事项
- unity3d内建着色器源码解析(一)
- 基二FFT时间抽取和频域抽取算法
- MC服务器角色背包文件,可穿戴背包配置文件说明 - 可穿戴背包 (Wearable Backpacks) - MC百科|最大的Minecraft中文MOD百科...
- easyswoole not controller class match
- MySQL----数据库概念及数据模型
- 2021高考综合单科成绩查询,2021高考各科分数满分多少
- 软件测试课设总结报告,软件测试课设感言
- 区块链、AI遇上艺术,科技突破艺术的想象空间
- 上汽大众首届「因你而生」ID. Day热力开启
- 一个人赶着鸭子去每个村庄卖,每经过一个 村子卖去所赶鸭子的一半又//一只。 这样他经过了 七个村子后还剩 两只鸭子,问问他出发时共赶多少//只鸭子?经过每个村子卖出多少只鸭子?
- 佩戴AirPods会伤害耳朵吗?佩戴AirPods的使用技巧分享给大家!
- hive操作总结DML
热门文章
- 木瓜移动每日资讯0531:美的集团自研的互联网大数据产品“观星台”诞生
- ssh连接linux网段不同_ssh 多台服务器之间连接(linux)
- RAC+DG架构部署(使用备份集)
- 2022年监理工程师质量/投资/进度控制考试每日一练及答案
- Nakamori Akina
- 五家共井 穷举法_五户共井问题
- 2021上海复旦微电子IC
- 计算机软件作品策划书,2013年江西师范大学软件学院计算机作品大赛策划书(修改版)...
- SpringMVC源码分析(二)
- win7发现不了无线网络_XP及WIN7系统原因导致蓝牙耳机与蓝牙5.0适配器不能正常工作...