作业帮 > 数学 > 作业

lingo非线性优化问题,目标函数有点复杂

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/14 13:31:14
lingo非线性优化问题,目标函数有点复杂
model:
sets:
wilson/r1..r7/:x,y;
pre/1/:G1,G2;
link(wilson,pre);
endsets
DATA:
x y= 0.2012 7.04
0.3013 9.19
0.3987 10.61
0.4993 11.11
0.5994 10.32
0.7023 9.51
0.7998 7.3;
V1= 159.53;
V2= 157.13;
T= 298.15;
enddata
min = @sum (link:(y-(1-x)*((x*(V1/V2)*@exp(-(G1/(8.314*T))))/(1-x+x*(V1/V2)*@exp(-(G1/(8.314*T)))))*G1
+x*((1-x)*(V2/V1)*@exp(-(G2/(8.314*T))))/(x+(1-x)*(V2/V1)*@exp(-(G2/(8.314*T))))*G2)^2);
@for(PRE:@free(G1);@free(G2);
@FOR(WILSON:@FREE(X);@FREE(Y));
end
能运算出来,但是答案不是很对,而且我将y-换成-y,答案也不一样,不懂出了什么问题
model:
sets:
wilson/r1..r7/:x,y;
pre/1/:G1,G2;
link(wilson,pre);
endsets
DATA:
x y= 0.2012 7.04
0.3013 9.19
0.3987 10.61
0.4993 11.11
0.5994 10.32
0.7023 9.51
0.7998 7.3;
V1= 159.53;
V2= 157.13;
T= 298.15;
enddata
min = @sum (link:(y-(1-x)*((x*(V1/V2)*@exp(-(G1/(8.314*T))))/(1-x+x*(V1/V2)*@exp(-(G1/(8.314*T)))))*G1
+x*((1-x)*(V2/V1)*@exp(-(G2/(8.314*T))))/(x+(1-x)*(V2/V1)*@exp(-(G2/(8.314*T))))*G2)^2);
@for(PRE:@free(G1);@free(G2));
@FOR(WILSON:@FREE(X);@FREE(Y));
end
不对那你用global solver解试试 你这种目标函数本来用lingo求最多也就是求个大概 要是什么函数lingo都能求准了那数学就不用做了
再问: 其实我用1stopt算的比较准,但是再复杂点的函数1stopt就算不了了,毕竟用的是盗版。。。正确的是 G1 108.973017425358 G2 -62.8678190350054 在1stopt中,目标函数直接就是y=...就行了,用lingo改成了残差的平方和最小求最小二乘,我想知道是不是我的目标函数设定的问题?
再答: 恐怕不是吧 你看看哪个结果小就知道哪个对了
再问: 我算了下,用正确的答案算的y,和y算为 Y 7.049.1910.6111.1110.329.517.3 Y算 6.989786 9.2063633 10.540812 11.053347 10.675575 9.3485546 7.1984761 用lingo给的答案Y算差很多 0.469584 0.615217 0.700752 0.730897 0.702157 0.611504 0.468414
再答: 你要求的是最小值好不 当然是越小越好了 你看哪个小
再问: 我的目标是Y算和Y尽量相等,接近,1stopt算的非常接近,这么说是我的目标函数设定的问题了?
再答: 没看出你哪写了尽量相等了 你的目标函数是这个吗