24小时热门版块排行榜    

查看: 1057  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

greetrunners

金虫 (著名写手)

[求助] MATLAB, 代码错误,请大侠帮忙看看。

[t12 t21 t13 t31 t23 t32]=lsqnonlin(@lsqfun3,1,1,1,1,1,1)
Undefined function or variable 'a2'.

Error in lsqfun3 (line 8)
k1=(a2.^2*t21*exp(-0.3*t21)*exp(-0.3*t21)+a3.^2*t31*exp(-0.3*t31)*exp(-0.3*t31)+a2.*a3*exp(-0.3*t21)*exp(-0.3*t31)*(t21+t31))./((a1+a2.*exp(-0.3*t21)+a3*exp(-0.3*t31)).^2);

Error in lsqnonlin (line 197)
            initVals.F = feval(funfcn{3},xCurrent,varargin{:});

Caused by:
    Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue.


为了减少输出的参数,编写以下函数,出现了上述问题。
function obj=lsqfun3(t12,t21,t13,t31,t23,t32)
%t12,t21,t13,t31,t23,t32,是所需要关联的NRTL方程参数;
%a1,a2,a3,是组分1,2,3,液相平衡数据;
%y1,y2,y3,是组分1,2,3,气相平衡数据;
%ps1,ps2,ps3,是组分1,2,3的饱和蒸汽压;
%p==101.35;
p=101.35;
k1=(a2.^2*t21*exp(-0.3*t21)*exp(-0.3*t21)+a3.^2*t31*exp(-0.3*t31)*exp(-0.3*t31)+a2.*a3*exp(-0.3*t21)*exp(-0.3*t31)*(t21+t31))./((a1+a2.*exp(-0.3*t21)+a3*exp(-0.3*t31)).^2);
k2=(a2.^2*t12*exp(-0.3*t12)+a2.*a3*exp(-0.3*t12)*exp(-0.3*t32)*(t12-t32))./((a1*exp(-0.3*t12)+a2+a3*exp(-0.3*t32)).^2);
k3=(a3.^2*t13*exp(-0.3*t13)+a2.*a3*exp(-0.3*t13)*exp(-0.3*t23)*(t13-t23))./((a1*exp(-0.3*t13)+a2*exp(-0.3*t23)+a3).^2);
k4=(a1.^2*t21*exp(-0.3*t21)+a1.*a3*exp(-0.3*t21)*exp(-0.3*t31)*(t21-t31))./((a1+a2*exp(-0.3*t21)+a3*exp(-0.3*t31)).^2);
k5=(a1.^2*t12*exp(-0.3*t12)^2+a3.^2*t32*exp(-0.3*t32)^2+a1.*a3*exp(-0.3*t12)*exp(-0.3*t32)*(t12+t32))./((a1*exp(-0.3*t12)+a2+a3*exp(-0.3*t32)).^2);
k6=(a3.^2*t23*exp(-0.3*t23)+a1.*a3*exp(-0.3*t13)*exp(-0.3*t23)*(t23-t13))./((a1*exp(-0.3*t13)+a2*exp(-0.3*t23)+a3).^2);
k7=(a1.^2*t31*exp(-0.3*t31)+a1.*a2*exp(-0.3*t21)*exp(-0.3*t31)*(t31-t21))./((a1+a2*exp(-0.3*t21)+a3*exp(-0.3*t31)).^2);
k8=(a2.^2*t32*exp(-0.3*t32)^2+a1.*a2*exp(-0.3*t12)*exp(-0.3*t32)*(t32-t12))./((a1*exp(-0.3*t12)+a2+a3*exp(-0.3*t32)).^2);
k9=(a1.^2*t13*exp(-0.3*t13)^2+a2.^2*t23*exp(-0.3*t23)^2+a1.*a2*exp(-0.3*t13)*exp(-0.3*t23)*(t13+t23))./((a1*exp(-0.3*t13)+a2*exp(-0.3*t23)+a3).^2);
gama1=exp(k1+k2+k3);
gama2=exp(k4+k5+k6);
gama3=exp(k7+k8+k9);
y1c=ps1.*gama1.*a1./p;
y2c=ps2*gama2*a2./p;
y3c=ps3*gama3*a3./p;
obj=sum(sum((y1c-y1).^2+(y2c-y2).^2+(y3c-y3).^2));
>> y1=[0.8907
0.8924
0.733
0.7731
0.698
0.7778
0.7622
0.7796
0.7934];
y2=[0.1082
0.1067
0.6626
0.5623
0.732
0.4326
0.3978
0.3766
0.3473];
y3=[0
0
0
0
0
0
0
0
0];
a1=[0.8918
0.8933
0.3374
0.4377
0.268
0.5674
0.6022
0.6234
0.6527];
a2=[0.10723
0.10649
0.62613
0.53391
0.70928
0.42518
0.39054
0.37007
0.34364];
a3=[0.00097
0.00021
0.03647
0.02839
0.02272
0.00742
0.00726
0.00653
0.00366];
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

greetrunners

金虫 (著名写手)

引用回帖:
2楼: Originally posted by libralibra at 2013-01-30 17:17:00
function obj=lsqfun3(t12,t21,t13,t31,t23,t32)
%t12,t21,t13,t31,t23,t32,是所需要关联的NRTL方程参数;
%a1,a2,a3,是组分1,2,3,液相平衡数据;
%y1,y2,y3,是组分1,2,3,气相平衡数据;
%ps1,ps2,ps3,是 ...

可以帮我修改一下吗?
努力!努力!努力!
5楼2013-01-31 12:14:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
greetrunners: 金币+10, ★★★很有帮助, 谢谢 2013-01-31 09:39:29
xzhdty: 金币+1, 谢谢骠骑将军 2013-01-31 11:08:38
function obj=lsqfun3(t12,t21,t13,t31,t23,t32)
%t12,t21,t13,t31,t23,t32,是所需要关联的NRTL方程参数;
%a1,a2,a3,是组分1,2,3,液相平衡数据;
%y1,y2,y3,是组分1,2,3,气相平衡数据;
%ps1,ps2,ps3,是组分1,2,3的饱和蒸汽压;
%p==101.35;
p=101.35;
k1=(a2.^2*t21*exp(-0.3*t21)*exp(-0.3*t21)+a3.^2*t31*exp(-0.3*t31)*exp(-0.3*t31)+a2.*a3*exp(-0.3*t21)

===============
函数中a2,a3没定义啊,怎么就开始用了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-01-30 17:17:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

greetrunners

金虫 (著名写手)

引用回帖:
2楼: Originally posted by libralibra at 2013-01-30 17:17:00
function obj=lsqfun3(t12,t21,t13,t31,t23,t32)
%t12,t21,t13,t31,t23,t32,是所需要关联的NRTL方程参数;
%a1,a2,a3,是组分1,2,3,液相平衡数据;
%y1,y2,y3,是组分1,2,3,气相平衡数据;
%ps1,ps2,ps3,是 ...

应该如何定义?
努力!努力!努力!
3楼2013-01-30 19:08:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
3楼: Originally posted by greetrunners at 2013-01-30 19:08:17
应该如何定义?...

这...你自己知道吧?
起码函数的定义应该是

function ret_value = foo(input_value)
param1 = ...
param2 = ...
% then use param1 and param2 to calculate the others
...
end

你得先定义参数,然后使用,你的函数前面几行看着写的挺清楚,可是那是注释,你没有定义a2,a3....几乎所有要用的参数
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2013-01-30 20:43:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703化学调剂 +4 pupcoco 2026-03-17 7/350 2026-03-18 12:14 by djl2006
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +6 Becho359 2026-03-11 6/300 2026-03-18 12:09 by djl2006
[考博] 环境领域全国重点实验室招收博士1-2名 +3 QGZDSYS 2026-03-13 5/250 2026-03-18 11:13 by QGZDSYS
[考研] 266求调剂 +3 阳阳哇塞 2026-03-14 7/350 2026-03-18 09:42 by wangkm
[考研] 297求调剂 +4 戏精丹丹丹 2026-03-17 4/200 2026-03-18 09:32 by zhukairuo
[考研] 268求调剂 +6 简单点0 2026-03-17 6/300 2026-03-18 09:04 by 无际的草原
[考研] 311求调剂 +10 冬十三 2026-03-15 11/550 2026-03-18 09:04 by zhukairuo
[考研] 274求调剂0856材料化工 +13 z2839474511 2026-03-11 14/700 2026-03-17 16:51 by share_joy
[考研] 08工科 320总分 求调剂 +4 梨花珞晚风 2026-03-17 4/200 2026-03-17 13:38 by houyaoxu
[考研] 271求调剂 +12 生如夏花… 2026-03-11 14/700 2026-03-17 10:56 by lovewei0727
[考研] [导师推荐]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
[考研] 药学383 求调剂 +3 药学chy 2026-03-15 4/200 2026-03-16 20:51 by 元子^0^
[考研] 0703化学调剂,求各位老师收留 +8 秋有木北 2026-03-14 8/400 2026-03-16 15:21 by 哦哦123
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
[考研] 材料工程调剂 +9 咪咪空空 2026-03-12 9/450 2026-03-13 22:05 by 星空星月
[考研] 0856材料与化工301求调剂 +5 奕束光 2026-03-13 5/250 2026-03-13 22:00 by 星空星月
[考研] 329求调剂 +3 miaodesi 2026-03-12 4/200 2026-03-13 20:53 by 18595523086
[考研] 【考研调剂求收留】 +3 Ceciilia 2026-03-11 3/150 2026-03-13 20:18 by JourneyLucky
[考研] 328化工专硕求调剂 +4 。,。,。,。i 2026-03-12 4/200 2026-03-13 14:44 by JourneyLucky
[考研] 333求调剂 +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
信息提示
请填处理意见