lingo帮忙指点!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:43:49
model:
!问题;
sets:
number1/1..10/;
number2/1..7/;
piandao/d1..d7/:d;
fangan(number1,number2):ss;
link(number2):x;
endsets
!约束;
@for(number1(i):10^5*(174.42*(x(1)/x(5))*(x(3)/(x(2)-x(1)))^0.85*((1-2.62*(1-0.36*(x(4)/x(2))^(-0.56))^1.5*(x(4)/x(2))^1.16)/x(6)/x(7))^0.5-150)^2+10^5/9*@sum(number2(j):(d(j)*x(j)*ss(i,j))^2)>=z);
@bnd(0.075 x(1) 0.125);@bnd(0.225 x(2)0.375);@bnd(0.075 x(3) 0.125);@bnd(0.075 x(4) 0.125);@bnd(1.125 x(5)1.875);@bnd(12 x(6) 20);@bnd(0.5625 x(7)0.935);
!目标函数;
max=z;
!数据;
data:
d=24.589646992129975 -5.991056888901401 14.667508732147704 -4.028092431517355 -1.150392841737075 -0.053924664456425 -1.150392841737075;
ss=0.050000000000000 0.010000000000000 0.010000000000000 0.010000000000000 0.010000000000000 0.010000000000000 0.050000000000000
0.050000000000000 0.010000000000000 0.010000000000000 0.010000000000000 0.010000000000000 0.01000000000000

首先:lingo并不是所有的规划都能算出的。你这个规划是NIP的(非线性的)对于lingo计算非线性规划的答案一般不一,而且误差比较大。有时候他会算不出,有时候又可以算出。这样你的答案一般不能用。我建议你把他改为线性规划的式子,(利用代换如t=x(3)/(x(2)...)再进行编程,然后设置为全局求解即可。但是我看你这式子要改为线性的挺困难,我提出两点建议:如果你的是正版lingo软件那么最好在每次计算后进行灵敏度分析。然后用协方差最小的那个结果。
我眼睛都看花了,分该给我了吧。

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000