micheller85@126 发表于 2014-6-11 17:26

非自治系统的分岔图问题

各位大牛,请教一下下面这个系统选择怎样的方法来画分岔图呢?
系统:
dy(1)=y(2);
dy(2)=p*y(1)^3+q*y(1)+r*w*sin(k*t);
我采用最大值法,结果画出来图感觉不对,大家帮我看一下程序
%定义求解的系统
function dy=ssfunbif(t,y)
global w
dy=zeros(2,1);
p=-0.04;
q=0.0575;
r=0.0032;
k=-0.25;
dy(1)=y(2);
dy(2)=p*y(1)^3+q*y(1)+r*w*sin(k*t);

%求最大值程序的m文件
function = 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

%运行的程序
clear all
global w
% 最大值法求解分岔图
t0=;%积分时间
y0=;
%bifurcation
for w=0:0.001:1;%r的变化精度
    =ode45('ssfunbif',,y0);
    =ode45('ssfunbif',t0,y(length(y),:));
    =getmax(y(:,1));
    plot(w,Xmax,'b','markersize',1)
    hold on
    clear Xmax
end
xlabel('w')
ylabel('Xmax')

micheller85@126 发表于 2014-6-14 16:24

为什么没有人回复呢?

micheller85@126 发表于 2014-6-16 18:17

还有在什么情况下,分岔图对初值选取很敏感呢,当我选取系统中系数很小时,改变初值后系统分岔图会发生很大改变,而且相图也发生改变

micheller85@126 发表于 2014-6-16 18:49

本帖最后由 micheller85@126 于 2014-6-16 19:00 编辑

file:///C:/Users/LiMin/Documents/Tencent%20Files/383326929/Image/@ZY%60KVIXQ1H3]J3Q6NWQ%7B94.jpg
这是我按照上面的程序得到的两种参数取法下的分岔图,大家帮我看看

第一个参数是p=-0.04; q=0.0575; r=0.0032; k=-0.25;这种对初值就很敏感。而且,初值不同相轨线也不同。
第二种是参数选取为p=-1; q=-0.25; r=6; k=0.5;这种情况对初值就不会敏感。

不知道为什么会这样,还有大家见过这样的分岔图吗?

micheller85@126 发表于 2014-6-16 19:00

额。。。不好意思,传图失败,由于刚刚注册没多久,级别不够啊。。。。

micheller85@126 发表于 2014-6-17 15:06

有没有人帮忙看看啊。。。
页: [1]
查看完整版本: 非自治系统的分岔图问题