声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 11299|回复: 17

[分形与混沌] 请教相空间重构matlab程序

[复制链接]
发表于 2008-7-12 14:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在网上看了一篇论文:孙海云,曹庆杰.相空间重构延迟时间的确定.山东工业大学学报.2000.30(2),有个例子方程是这样的
dx/dt=A-(B+1)*x+x^2*y+a*cos(x*t);

dy/dt=B*x-x^2*y;

然后用matlab用最基本的方法和相空间重构的方法分布进行了相空间绘制,我把基本的相图作法程序贴出,但重构的那种方法我一直做不出来请高手指教

Brusselator.m文件为

function dy=Brusselator(t,y);

dy=zeros(2,1);

dy(1)=0.4-2.2*y(1)+y(1)^2*y(2)+0.08*cos(0.86*t);

dy(2)=1.2*y(1)-y(1)^2*y(2);

运行下面代码

% [T,Y]=ode45('Brusselator',[0 1000],[1 0]);

% plot(Y(:,1),Y(:,2))

请问重构的程序怎么做,我想画出如文章中的图


[ 本帖最后由 jyxhappy 于 2008-7-12 14:47 编辑 ]
clip_image002.bmp
未命名.bmp
回复
分享到:

使用道具 举报

发表于 2008-7-12 20:49 | 显示全部楼层

回复 楼主 的帖子

不明白,你这个是确定的系统,怎么还需要重构呢?
 楼主| 发表于 2008-7-13 11:15 | 显示全部楼层
这篇文章的用意就是用重构的方法做出的相图和确定的系统做出的相图形状基本相同,以证明相空间重构方法的正确。文章只是这么写,但程序也没带,具体怎么重构的方法也没提。
我从网上看到一个很流行的代码,我把他也贴上来了。压缩文件中有两个文件,LorenzData.mat和PhaSpaRecon.m
运行代码
load LorenzData.mat%将LorenzData.mat中的数据读入
[xn,dn]=PhaSpaRecon(x,6,3)%进行重构
plot(xn(1,:),dn)%绘制相图
即可绘出相图。我想是不是上面我说得那个问题是他通过确定的方程求解出x,y的值,然后也存成一组数据,用我上传的代码的方法来做呢。

[ 本帖最后由 jyxhappy 于 2008-7-13 16:20 编辑 ]

相空间重构画相图.dat

96.36 KB, 下载次数: 254

后缀改为rar

发表于 2008-7-22 09:52 | 显示全部楼层

回复 3楼 的帖子

看到你的相空间重构的程序,我有问题请教:为什么len-1-(m-1)*tau,而不是len-(m-1)*tau,我觉得后者是对的,不知道你的想法是怎样的,能加我QQ:745724181,共同讨论吗?
发表于 2008-8-22 10:24 | 显示全部楼层

地板说得对

地板说的len-(m-1)*tau,我认为是对的,楼主你的程序改改看:victory:
发表于 2009-5-14 21:11 | 显示全部楼层
求你了,给我发一份,急用,谢谢
421069750@163.com
发表于 2009-5-16 12:07 | 显示全部楼层

回复 楼主 jyxhappy 的帖子

本帖最后由 牛小贱 于 2015-3-15 15:18 编辑
  1. function Data=reconstitution(data,m,tau)
  2. %该函数用来重构相空间
  3. % m:嵌入空间维数
  4. % tau:时间延迟
  5. % data:输入时间序列
  6. % Data:输出,是m*n维矩阵

  7. N=length(data); % N为时间序列长度
  8. M=N-(m-1)*tau; %相空间中点的个数
  9. Data=zeros(m,M);
  10. for j=1:M
  11.   for i=1:m           %相空间重构
  12.     Data(i,j)=data((i-1)*tau+j);
  13.   end
  14. end
复制代码

评分

2

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2009-5-30 10:48 | 显示全部楼层

回复 7楼 yuling 的帖子

重构图像怎么做呢?
发表于 2009-5-30 14:45 | 显示全部楼层

回复 8楼 lvtaomei 的帖子

一般系统的嵌入维数为十几甚至几十,这样通过重构获得的相空间维数较高,而我们只能作出二维和三维的相图,这就要求我们在保留原始数据主要信息的前提下,将原有的高维数据投影到较低维的数据空间,K-L变换正是进行这项操作的理想工具
发表于 2010-9-26 00:07 | 显示全部楼层
回复 yuling 的帖子

请问下:知道延迟时间,给出一组数据,如何画二维吸引子图,用相空间重构的方法,。谢谢了 !!能否给我个源程序,多谢了!我邮箱mathtang@163.com。。。急用!!多谢了 啊!!

点评

建议你发主题帖求助,或者用短消息向具体会员求助  发表于 2010-9-26 09:20
发表于 2010-9-26 11:33 | 显示全部楼层
回复 mathtang 的帖子

哦,谢谢了 帖子发了,还没有回
发表于 2012-5-30 15:17 | 显示全部楼层
回复 3 # jyxhappy 的帖子

牛叉!!!!!!!!!
发表于 2013-12-14 20:25 | 显示全部楼层
遇到了相似的问题。。。T,T
发表于 2015-1-31 19:06 | 显示全部楼层
哈哈哈哈哈哈哈
发表于 2015-1-31 19:07 | 显示全部楼层
能不能下载连接
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 23:57 , Processed in 0.059204 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表