| 查看: 1392 | 回复: 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肯定没有错误,大家检查其他的部分即可。谢谢! |
» 猜你喜欢
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有12人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有14人回复
江汉大学解明教授课题组招博士研究生/博士后
已经有3人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有11人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有11人回复
wurongjun
专家顾问 (职业作家)
-

专家经验: +831 - 数学EPI: 9
- 应助: 791 (博后)
- 贵宾: 0.308
- 金币: 24609
- 散金: 310
- 红花: 75
- 帖子: 3004
- 在线: 881.2小时
- 虫号: 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.2小时
- 虫号: 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
wurongjun
专家顾问 (职业作家)
-

专家经验: +831 - 数学EPI: 9
- 应助: 791 (博后)
- 贵宾: 0.308
- 金币: 24609
- 散金: 310
- 红花: 75
- 帖子: 3004
- 在线: 881.2小时
- 虫号: 1368482
- 注册: 2011-08-14
- 性别: GG
- 专业: 计算数学与科学工程计算
- 管辖: 数学

5楼2016-02-18 11:16:38
glgjw
银虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 252.4
- 帖子: 232
- 在线: 93.2小时
- 虫号: 2115194
- 注册: 2012-11-08
- 性别: GG
- 专业: 信息处理方法与技术
6楼2016-02-18 11:40:08
wurongjun
专家顾问 (职业作家)
-

专家经验: +831 - 数学EPI: 9
- 应助: 791 (博后)
- 贵宾: 0.308
- 金币: 24609
- 散金: 310
- 红花: 75
- 帖子: 3004
- 在线: 881.2小时
- 虫号: 1368482
- 注册: 2011-08-14
- 性别: GG
- 专业: 计算数学与科学工程计算
- 管辖: 数学

7楼2016-02-18 11:48:11
glgjw
银虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 252.4
- 帖子: 232
- 在线: 93.2小时
- 虫号: 2115194
- 注册: 2012-11-08
- 性别: GG
- 专业: 信息处理方法与技术
|
您看看: >> [t,y]=ode45(@mass1,[0 10],[0;0],options) dy = 0 0 ??? Error: File: d:\MATLAB7\work\lift.m Line: 1 Column: 1 Missing variable or function. Error in ==> funfun\private\odeevents at 29 eventValue = feval(eventFcn,t0,y0,eventArgs{:}); Error in ==> ode45 at 209 [haveEventFcn,eventFcn,eventArgs,valt,teout,yeout,ieout] = ... 好像说lift.m第一行第一列缺变量,也不缺啊。 |
8楼2016-02-18 11:55:10













回复此楼
