24小时热门版块排行榜    

查看: 838  |  回复: 13

apple880518

新虫 (小有名气)

[求助] matlab求助

matlab菜鸟,现在要用matlab处理动力学方程,所以看了几天教程什么的。请大家帮帮忙,运行时出来这个什么意思?
rror using ==> fmincon
FMINCON cannot continue because user supplied objective function failed with the following error:
Undefined function or method 'ci' for input arguments of type 'double'.
还有我看很多求动力学参数的程序里好像差不多,这是程序的前边,只贴了一部分
function model
k0=[]
lb=[]
ub=[]
x0=[]
KineticsData
yexp=ExpData(:,1:5)
[k,fval,flag]=fmincon(@Objfunc4Fmincon,k0,[],[],[],[],lb,ub,[],[],x0,yexp)
fprint('n使用函数fmincon()估计得到的参数值为:\n')
想请问大家这个“KineticsData”是不是让输入动力学数据?那我这有很多温度下的,是都要输进去还是只输入一个温度的?还有很多类似的程序都用yexp,也有用xexp,这是什么,只是输出变量的话为什么大家都用的一样的字母???一点也不懂,大家别笑我啊,请大家帮帮忙,谢谢!
回复此楼

» 猜你喜欢

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

zxhao168

捐助贵宾 (正式写手)


【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢 2013-04-30 19:15:16
apple880518: 金币+2 2013-05-04 15:45:51
KineticsData应该是调用的函数,剧下面的程序推测,该函数的作用应该是导入(动力学)数据,并且存放于变量ExpData中,变量yexp提取了ExpData中的一部分变量作为函数fmincon的输入变量,如下:

yexp=ExpData(:,1:5)
[k,fval,flag]=fmincon(@Objfunc4Fmincon,k0,[],[],[],[],lb,ub,[],[],x0,yexp)

变量yexp当然可以用别的符号代替,但是要保证上下一致。
2楼2013-04-30 15:04:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+1, 感谢参与谢谢骠骑将军 2013-04-30 19:15:29
ben_ladeng: 专家考核 2013-04-30 20:46:32
apple880518: 金币+2 2013-05-04 15:45:56
Undefined function or method 'ci' for input arguments of type 'double'.
================
这个错误是说ci这个函数没找到.
你去检查一下看看哪里调用了ci函数,是否已经定义?
如果是输入参数,你输入的参数个数对吗?
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2013-04-30 16:10:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

apple880518

新虫 (小有名气)

引用回帖:
2楼: Originally posted by zxhao168 at 2013-04-30 15:04:21
KineticsData应该是调用的函数,剧下面的程序推测,该函数的作用应该是导入(动力学)数据,并且存放于变量ExpData中,变量yexp提取了ExpData中的一部分变量作为函数fmincon的输入变量,如下:

yexp=ExpData(:,1:5 ...

恩,谢谢,KineticsData是调用的函数的话,可不可以直接写成KineticsData=[]?这样直接写是不是就不能放在变量ExpData中了?我看这个程序中这样子,看不出来是把数据存放在变量ExpData中的啊?
4楼2013-04-30 17:21:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

apple880518

新虫 (小有名气)

引用回帖:
3楼: Originally posted by libralibra at 2013-04-30 16:10:11
Undefined function or method 'ci' for input arguments of type 'double'.
================
这个错误是说ci这个函数没找到.
你去检查一下看看哪里调用了ci函数,是否已经定义?
如果是输入参数,你输入的参数个 ...

k_fmincon=k
[k,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnolin(@Objfunc4LNL,k0,lb,ub,[],x0,yexp)
ci=nlparci(k,residual,jacobian)
fprint('n\n使用函数fmincon()估计得到的参数值为:\n')
Output

k0=k_fmincon;
[k,resnorm,residual,exitflag,output,lambda,jaconbian]=
lsqnonlin(@Objfunc4LNL,k0,lb,ub,[],x0,yexp);
ci=nlparci(k,residual,jacobian);
fprintf('n\n以fmincon()的结果为初值,使用函数lsqnonlin()估计得到的参数值为:\n')
Output
只有这两个地方有ci,这里的ci是输入参数还是函数?
5楼2013-04-30 17:24:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxhao168

捐助贵宾 (正式写手)


【答案】应助回帖

引用回帖:
4楼: Originally posted by apple880518 at 2013-04-30 17:21:15
恩,谢谢,KineticsData是调用的函数的话,可不可以直接写成KineticsData=[]?这样直接写是不是就不能放在变量ExpData中了?我看这个程序中这样子,看不出来是把数据存放在变量ExpData中的啊?...

建议去看一看KineticsData这个函数
6楼2013-04-30 18:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


apple880518: 金币+1 2013-05-04 15:46:03
引用回帖:
5楼: Originally posted by apple880518 at 2013-04-30 17:24:48
k_fmincon=k
=lsqnolin(@Objfunc4LNL,k0,lb,ub,[],x0,yexp)
ci=nlparci(k,residual,jacobian)
fprint('n\n使用函数fmincon()估计得到的参数值为:\n')
Output

k0=k_fmincon;
=
lsqnonlin(@Objfunc4LNL,k0, ...

ci是返回值,不是输入,按理说matlab报错会有错误所在行,可以直接定位错误的,你这个报错信息有吗?
另外那个Output是什么?没看到有大写O的Output啊
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
7楼2013-04-30 18:40:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

apple880518

新虫 (小有名气)

引用回帖:
7楼: Originally posted by libralibra at 2013-04-30 18:40:36
ci是返回值,不是输入,按理说matlab报错会有错误所在行,可以直接定位错误的,你这个报错信息有吗?
另外那个Output是什么?没看到有大写O的Output啊...

是吗???我不懂啊,我一直以为Output就是输出结果的,而且就是大写的。ci 那个下边有红色线
8楼2013-04-30 18:49:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

apple880518

新虫 (小有名气)

引用回帖:
6楼: Originally posted by zxhao168 at 2013-04-30 18:10:01
建议去看一看KineticsData这个函数...

好的,谢谢,我不知道还有这个函数,汗啊
9楼2013-04-30 18:49:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

ben_ladeng: 专家考核 2013-04-30 20:51:34
引用回帖:
8楼: Originally posted by apple880518 at 2013-04-30 18:49:14
是吗???我不懂啊,我一直以为Output就是输出结果的,而且就是大写的。ci 那个下边有红色线...

鼠标放到红色线上看看,是不是只是个警告而已?提示你行尾未加分号,会将结果写入command window,影响速度?

报错会有具体行号的,像这种
Undefined function or variable 'tt'.

Error in temp (line 6)
tt

>>
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
10楼2013-04-30 19:42:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 apple880518 的主题更新
信息提示
请填处理意见