24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1475  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 291分调剂 +8 上岸小莹加油 2026-04-09 9/450 2026-04-15 00:41 by zzzggc
[考研] 调剂求收留 +33 果然有我 2026-04-10 34/1700 2026-04-15 00:37 by zzzggc
[考研] 273求调剂 +4 白居不易. 2026-04-09 6/300 2026-04-14 19:54 by 逆水乘风
[考研] 药学305求调剂 +6 玛卡巴卡boom 2026-04-11 6/300 2026-04-14 19:48 by zhouxiaoyu
[考研] 求助调剂,跨调 +18 X十甫寸Y 2026-04-11 19/950 2026-04-14 19:26 by Art1977
[考研] 通信工程求调剂!!! +4 zlb770521 2026-04-14 4/200 2026-04-14 18:19 by lbsjt
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 071000生物学调剂求助 +18 zzzzwww 2026-04-09 21/1050 2026-04-14 15:39 by zs92450
[考研] 求调剂 +20 MAX怅惘 2026-04-09 22/1100 2026-04-14 14:57 by 独醉梦孤城
[考研] 材料工程日语考生求调剂 +7 0856?调剂 2026-04-10 7/350 2026-04-11 21:33 by 蓝云思雨
[考研] 求调剂,一志愿大连理工大学354分 +5 雨声余生 2026-04-11 6/300 2026-04-11 16:12 by 雨声余生
[考研] 283求调剂,工科! +12 苏打水7777 2026-04-08 12/600 2026-04-11 10:28 by 逆水乘风
[考研] 346,工科0854求调剂,专硕 +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by 猪会飞
[考研] 368求调剂 +3 17385968172 2026-04-10 3/150 2026-04-10 20:12 by 电子奥德彪
[考研] 本9 一志愿西工大085601 324求调剂 +5 wysyjs25 2026-04-10 5/250 2026-04-10 16:57 by luoyongfeng
[考研] 298求调剂 +13 钉叮咚冬瓜 2026-04-09 13/650 2026-04-10 15:49 by jiajinhpu
[考研] 一志愿沪9,326生物学求相关专业调剂 +4 刘墨墨 2026-04-09 4/200 2026-04-10 12:07 by pengliang8036
[考研] 344求调剂 +7 丶风雪夜归人丶 2026-04-09 7/350 2026-04-10 12:05 by pengliang8036
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 求调剂 +3 猪肉墩粉条cc 2026-04-08 4/200 2026-04-09 10:05 by 猪肉墩粉条cc
信息提示
请填处理意见