matlab求解分岔图:Error using odearguments
本帖最后由 牛小贱 于 2015-1-4 09:36 编辑根据论坛前辈关于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);
LZ才两天在线时间已经2hr了, 表示LZ已先搜/看过! 值得嘉许
个人水平/时间有限, 也非此专业又很少使用ode经验, 但LZ资料齐全
就试试设断点帮看看
不难发现ode45的输入引数tspan为空矩阵
逐步回溯检查(tspan > period > v > VM > I & p)
不难发现可能I及p未给定!? ChaChing 发表于 2013-6-19 21:56 static/image/common/back.gif
LZ才两天在线时间已经2hr了, 表示LZ已先搜/看过! 值得嘉许
个人水平/时间有限, 也非此专业又很少使用ode经 ...
非常感谢!因为也是刚解除matlab没多久,确实是有的参数没有输入。这个问题解决了,其他问题又出现了。我再好好检查检查。如有需要解决的问题,还希望能和大家多交流。谢谢chaching 最近正在学习 这是用的庞加莱截面法?
页:
[1]