声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3006|回复: 4

[编程技巧] matlab求解分岔图:Error using odearguments

[复制链接]
发表于 2013-6-19 11:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 牛小贱 于 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)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...


Error in mass_spring_bifur_k (line 20)
[t,Y]=ode45('mass_spring',tspan ,y0);



相关程序如下:
  1. %微分方程的程序%
  2. function dy=mass_spring(t,Y,flag,b,D,g,o,rum,cd,pf,vf)
  3. global k v p rw I;
  4. 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;
  5. D=1/4+1/(1-cos(o))-2/(1-cos(o))^2*log(2/(1+cos(o)));
  6. dy=[y(2);(y(3)*g+um*(I^2)/4/pi*(log((3*y(3)/4/pi/p)^(1/3)*sin(o)/rw)-D)+cd*pi*((3*y(3)/4/pi/p)^(2/3)-rw^2)*pf*(vf^2)/2-b*y(2)-k*y(1))/y(3);v];
  7. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  8. %求解分岔图的程序%
  9. clear;
  10. global k v  p rw I;
  11. T1=0.1347*10^(-3);
  12. T2=1.413*10^(-5);
  13. le=0.026;
  14. rw=0.8*10^(-3);
  15. VM=p*pi*rw^2*(T1*I+T2*le*I^2);
  16. v=VM;
  17. range=[2.7: 0.001: 3.1];
  18. period=2*pi./v;
  19. kk=0;
  20. YY1=[];
  21. step=2*pi/500;
  22. for a=range
  23.   k;
  24. kk=kk+1;
  25. %出去前面60个周期的数据,并将最后的结果作为下一次积分的初值。
  26. tspan=[0:step:60*period];
  27. y0=[0 0 3e-5];
  28. [t,Y]=ode45('mass_spring',tspan ,y0);
  29. y0=Y(end,:);
  30. j=1;
  31. for i=60:200
  32. tspan=[i*period:step:(i+1)*period];
  33. [t,Y]=ode45(@mass_spring,tspan ,y0,options,b,D,g,o,rum,cd,pf,vf);
  34. YY1(kk,j)=Y(end,1);
  35. j=j+1;
  36. %取出每一个周期内的第一个解的最后一个值。
  37. y0=Y(end,:);
  38. end
  39. end
  40. bifdata=YY1(:,end-51:end);
  41. plot(range,bifdata,'k.','markersize',1);
复制代码



回复
分享到:

使用道具 举报

发表于 2013-6-19 21:56 | 显示全部楼层
LZ才两天在线时间已经2hr了, 表示LZ已先搜/看过! 值得嘉许
个人水平/时间有限, 也非此专业又很少使用ode经验, 但LZ资料齐全
就试试设断点帮看看
不难发现ode45的输入引数tspan为空矩阵
逐步回溯检查(tspan > period > v > VM > I & p)
不难发现可能I及p未给定!?

评分

1

查看全部评分

 楼主| 发表于 2013-6-20 09:26 | 显示全部楼层

非常感谢!因为也是刚解除matlab没多久,确实是有的参数没有输入。这个问题解决了,其他问题又出现了。我再好好检查检查。如有需要解决的问题,还希望能和大家多交流。谢谢chaching
发表于 2014-12-30 08:08 | 显示全部楼层
最近正在学习
发表于 2015-2-2 09:26 | 显示全部楼层
这是用的庞加莱截面法?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-15 22:14 , Processed in 0.050698 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表