24小时热门版块排行榜    

查看: 1867  |  回复: 15

zxw1982

木虫 (正式写手)

[求助] 求助高手:1stopt软件拟合三元体系的NRTL 方程,为什么一运行软件就死? 已有1人参与

我用1stopt软件计算三元体系的NRTL 方程参数,不知道为什么每次一运行计算,软件就无响应。
求助高手给看看,是哪里出了问题?
非常感谢!

Title "NRTL Model";
Parameters g12,g13,g21,g23,g31,g32;
Variable T,x1,y;
Constant R=8.314;
Constant a=0.3;
ConstStr x2=0.1*(1-x1);
ConstStr x3=0.9*(1-x1);
ConstStr G12=exp(-a*t12);
ConstStr G13=exp(-a*t13);
ConstStr G21=exp(-a*t21);
ConstStr G23=exp(-a*t23);
ConstStr G31=exp(-a*t31);
ConstStr G32=exp(-a*t32);
ConstStr t12=g12/(R*T);
ConstStr t13=g13/(R*T);
ConstStr t21=g21/(R*T);
ConstStr t23=g23/(R*T);
ConstStr t31=g31/(R*T);
ConstStr t32=g32/(R*T);
Function y=exp((G21*x2+G31*x3)*(t21*G21*x2+t31*G31*x3)/(x1+x2*G21+x3*G31)^2+(t13*G13*x3*x3+G13*G23*x2*x3*(t13-t23))/(x3+x1*G13+x2*G23)^2+(t12*G12*x2*x2+G12*G32*x2*x3*(t12-t32))/(x2+x1*G12+x3*G32)^2);
Data;
//T,x1,y=
293.15        0.0418        3.8504
298.15        0.052        3.5225
303.15        0.0644        3.2231
308.15        0.0792        2.9579
313.15        0.0986        2.6711
318.15        0.1196        2.4667
323.15        0.1468        2.2432
328.15        0.1792        2.0443
333.15        0.2205        1.8423
338.15        0.2708        1.6584
343.15        0.3334        1.4849@月只蓝@beefly
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

lipenggg

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zxw1982: 金币+50, ★★★★★最佳答案, 高手,太牛了,非常感谢啊,小小金币,请笑纳 2016-04-18 13:24:32
Gxx和txx有点像循环,将Gxx带入公式就可以运行。
"NRTL Model"

迭代数: 57
计算用时(时:分:秒:微秒): 00:00:34:778
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.00562784682002697
残差平方和(SSE): 0.000348399258126565
相关系数(R): 0.999971252921243
相关系数之平方(R^2): 0.99994250666888
决定系数(DC): 0.999942482492335
卡方系数(Chi-Square): 6.69010417634671E-5
F统计(F-Statistic): 156530.894709368

参数        最佳估算
----------        -------------
g12                3006.09966005237
g13                129.553350585897
g21                -3684.92515292263
g23                2.28772252829897
g31                5836.85272493941
g32                40922.3158718221

====== 结果输出 =====

No        实测值y        计算值y
1        3.8504        3.8504756
2        3.5225        3.5228717
3        3.2231        3.2225105
4        2.9579        2.9501120
5        2.6711        2.6865438
6        2.4667        2.4625225
7        2.2432        2.2424896
8        2.0443        2.0396803
9        1.8423        1.8418459
10        1.6584        1.6583433
11        1.4849        1.4879393

» 本帖已获得的红花(最新10朵)

一团和气
5楼2016-04-18 13:01:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lipenggg

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
Title "NRTL Model";
Parameters g12,g13,g21,g23,g31,g32;
Variable T,x1,y;
Constant R=8.314;
Constant a=0.3;
ConstStr x2=0.1*(1-x1);
ConstStr x3=0.9*(1-x1);
ConstStr t12=g12/(R*T);
ConstStr t13=g13/(R*T);
ConstStr t21=g21/(R*T);
ConstStr t23=g23/(R*T);
ConstStr t31=g31/(R*T);
ConstStr t32=g32/(R*T);
Function y=exp((exp(-a*t21)*x2+exp(-a*t31)*x3)*(t21*exp(-a*t21)*x2+t31*exp(-a*t31)*x3)/(x1+x2*exp(-a*t21)+x3*exp(-a*t31))^2
           +(t13*exp(-a*t13)*x3*x3+exp(-a*t13)*exp(-a*t23)*x2*x3*(t13-t23))
           /(x3+x1*exp(-a*t13)+x2*exp(-a*t23))^2+(t12*exp(-a*t12)*x2*x2+exp(-a*t12)*exp(-a*t32)*x2*x3*(t12-t32))/(x2+x1*exp(-a*t12)+x3*exp(-a*t32))^2);
Data;
//T,x1,y=
293.15        0.0418        3.8504
298.15        0.0520        3.5225
303.15        0.0644        3.2231
308.15        0.0792        2.9579
313.15        0.0986        2.6711
318.15        0.1196        2.4667
323.15        0.1468        2.2432
328.15        0.1792        2.0443
333.15        0.2205        1.8423
338.15        0.2708        1.6584
343.15        0.3334        1.4849
一团和气
4楼2016-04-18 12:54:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

小写g12和大写G12是一个参数吗,还是不同的参数?
须注意1stOpt是不区分字母的大小写的。
如果是同一个参数,改成如下,即可运行:
Parameters g12,g13,g21,g23,g31,g32;
Variable T,x1,y;
Constant R=8.314;
Constant a=0.3;
ConstStr x2=0.1*(1-x1);
ConstStr x3=0.9*(1-x1);

ConstStr t12=g12/(R*T);
ConstStr t13=g13/(R*T);
ConstStr t21=g21/(R*T);
ConstStr t23=g23/(R*T);
ConstStr t31=g31/(R*T);
ConstStr t32=g32/(R*T);
Function y=exp((G21*x2+G31*x3)*(t21*G21*x2+t31*G31*x3)/(x1+x2*G21+x3*G31)^2+(t13*G13*x3*x3+G13*G23*x2*x3*(t13-t23))/(x3+x1*G13+x2*G23)^2+(t12*G12*x2*x2+G12*G32*x2*x3*(t12-t32))/(x2+x1*G12+x3*G32)^2);
Data;
//T,x1,y=
293.15        0.0418        3.8504
298.15        0.052        3.5225
303.15        0.0644        3.2231
308.15        0.0792        2.9579
313.15        0.0986        2.6711
318.15        0.1196        2.4667
323.15        0.1468        2.2432
328.15        0.1792        2.0443
333.15        0.2205        1.8423
338.15        0.2708        1.6584
343.15        0.3334        1.4849

此时计算结果:
相关系数(R): 0.999976628442786
相关系数之平方(R^2): 0.999953257431802
决定系数(DC): 0.999953257381529
卡方系数(Chi-Square): 5.37442244394238E-5
F统计(F-Statistic): 192534.977511446

参数        最佳估算
----------        -------------
g12                -221394.823719256
g13                10692.2673284175
g21                -337.136660727573
g23                10533.6794712838
g31                -338.589449050954
g32                -253770.053103296


如果小写g12和大写G12是不同的参数,那按四楼那样改。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2016-04-18 13:58:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

我在2楼中回复说“代码格式书写没有问题”,现在看来不是的,原代码在变量的大小写书写区分上存在问题的。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2016-04-18 14:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

如变量不区分大小写,还有更好的结果,决定系数可达5个“9”:
相关系数(R): 0.999996633225546
相关系数之平方(R^2): 0.999993266462426
决定系数(DC): 0.999993266385066
卡方系数(Chi-Square): 8.55335536774635E-6
F统计(F-Statistic): 1336584.12088942

参数        最佳估算
----------        -------------
g12                776.942748582934
g13                -415.294727118021
g21                -0.118066444579496
g23                -2966.48681543665
g31                -0.118070641087448
g32                47.1205980648154
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
8楼2016-04-18 14:04:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lipenggg

专家顾问 (正式写手)

一团和气
9楼2016-04-18 16:52:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

月只蓝

主管区长 (职业作家)

代码格式、公式书写应该都没问题,应该是1stOpt版本问题了。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2016-04-18 11:53:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxw1982

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2016-04-18 11:53:49
代码格式、公式书写应该都没问题,应该是1stOpt版本问题了。

我怎么检查也搞不明白是什么问题,换成Wilson方程,也是拟合六个参数,就能运行。很奇怪
3楼2016-04-18 12:12:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxw1982

木虫 (正式写手)

引用回帖:
6楼: Originally posted by 月只蓝 at 2016-04-18 13:58:53
小写g12和大写G12是一个参数吗,还是不同的参数?
须注意1stOpt是不区分字母的大小写的。
如果是同一个参数,改成如下,即可运行:
Parameters g12,g13,g21,g23,g31,g32;
Variable T,x1,y;
Constant R=8.314;
...

g12和G12在公式中是有不同含义的。我不知道这个软件不分大小写。非常感谢您指出这个问题
10楼2016-04-18 18:20:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zxw1982 的主题更新
信息提示
请填处理意见