非自治系统的分岔图问题
各位大牛,请教一下下面这个系统选择怎样的方法来画分岔图呢?系统:
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-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;这种情况对初值就不会敏感。
不知道为什么会这样,还有大家见过这样的分岔图吗?
额。。。不好意思,传图失败,由于刚刚注册没多久,级别不够啊。。。。 有没有人帮忙看看啊。。。
页:
[1]