声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: mechanic05

[稳定性与分岔] 请教关于分岔程序

[复制链接]
 楼主| 发表于 2007-7-16 12:03 | 显示全部楼层

回复 #75 无水1324 的帖子

前辈,我的程序总点数有20000吧,怎摸还是有问题?:@L :@L :@L
回复 支持 反对
分享到:

使用道具 举报

发表于 2007-7-16 12:12 | 显示全部楼层
你的取点应该小于20000才能够画出来图哈
发表于 2007-7-16 13:50 | 显示全部楼层

回复mechanic05

你好,算的时候a就是取的a= -48.704,我把代码贴出来,你看看那些需要改的告诉我:
function xdot=dddd(t,x,flag,omega)
eta=0.1 ; a= -48.704; b= 24.35e4;gamma= 1;
xdot=[x(2);a*x(1)-b*x(1)^3-eta*x(2)+gamma*cos(omega*t)];


clear;clc;close all;
omega=0.01:0.01:4;
for h=1:length(omega)
    T=2*pi/omega(h);
    [t,x]=ode45('dddd',[0:T/100:220*T],[0 0],[],omega(h));
    plot(omega(h),x(10000:100:end,2),'k.');hold on
end
发表于 2007-7-16 15:12 | 显示全部楼层
程序,没有问题,可能你的参数不处于混沌区域
 楼主| 发表于 2007-7-16 15:13 | 显示全部楼层

回复 #78 octopussheng 的帖子

谢谢!
这是我画出的分岔图.请指教!其中程序为
function xdot=dddd(t,x,flag,omega)
eta=0.1 ; a= -48.704; b= 24.35e4;gamma= 1;
xdot=[x(2);-a*x(1)-b*x(1)^3-eta*x(2)+gamma*cos(omega*t)];


clear;clc;close all;
omega=0.01:0.01:4;
for h=1:length(omega)
    T=2*pi/omega(h);
    [t,x]=ode45('dddd',[0:T/100:220*T],[0 0],[],omega(h));
    plot(omega(h),x(10000:100:end,2),'k.');hold on
end
bif.jpg
 楼主| 发表于 2007-7-16 15:20 | 显示全部楼层

回复 #78 octopussheng 的帖子

就是xdot=[x(2);-a*x(1)-b*x(1)^3-eta*x(2)+gamma*cos(omega*t)];中的a前面有负号的.对于我画出的图,要去掉瞬态影响该如何改动呢?请前辈指点?
发表于 2007-7-16 15:38 | 显示全部楼层
要去掉瞬态主要还是把前面的的一些不稳定点去掉,理解了意思你应该可以改了吧
plot(omega(h),x(10000:100:end,2),'k.');hold on
这一项是不是,主要还是改变一下10000,增大

[ 本帖最后由 咕噜噜 于 2007-7-16 15:39 编辑 ]
发表于 2007-7-16 16:02 | 显示全部楼层
plot(omega(h),x(20000:100:end,2),'k.');hold on
 楼主| 发表于 2007-7-16 21:56 | 显示全部楼层

回复 #83 无水1324 的帖子

前辈好!
我用这个程序
clear;clc;close all;
omega=0.1:0.01:4.1;
for h=1:length(omega)
T=2*pi/omega(h);
[t,x]=ode45('ddd',[0:T/100:120*T],[0 0],[],omega(h));
plot(omega(h),x(30000:100:end,2),'k.');hold on
end

算时为什摸老出现这个问题:
??? Error using ==> plot:@)
Vectors must be the same lengths.

Error in ==> wushui2 at 6
plot(omega(h),x(30000:100:end,2),'k.');hold on
 楼主| 发表于 2007-7-16 22:08 | 显示全部楼层

回复 #82 咕噜噜 的帖子

前辈好!
我用这个程序
clear;clc;close all;
omega=0.1:0.01:4.1;
for h=1:length(omega)
T=2*pi/omega(h);
[t,x]=ode45('ddd',[0:T/100:120*T],[0 0],[],omega(h));
plot(omega(h),x(30000:100:end,2),'k.');hold on
end

算时为什摸老出现这个问题:
??? Error using ==> plot
Vectors must be the same lengths.

Error in ==> wushui2 at 6
plot(omega(h),x(30000:100:end,2),'k.');hold on
发表于 2007-7-16 22:27 | 显示全部楼层
[0:T/100:120*T]总共才计算12000个点,你还从30000画图,肯定是没有了
 楼主| 发表于 2007-7-16 22:30 | 显示全部楼层

回复 #86 无水1324 的帖子

:@L :@L :@L
刚才发现弄错了!已经改正了.正在算.
clear;clc;close all;
omega=0.1:0.01:4.1;
for h=1:length(omega)
T=2*pi/omega(h);
[t,x]=ode45('ddd',[0:T/100:300*T],[0 0],[],omega(h));
plot(omega(h),x(30000:100:end,2),'k.');hold on
end
不知道这样改,结果会怎样?!:@o
 楼主| 发表于 2007-7-17 08:05 | 显示全部楼层
天那!!:'(
算了一晚上还在算!也太慢!
发表于 2007-7-17 08:50 | 显示全部楼层
clear;clc;close all;
omega=0.1:0.01:4.1;
for h=1:length(omega)
T=2*pi/omega(h);
[t,x]=ode45('ddd',[0:T/100:300*T],[0 0],[],omega(h));
plot(omega(h),x(25000:100:end,2),'k.');hold on
end
发表于 2007-7-17 09:29 | 显示全部楼层
我这里算了很长时间也没出来结果
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-27 04:14 , Processed in 0.076735 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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