马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
这是我的程序:
function xdot=myff1(t,x,flag,v)
if abs(x(1))<=0.4*10^6
ff=w1^2*(x(1))+a1;
elseif abs(x(1))<=0.3*10^6
ff=0;
elseif abs(x(1))>0.4*10^6
ff=w2^2*(x(1))+a2;
elseif abs(x(1))>=0.5*10^6
ff=w1^2*(x(1))-a3;
else
ff=w2^2*(x(1))-a4;
end
xdot=[x(2);-2*betta*x(2)-ff+p*sin(v*t)];
function poincareT1
global p
global v
global betta
global w1
global w2
global a1
global a2
global a3
global a4
betta=0.36;w1=197.15;w2=200.52;p=0.935;
a1=-0.011661;a2=0.01527;a3=0.011329;a4=-0.012063;v=68
x0=[0.3;0.4];
T=2*pi/v;
tspan=[0:0.1*T:70000];
[t,x]=ode45('myff1',tspan,x0);
m=zeros(10000,1);
n=zeros(10000,1);
for i=1:10000
m(i,1)=x(10*i,1);
n(i,1)=x(10*i,2);
end
plot(m,n,'k.','markersize',1);
xlabel('x','fontsize',14);
ylabel('dx/dt','fontsize',14);
绘制出的poincare图按理来说应该就形如如下图所示,
但是我会出来的图是发散的 ,不知道哪里出了问题,还望各位师兄师姐赐教!! 感谢之至
[ 本帖最后由 yanzi 于 2009-4-9 15:18 编辑 ] |