| 查看: 1639 | 回复: 8 | |||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||||
glgjw银虫 (小有名气)
|
[求助]
matlab求带事件的微分方程总出错 已有1人参与
|
||||
|
>> opts=odeset('events',@lift) >> [t,y,timeend]=ode45('mass1',[0 10],[0;0],opts) 上面的函数lift和mass1编写如下: 函数lift: >> function[value,isterminal,direction]=lift(t,y) value=160.5*y(1)+448*t-75 isterminal=1 direction=[] 函数mass1: function dy=mass1(t,y) dy=[y(2);(4.48*10^6*8*t/15/(6-y(1))-(7.35*10^6+4.48*10^6/(6-y(1)))*y(1)-17.785*10^3*y(2))/4080] 运行后的出错信息: dy = 0 0 ??? Function 'lower' is not defined for values of class 'function_handle'. Error in ==> lower at 26 [varargout{1:nargout}] = builtin('lower', varargin{:}); Error in ==> funfun\private\odeevents at 32 switch lower(eventFcn) Error in ==> ode45 at 209 [haveEventFcn,eventFcn,eventArgs,valt,teout,yeout,ieout] = ... 函数mass1肯定没有错误,大家检查其他的部分即可。谢谢! |
» 猜你喜欢
广西大学-广州大学招聘博士后 欢迎广大优秀人才!!!
已经有11人回复
闲聊
已经有3人回复
江苏省自然基金 什么时候出结果
已经有4人回复
如何查询2026年获批项目名称?
已经有3人回复
两块石头
已经有10人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有19人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有15人回复
面上没中,邀请各位路过的虫友分析一下分数
已经有13人回复
初秋的晨风
已经有6人回复
Ei源刊怎么投
已经有4人回复
wurongjun
专家顾问 (职业作家)
-

专家经验: +831 - 数学EPI: 9
- 应助: 791 (博后)
- 贵宾: 0.308
- 金币: 24609
- 散金: 310
- 红花: 75
- 帖子: 3004
- 在线: 881.4小时
- 虫号: 1368482
- 注册: 2011-08-14
- 性别: GG
- 专业: 计算数学与科学工程计算
- 管辖: 数学
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
glgjw: 金币+20, ★★★★★最佳答案, 感谢热情帮助!! 2016-02-18 20:58:16
glgjw: 金币+20, ★★★★★最佳答案, 感谢热情帮助!! 2016-02-18 20:58:16
|
你把下面代码做一个新的m文件,运行下 function cs opts=odeset('events',@lift); [t,y,timeend]=ode45(@mass1,[0 10],[0;0],opts) function[value,isterminal,direction]=lift(t,y) value=160.5*y(1)+448*t-75; isterminal=1; direction=[]; function dy=mass1(t,y) dy=[y(2);(4.48*10^6*8*t/15/(6-y(1))-(7.35*10^6+4.48*10^6/(6-y(1)))*y(1)-17.785*10^3*y(2))/4080]; |

9楼2016-02-18 15:25:36
2楼2016-02-17 22:39:49
wurongjun
专家顾问 (职业作家)
-

专家经验: +831 - 数学EPI: 9
- 应助: 791 (博后)
- 贵宾: 0.308
- 金币: 24609
- 散金: 310
- 红花: 75
- 帖子: 3004
- 在线: 881.4小时
- 虫号: 1368482
- 注册: 2011-08-14
- 性别: GG
- 专业: 计算数学与科学工程计算
- 管辖: 数学
【答案】应助回帖
感谢参与,应助指数 +1
|
一点点问题! 简单修改如下! opts=odeset('events',@lift); [t,y,timeend]=ode45(@mass1,[0 10],[0;0],opts) function[value,isterminal,direction]=lift(t,y) value=160.5*y(1)+448*t-75; isterminal=1; direction=[]; function dy=mass1(t,y) dy=[y(2);(4.48*10^6*8*t/15/(6-y(1))-(7.35*10^6+4.48*10^6/(6-y(1)))*y(1)-17.785*10^3*y(2))/4080]; 运行结果如下: >> t = 0 0.0040 0.0080 0.0120 0.0160 0.0200 0.0240 0.0280 0.0320 0.0367 0.0415 0.0463 0.0510 0.0562 0.0614 0.0666 0.0718 0.0773 0.0828 0.0884 0.0939 0.1005 0.1070 0.1136 0.1202 0.1246 0.1291 0.1336 0.1380 0.1425 0.1470 0.1514 0.1559 0.1581 0.1603 0.1625 0.1648 y = 0 0 0.0000 0.0008 0.0000 0.0030 0.0000 0.0067 0.0001 0.0117 0.0001 0.0177 0.0002 0.0247 0.0003 0.0322 0.0005 0.0402 0.0007 0.0499 0.0009 0.0593 0.0012 0.0681 0.0016 0.0759 0.0020 0.0828 0.0024 0.0879 0.0029 0.0907 0.0034 0.0913 0.0039 0.0896 0.0044 0.0854 0.0048 0.0792 0.0052 0.0713 0.0057 0.0606 0.0060 0.0492 0.0063 0.0382 0.0065 0.0283 0.0067 0.0228 0.0067 0.0184 0.0068 0.0152 0.0069 0.0135 0.0069 0.0132 0.0070 0.0143 0.0071 0.0168 0.0072 0.0205 0.0072 0.0227 0.0073 0.0252 0.0073 0.0278 0.0074 0.0307 timeend = 0.1648 >> |

3楼2016-02-18 09:54:32
glgjw
银虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 252.4
- 帖子: 232
- 在线: 93.2小时
- 虫号: 2115194
- 注册: 2012-11-08
- 性别: GG
- 专业: 信息处理方法与技术
4楼2016-02-18 11:04:42










回复此楼
