Lingo带约束的目标函数优化,如何对式子中的参数循环赋值并输出结果?

目前的程序如下:
min=y;
y=p*p*(2*n1*x1+2*t1-2*x1*n1*n1)+2*p*(1-p)*(n2*(x1+x2)+2*t2-(x1+x2)*n2*n2)+(1-p)*(1-p)*(2*n3*x2+2*t3-2*x2*n3*n3);
@free(y);
p*(n1*x1+t1-(@pow(2,n1)-1)*x1)+(1-p)*(n2*x1+t2-(@pow(2,n2)-1)*x1)>=p*(n2*x2+t2-(@pow(2,n2)-1)*x1)+(1-p)*(n3*x2+t3-(@pow(2,n3)-1)*x1);
p*(n2*x2+t2-(@pow(2,n2)-1)*x2)+(1-p)*(n3*x2+t3-(@pow(2,n3)-1)*x2)>=p*(n1*x1+t1-(@pow(2,n1)-1)*x2)+(1-p)*(n2*x1+t2-(@pow(2,n2)-1)*x2);
p*(n1*x1+t1-(@pow(2,n1)-1)*x1)+(1-p)*(n2*x1+t2-(@pow(2,n2)-1)*x1)>=0;
p*(n2*x2+t2-(@pow(2,n2)-1)*x2)+(1-p)*(n3*x2+t3-(@pow(2,n3)-1)*x2)>=0;
(@pow(2,n2)-1)/(@pow(2,2*n2)-@pow(2,n2))<=x2/x1;
x1=84;
x2=35;
p=0.7;
n1>=1;
n2>=1;
n3>=1;
@free(t1);
@free(t2);
@free(t3);
@gin(n1);
@gin(n2);
@gin(n3);

而我希望x1和x2的取值在1到100循环,p在0.1到0.9循环,每组都输出一个目标函数最优解,应该怎么修改程序?



你好,答案如下所示。

没明白你的意思,Lingo它会自动变换x1,x2,p的取值,自动求得最优解

希望你能够详细查看。

如果你有不会的,你可以提问

我有时间就会帮你解答。
希望你好好学习。
每一天都过得充实。

追问

你好,我的意思是x1=1的时候算一个最优解,x1=2的时候也要算一个,这样一直到x1=100,x2也是一样,想请问要怎么修改呢?

追答

我记得有个calc段,具体怎么用的忘了,你网上搜一下。好像可以完成遍历

可以共享一下吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-06
我也遇到了同样的问题,想把a的取值在0到10循环,请问您是怎么修改的呢
相似回答