24小时热门版块排行榜    

查看: 1430  |  回复: 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的回帖

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的回帖
查看全部 9 个回答
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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 考研化学学硕调剂,一志愿985 +5 张vvvv 2026-03-15 7/350 2026-03-21 19:23 by ColorlessPI
[考研] 材料与化工(0856)304求B区调剂 +3 邱gl 2026-03-20 7/350 2026-03-21 19:05 by 15709483992
[考研] 求调剂 +5 十三加油 2026-03-21 5/250 2026-03-21 18:48 by 学员8dgXkO
[考研] 297求调剂 +3 喜欢还是不甘心 2026-03-20 3/150 2026-03-21 18:33 by 学员8dgXkO
[考研] 初试 317 +6 半拉月丙 2026-03-20 6/300 2026-03-21 18:27 by 学员8dgXkO
[考研] 297求调剂 +11 戏精丹丹丹 2026-03-17 12/600 2026-03-21 17:47 by ColorlessPI
[考研] 302求调剂 +12 呼呼呼。。。。 2026-03-17 12/600 2026-03-21 17:29 by ColorlessPI
[考研] 一志愿西安交通大学材料工程专业 282分求调剂 +8 枫桥ZL 2026-03-18 10/500 2026-03-21 15:29 by Shawn0911
[考研] 材料与化工(0856)304求 B区 调剂 +3 邱gl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[考研] 机械专硕299求调剂至材料 +3 kkcoco25 2026-03-16 4/200 2026-03-21 03:52 by JourneyLucky
[考研] 初始318分求调剂(有工作经验) +3 1911236844 2026-03-17 3/150 2026-03-21 02:33 by JourneyLucky
[考研] 求调剂 +3 Ma_xt 2026-03-17 3/150 2026-03-21 02:05 by JourneyLucky
[考研] 304求调剂 +6 曼殊2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[考研] 085600材料与化工 +8 安全上岸! 2026-03-16 8/400 2026-03-20 22:13 by luoyongfeng
[考研] 一志愿西安交通大学 学硕 354求调剂211或者双一流 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 材料专硕326求调剂 +6 墨煜姒莘 2026-03-15 7/350 2026-03-17 17:10 by ruiyingmiao
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[考研] 东南大学364求调剂 +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by 木瓜膏
信息提示
请填处理意见