24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1177  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhidian1993

新虫 (初入文坛)

[交流] 请大神指出哪儿错了,怎么改,谢谢。 已有5人参与

function f=odefun(t,x)
f(1)=x(2);
f(2)=(f(3)*0.1*0.008*sign(x(2))+0.25*0.1075*0.0415*61.67^2*sin(x(1)))/0.15*(-1);
f(4)=arcsin(0.1075/0.0415*sin(x(1)));
f(5)=(0.1075^2+0.0415^2+2*0.1075*0.0415*cos(x(1)))^(1/2);
f(3)=0.25*(0.0415*0.0415*(f(2)^2+x(2)^4)+f(5)^2*61.67^4+2*0.0415*f(5)*(x(2)^2*61.67^2*cos*(2*x(1)-f(4))+f(2)*61.67^2*0.1075*sin(f(4))))^(1/2);
end

[t,x]=ode45(@odefun,[0,5],[0,pi/4]);
plot(t,x)

试图访问 f(3);由于 numel(f)=1,索引超出范围。

出错 odefun (line 3)
f(2)=(f(3)*0.1*0.008*sign(x(2))+0.25*0.1075*0.0415*61.67^2*sin(x(1)))/0.15*(-1);

出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
5楼2016-08-19 09:50:04
已阅   申请程序强帖   回复此楼   编辑   查看我的主页
查看全部 6 个回答

月只蓝

主管区长 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
有两方面问题:
其一,程序层面的。
对于MATLAB程序,一般情况下,应秉持“”先定义后使用“”的原则。
比如:
f(1)=x(2);
f(2)=(f(3)*0.1*0.008*sign(x(2))+0.25*0.1075*0.0415*61.67^2*sin(x(1)))/0.15*(-1);

来看上面这段代码,f(2)的定义中出现了f(3),然而在f(2)之前,并未有f(3)的定义。

其二,对问题的理解方面,或者说数学模型建立方面。
这方面的问题很严重,在这方面出现错误,将导致整个代码无意义。

1. 定义f时,f(2)和f(3)互相出现在了对方的表达式中,这说明f(2)和f(3)本身是隐函数,但是ode45函数只适合用于求解显式的常微分方程,明显不适用。

2. 既然调用ode系列函数,就应该明白,这是针对常微分方程(组)的函数,根据数学定义,常微分方程(组)因变量可为一个也可以是多个,但是自变量一定是一个,但在定义f时,出现了x(1)和x(2)两个自变量,两个自变量的情况,已经是偏微分方程的范畴了,这是一个致命的问题,这表明ode系列中任何函数都是不适用的。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2016-08-17 20:59:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

机械电子

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2016-08-17 20:59:48
有两方面问题:
其一,程序层面的。
对于MATLAB程序,一般情况下,应秉持“”先定义后使用“”的原则。
比如:
f(1)=x(2);
f(2)=(f(3)*0.1*0.008*sign(x(2))+0.25*0.1075*0.0415*61.67^2*sin(x(1)))/0.15*(-1) ...

不错

发自小木虫Android客户端
4楼2016-08-19 09:23:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Autoyang

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by 月只蓝 at 2016-08-17 20:59:48
有两方面问题:
其一,程序层面的。
对于MATLAB程序,一般情况下,应秉持“”先定义后使用“”的原则。
比如:
f(1)=x(2);
f(2)=(f(3)*0.1*0.008*sign(x(2))+0.25*0.1075*0.0415*61.67^2*sin(x(1)))/0.15*(-1) ...

function xprim= xprim1(t,x)

global a b c d e f q w r v s g

xprim =[(e*s+a)*x(1)+(e*g+b)*x(2)+q*0.3*sin(t)+w*0.1*cos(2*t);(f*s+c)*x(1)+(f*g+d)*x(2)+r*0.3*sin(t)+v*0.1*cos(2*t)];


clear;clc;

global a b c d e f q w r v s g

a = 0; b = 1; c = 4; d = 0;
e = 0; f = 1;
q = 1; w = 0; r = 0; v = 1;
s = 1; g = 3;

[t,x] = ode45('xprim1',[0 9],[0.4;0.2]);

plot(t,x)



出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

出错 event_trigger_ftb (line 10)
[t,x] = ode45('xprim1',[0 9],[0.4;0.2]);

您好,请问这个是怎么回事呀?
6楼2018-09-13 17:50:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 331环境科学与工程求调剂 +3 熠然好运气 2026-03-27 3/150 2026-03-28 04:11 by fmesaito
[考研] 0856材料化工调剂 总分330 +10 zhubinhao 2026-03-27 10/500 2026-03-28 03:34 by fmesaito
[考研] 265求调剂 +8 小木虫085600 2026-03-27 8/400 2026-03-27 22:16 by 无际的草原
[有机交流] 高温高压反应求助 10+4 chibby 2026-03-25 4/200 2026-03-27 21:08 by BT20230424
[考研] 085600材料与化工306 +10 z1z2z3879 2026-03-21 11/550 2026-03-27 11:31 by wangjy2002
[考研] 359求调剂 +4 王了个楠 2026-03-25 4/200 2026-03-27 08:43 by 不吃魚的貓
[考研] 351求调剂 +4 麦克阿磊 2026-03-24 4/200 2026-03-27 00:32 by wxiongid
[考研] 349求调剂 +5 杰斯塔里斯 2026-03-21 5/250 2026-03-27 00:31 by wxiongid
[考研] 材料与化工304求B区调剂 +3 邱gl 2026-03-26 6/300 2026-03-26 18:03 by 邱gl
[考研] 085602 289分求调剂 +8 WWW西西弗斯 2026-03-24 8/400 2026-03-26 16:33 by 不吃魚的貓
[考研] 打过很多竞赛,085406控制工程300分,求调剂 +3 askeladz 2026-03-26 3/150 2026-03-26 09:08 by 给你你注意休息
[考研] 一志愿上海交大生物与医药专硕324分,求调剂 +6 jiajunX 2026-03-22 6/300 2026-03-25 23:05 by licg0208
[考研] 求调剂 +3 李李不服输 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[考研] 材料专硕找调剂 +5 哈哈哈吼吼吼哈 2026-03-23 5/250 2026-03-24 19:07 by 了了了了。。
[考研] 材料专硕331求调剂 +4 鲜当牛 2026-03-24 4/200 2026-03-24 15:58 by JourneyLucky
[考研] 335求调剂 +4 yuyu宇 2026-03-23 5/250 2026-03-23 23:49 by Txy@872106
[考研] 336化工调剂 +4 王大坦1 2026-03-23 5/250 2026-03-23 18:32 by allen-yin
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 一志愿070300浙大化学358分,求调剂! +4 酥酥鱼.. 2026-03-21 4/200 2026-03-23 08:12 by Iveryant
[考研] 一志愿东华大学化学070300,求调剂 +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
信息提示
请填处理意见