声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4525|回复: 15

[分形与混沌] 急求关于Duffing方程的庞加莱截面生成程序

[复制链接]
发表于 2007-7-1 09:26 | 显示全部楼层 |阅读模式

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

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

x
急求关于Duffing方程的庞加莱截面图生成程序,如果谁能提供给我
将给您一定的Q币作为报酬,谢谢
我的QQ  402559853

[ 本帖最后由 无水1324 于 2007-7-14 11:39 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-7-1 09:26 | 显示全部楼层

回复 #1 zhangdexuan 的帖子

急用哦,欢迎大家帮忙
发表于 2007-7-1 09:49 | 显示全部楼层
借用网上一个网友的程序改了一下,但是不是你要的,你可以照着写


function df=dafen(t,x,flag,force)
df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];

%%%Poincare截面绘制
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=3*pi/2;
[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],options,[],ff);
plot(x(100:100:end,1),x(100:100:end,2),'.')
%pojialai
hold on
i=2000:100:3000
plot(x(i,1),x(i,2),'*')
发表于 2007-7-1 10:16 | 显示全部楼层
思路很简单,在稳态状态下,每隔周期(自己选择)取点,作图就成了
 楼主| 发表于 2007-7-1 10:27 | 显示全部楼层

回复 #3 无水1324 的帖子

不是的哦,这个是生成相图的程序
 楼主| 发表于 2007-7-1 10:29 | 显示全部楼层

回复 #4 dc1hawk 的帖子

% Poincare_section[绘制庞加莱截面图]
betaa=0.25;
F=1.093;
v=2/3;
Poin=inline(['[x(2);',...
'-2*betaa*x(2)-x(2).^2.*sin(x(1))+F*cos(v*t);',...
'v]'],...
't','x','flag','betaa','F','v');

% Poincare_section[绘制庞加莱截面图]
[t,x]=ode45(Poin,[0,2800],[0,1.5,0],[],betaa,F,v);
x(:,2)=mod(x(:,2),2*pi)-pi;

phi0=pi*2/3; % 选择phi=2*pi/3这个截面
for k=1:round(max(x(:,3))/2/pi);
d=x(:,3)-(k-1)*2*pi-phi0;
[P,K]=sort(abs(d));
x1l=x(K(1),1);
x1r=x(K(2),1);
x2l=x(K(1),2);
x2r=x(K(2),2);
x3l=x(K(1),3);
x3r=x(K(2),3);
if abs(P(1))+abs(P(2))<3e-16;
X1(k)=x1l;
X2(k)=x2l;
else
Q=polyfit([x3l,x3r],[x1l,x1r],1);
X1(k)=polyval(Q,(k-1)*2*pi-phi0);
Q=polyfit([x3l,x3r],[x2l,x2r],1);
X2(k)=polyval(Q,(k-1)*2*pi-phi0);
end
end
plot(X1,X2,'.');
xlabel('\theta','fontsize',14);
ylabel('d\theta/dt','fontsize',14);


问题:上面的程序中运用的方程是% 单摆方程[不显含时间t的自治系统]
% 方程如下:
% dθ/dt=ω,
% dω/dt=-2*β*[dθ/dt]-ω^2*sin(θ)+F*cos(vt)
% dψ/dt=v
betaa=0.25;
F=1.093;
v=2/3;
P2=-2*betaa*x(2)-x(2).^2.*sin(x(1))+F*cos(v*t);
dx=[x(2)2;v];


现在我想把这单摆脱方程换成达芬方程如下所示
function df=dafen(t,x,flag,force)
df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];


帮我换进去可以吗?程序都是现成的
发表于 2007-7-1 10:32 | 显示全部楼层
发表于 2008-1-11 16:31 | 显示全部楼层

回复 3楼 的帖子

新年好!:handshake
请问这个程序中为什么tt=3*pi/2.一般计算周期的选择的原则是什么?
发表于 2008-1-11 16:33 | 显示全部楼层

回复 7楼 的帖子

取 tt=2*pi/1.2 行吗?
发表于 2008-1-11 16:37 | 显示全部楼层
不错
发表于 2008-1-14 08:01 | 显示全部楼层

回复 9楼 的帖子

可以的!
发表于 2008-1-14 09:24 | 显示全部楼层
这个截面是自己任意选取的
发表于 2008-1-14 13:32 | 显示全部楼层

回复 10楼 的帖子

xiaoqiu810818可以参考这个程序了
发表于 2008-2-19 16:25 | 显示全部楼层

回复无水

谢谢无水了,自治系统和非自治系统我想截面的选取应该不一样吧,如Rossler等.
发表于 2008-2-19 19:39 | 显示全部楼层

回复 14楼 的帖子

他们之间有差异
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 04:30 , Processed in 0.080966 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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