|
楼主 |
发表于 2009-5-1 19:09
|
显示全部楼层
回复 沙发 咕噜噜 的帖子
这几天一直在看分岔版块的,我把程序修改了一下 ,但一直有错误,折腾了很长一段时间了,老板像催魂一样像我要结果,郁闷啊,还恳请小咕多多指教!
function xd=fun(t,x,flag,w)
a=0.08;
k1=0.1;
k2=0.1;
p0=0.1;
p1=0.2;
if x(1)>1
f=x(1)-1;
elseif x(1)<-1
f=x(1)+1;
else
f=0;
end
xd=[x(2);
-2*a*x(2)-(1+k1*cos(98*w*t)+k2*cos(4*w*t))*f+p0+p1*cos(w*t)];
w=0:0.01:1;
for i=1:length(w)
T=2*pi/w(i);
[t,x]=ode45(@fun,[0:T/200:200*T],[0,0],[],w(i));
plot(w(i),x(36000:200:end,1),'k.'),hold on;
end
其中方程为:x'' +2*a*x' +(1+k1*cos(98*w*t)+k2*cos(4*w*t))*f =p0+p1*cos(w*t) |
|