24小时热门版块排行榜    

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

FMStation

至尊木虫 (知名作家)

no f(3)
2楼2016-08-17 17:59:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)


小木虫: 金币+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的回帖

匿名

用户注销 (著名写手)

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

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的回帖
相关版块跳转 我要订阅楼主 zhidian1993 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂院校信息 +4 CX 330 2026-03-21 4/200 2026-03-21 23:48 by ms629
[考研] 求调剂 +3 13341 2026-03-20 3/150 2026-03-21 18:28 by 学员8dgXkO
[考研] 求助 +5 梦里的无言 2026-03-21 6/300 2026-03-21 17:51 by 学员8dgXkO
[考研] 330求调剂0854 +3 assdll 2026-03-21 3/150 2026-03-21 13:01 by 搏击518
[考研] 303求调剂 +5 睿08 2026-03-17 7/350 2026-03-21 03:11 by JourneyLucky
[考研] 332求调剂 +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[考研] 一志愿重庆大学085700资源与环境专硕,总分308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[考研] 一志愿武汉理工材料工程专硕调剂 +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[考研] 北科281学硕材料求调剂 +5 tcxiaoxx 2026-03-20 5/250 2026-03-20 21:35 by laoshidan
[考研] A区线材料学调剂 +5 周周无极 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[考研] 0817 化学工程 299分求调剂 有科研经历 有二区文章 +22 rare12345 2026-03-18 22/1100 2026-03-20 20:39 by zhukairuo
[考研] 材料与化工专硕调剂 +7 heming3743 2026-03-16 7/350 2026-03-20 19:31 by zhukairuo
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +5 1孙悟空 2026-03-17 6/300 2026-03-19 23:46 by zcl123
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by 无际的草原
[考研] 【同济软件】软件(085405)考研求调剂 +3 2026eternal 2026-03-18 3/150 2026-03-18 19:09 by 搏击518
[考研] 材料专硕306英一数二 +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 326求调剂 +5 上岸的小葡 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[考研] 考研调剂 +3 淇ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
信息提示
请填处理意见