王瑛 发表于 2013-6-19 11:27

matlab求解分岔图:Error using odearguments

根据论坛前辈关于duffing方程分岔图的程序,自己变了一个,但是出现一些错误。错误和源程序如下、希望可以得到大家的帮助。谢谢!

Error using odearguments (line 36)
No default parameters in MASS_SPRING. Use ode45(MASS_SPRING,tspan,y0,...) instead.


Error in ode45 (line 114)



Error in mass_spring_bifur_k (line 20)
=ode45('mass_spring',tspan ,y0);



相关程序如下:
%微分方程的程序%
function dy=mass_spring(t,Y,flag,b,D,g,o,rum,cd,pf,vf)
global k v p rw I;
b=0.0028;g=9.807;o=5*pi/6;um=1.256*10^(-6);cd=0.44;pf=0.06;vf=100;rr=1.22;
D=1/4+1/(1-cos(o))-2/(1-cos(o))^2*log(2/(1+cos(o)));
dy=;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%求解分岔图的程序%
clear;
global k vp rw I;
T1=0.1347*10^(-3);
T2=1.413*10^(-5);
le=0.026;
rw=0.8*10^(-3);
VM=p*pi*rw^2*(T1*I+T2*le*I^2);
v=VM;
range=;
period=2*pi./v;
kk=0;
YY1=[];
step=2*pi/500;
for a=range
k;
kk=kk+1;
%出去前面60个周期的数据,并将最后的结果作为下一次积分的初值。
tspan=;
y0=;
=ode45('mass_spring',tspan ,y0);
y0=Y(end,:);
j=1;
for i=60:200
tspan=;
=ode45(@mass_spring,tspan ,y0,options,b,D,g,o,rum,cd,pf,vf);
YY1(kk,j)=Y(end,1);
j=j+1;
%取出每一个周期内的第一个解的最后一个值。
y0=Y(end,:);
end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k.','markersize',1);
页: [1]
查看完整版本: matlab求解分岔图:Error using odearguments