24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1473  |  回复: 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肯定没有错误,大家检查其他的部分即可。谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
2楼2016-02-17 22:39:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glgjw

银虫 (小有名气)

引用回帖:
3楼: Originally posted by wurongjun at 2016-02-18 09:54:32
一点点问题!
简单修改如下!
opts=odeset('events',@lift);
=ode45(@mass1,,,opts)
function=lift(t,y)
value=160.5*y(1)+448*t-75;
isterminal=1;
direction=[];
function dy=mass1(t,y)
dy=;
运行结果如 ...

请问您就是把'mass1'改为@mass1了吗?我之前也这么改过,但还是出现同样的错误。请赐教!

发自小木虫Android客户端
4楼2016-02-18 11:04:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

引用回帖:
4楼: Originally posted by glgjw at 2016-02-18 11:04:42
请问您就是把'mass1'改为@mass1了吗?我之前也这么改过,但还是出现同样的错误。请赐教!
...

是的!
善恶到头终有报,人间正道是沧桑.
5楼2016-02-18 11:16:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glgjw

银虫 (小有名气)

引用回帖:
5楼: Originally posted by wurongjun at 2016-02-18 11:16:38
是的!...

那还是同样的错误呀!我用的是MATLAB7

发自小木虫Android客户端
6楼2016-02-18 11:40:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

引用回帖:
6楼: Originally posted by glgjw at 2016-02-18 11:40:08
那还是同样的错误呀!我用的是MATLAB7
...

我的已经运行啦!结果贴在上面!
你把出错提示发上来看看!
善恶到头终有报,人间正道是沧桑.
7楼2016-02-18 11:48:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glgjw

银虫 (小有名气)

引用回帖:
7楼: Originally posted by wurongjun at 2016-02-18 11:48:11
我的已经运行啦!结果贴在上面!
你把出错提示发上来看看!...

您看看:
>> [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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 glgjw 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 通信工程求调剂!!! +4 zlb770521 2026-04-14 4/200 2026-04-14 18:19 by lbsjt
[考研] 材料相关专业344求调剂双非工科学校或课题组 +21 hualkop 2026-04-12 22/1100 2026-04-14 17:44 by lhj2009
[考研] 一志愿西南大学生物学学硕344 求生物学相关调剂/生物与医药 +8 超人不会飞@ 2026-04-08 8/400 2026-04-14 16:06 by zs92450
[考研] 求助调剂,跨调 +17 X十甫寸Y 2026-04-11 18/900 2026-04-14 12:59 by fqwang
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +12 无情的小羊 2026-04-09 13/650 2026-04-13 14:17 by 张zhihao
[考研] 求调剂 +9 吃口冰激凌 2026-04-07 9/450 2026-04-13 08:46 by 紫曦紫棋
[考研] +10 李多米lee. 2026-04-12 11/550 2026-04-12 22:58 by yuyin1233
[考研] 085404 293求调剂 +9 勇远库爱314 2026-04-08 9/450 2026-04-12 02:24 by 秋豆菜芽
[考研] 22408调剂315分 +3 zhuangyan123 2026-04-09 3/150 2026-04-12 00:25 by 蓝云思雨
[考研] 调剂 +6 青灯不负 2026-04-09 6/300 2026-04-11 20:35 by dongdian1
[考研] 085400 328分 求调剂 +10 喂你一个大橙子 2026-04-09 14/700 2026-04-11 19:53 by lqspecial
[考研] 085410 273分调剂 +4 X1999 2026-04-09 4/200 2026-04-11 13:05 by pies112
[考研] 283求调剂 +22 那个噜子 2026-04-09 22/1100 2026-04-11 10:41 by 逆水乘风
[考研] 275求调剂 +9 1624447980 2026-04-08 10/500 2026-04-11 10:20 by Delta2012
[考研] 中药学调剂 初试324 +4 洋甘菊、 2026-04-10 6/300 2026-04-11 09:41 by gong120082
[考研] 282,电气工程专业,求调剂,不挑专业 +9 jggshjkkm 2026-04-10 9/450 2026-04-10 14:55 by 逆水乘风
[考研] 江苏大学 工科调剂 捡漏 +3 Evan_Liu 2026-04-09 5/250 2026-04-10 10:22 by Evan_Liu
[考研] 求机械专硕297第二批调剂 +5 拾柒12。 2026-04-08 5/250 2026-04-09 16:43 by 允当适度
[考研] 311求调剂 +6 surte 2026-04-08 13/650 2026-04-09 14:00 by surte
[考研] 086000生物与医药调剂 +7 awwwwwooooo 2026-04-09 7/350 2026-04-09 13:31 by 北极159263
信息提示
请填处理意见