声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: chenshumeionly

[稳定性与分岔] 分岔图另一种程序,系数变大后运行不出来了,到底怎么回事呢?

  [复制链接]
 楼主| 发表于 2011-9-17 17:24 | 显示全部楼层
回复 15 # freedignity 的帖子

谢谢!对于函数
function xdot=hundun(t,x,flag,f)
mu=0.0002;w0=1;
xdot=[x(2);-mu*x(2)+x(1)-x(1)*x(1)*x(1)+f*cos(w0*t)];
end
f在哪个范围里讨论关于f的分岔图好呢?
我试了半天也没找到好的讨论范围
回复 支持 反对
分享到:

使用道具 举报

发表于 2011-9-19 09:21 | 显示全部楼层
回复 16 # chenshumeionly 的帖子

这个我也不熟。我前短时间试过求方程左边一阶导数项系数的分岔图。范围这么选的:从实验数据中求出一个数值,以这个数值为中心扩大范围去求。因为我觉得这样的范围是有实际意义的。但是,图的效果不行。你还可以参照文献里面的取值范围去做。
 楼主| 发表于 2011-10-14 11:53 | 显示全部楼层
回复 17 # freedignity 的帖子

你好。我已经通过调整数据把mu调到0.01了,对f换过多组数据,运用了论坛里画分岔图的方法还是做不出漂亮的分岔图,我是学数学的,没有实验可做,只是纯理论。你有什么建议吗?
发表于 2011-10-14 19:43 | 显示全部楼层
    我看了你程序,没有mu,难道是w?plot(q0(j),x(800:100:4000,1),'linewidth',5)这个有问题。根据该程序上一行,x是2*7000的矩阵,在绘图时应该取x后面的数据,你取的4000我觉得是根据q0(1*4000的数组)的维数取的。也就是说你的图画出来的是x的中间的数据。
    以上可能并不是关键问题。我试算过你的程序,计算量大的确是因为f的值。我把f值换过后并且把q0的值扩大到(1,100)再算,出现的是一种类似二周期的图,另算了(100, 200)的区间,变化不大。我不知道你是怎么换f值的。这个例子难道也有物理背景,不然怎么会出现这样大的系数。我觉得如果f值很大,q0值该会比较小的。
    其实,你应该比我做的多,做得好。我是工科专业,不是方向的问题也不会涉及到这个,做这个现在还是在摸索,提供的也只是参考意见。还有,我觉得书还是有作用的,凭借理论的东西可以从其他方面认识问题。只注重方法的话可能会进入死角。
 楼主| 发表于 2011-10-15 12:32 | 显示全部楼层
回复 19 # freedignity 的帖子

哈哈  现在的程序是这个样的:
function dx=duf(t,X)
global F wd;
r=0.01;
x=X(1);
y=X(2);
psi=X(3);
dx=zeros(3,1);
dx(1)=y;
dx(2)=-r*y+x*(1-x^2)+F*sin(psi);
dx(3)=wd;

clear;
global F wd;
wd=1.0;
range=[0.1:0.0001:0.3];
period=2*pi/wd; %
k=0;
YY2=[];
step=2*pi/100;  %步长。
for F=range
    y0=[0 0 0];
   F
    k=k+1;
    % discard the first 60 periodic data;
    %除去前面60个周期的数据,并将最后的结果作为下一次积分的初值
    tspan=[0:step:60*period];
    [t,Y]=ode45(@duf,tspan,y0);
    y0=Y(end,:);
    j=1;
    for i=60:200
        tspan=[i*period:step:(i+1)*period];
        [t,Y]=ode45(@duf,tspan,y0);
        YY1(k,j)=Y(end,1);   % get the omega data from every period end
        j=j+1;               %取出每一个周期内的第一个解的最后一个值。
        y0=Y(end,:);
    end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k.','markersize',1);

我讨论的是矩形薄板,呵呵,把板长及厚度变了,mu就大了。
谢谢你这么耐心的解答我的疑问,共同进步吧

发表于 2011-10-16 11:15 | 显示全部楼层
回复 20 # chenshumeionly 的帖子

这个程序蛮好,昨天稍微看了下思路,上午看了好一会,应该没什么问题啊,系数的问题也不存在。估计就计算量有些大,这也没出好的结果么?
 楼主| 发表于 2011-10-16 22:44 | 显示全部楼层
回复 21 # freedignity 的帖子

嗯   没出好结果,可能我选的讨论范围不好吧,这个程序是在liliangbiao的空间找到的。还有另一个程序,请看http://forum.vibunion.com/thread-106323-1-1.html
我把数据调了调,r=0.1了,呵呵   出来的分岔图还行,但是链接里的第一个程序与第二个程序的效果不太一样,我取的f是0.01-10之间,你可以比较一下
发表于 2011-11-27 11:26 | 显示全部楼层
建议用fortran做数值计算,matlab耗时间太难以忍受了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-5 01:17 , Processed in 0.053204 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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