|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
x''+a*(1+b*x^2)*x'+w0^2(1+r*x^2)*x=fcos(omega*t)
a b w0 r f omega 是参数;要求画出以f为横坐标的以x或x'为纵坐标的分岔图,也就是f为自变量,其他参数设好定值就可以了。我的程序是这样的:
clc;
w0=1;a=-5;b=-0.1;r=1.1;omega=0.9;T=2*pi;
f=0:0.1:10;tspan=0:T/25:1000;
y1=[];y2=[];G=[];
for i=1:length(f)
[t,y]=ode45(@federer,tspan,[0.1,-0.2]',[],w0,a,b,r,f(i),omega);n=length(y(:,2));
y1=[y1,y(1000:2000:end,1)'];
y2=[y2,y(1000:100:end,2)'];m=length(y1);
for j=1:m/i
G=[G,f(i)];
end;p=length(G);
N=length(f);
Over_to_step=N-i;
end
figure(1)
plot(G,y1,'k.','markersize',3)
xlabel(' ');
ylabel(' ');
title(' ');
function dx=federer(t,x,w0,a,b,r,f,omega)
dx=[x(2);-w0^2*x(1)-a*x(2)-a*b*x(1)^2*x(2)-w0^2*r*x(1)^3+f*cos(omega*t)];
我遇到的问题就是每次w0 a b r omega设的值都不合适不出现分岔图。
望高手也试一试。如果试出来请告诉我呀。谢谢了。
[ 本帖最后由 咕噜噜 于 2009-8-18 08:19 编辑 ] |
|