lingo中怎么用@for表示一个一维数组的和大于一个数
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/12 15:07:50
a=@if(条件,正确时的值,错误时的值);随便找个lingo教程都会有详细的介绍的
规划问题中大于就是大于等于因为最优值一定取在边界上@bnd(0,a,1);或者a
@FOR(product(J):SUM(WORKER(I):X(I,J))=@if(W(J)#gt#0,1,SUM(WORKER(I):X(I,J)));这样试试
@bin(x),01约束.
如果有积分,lingo是处理不了的.建议到matlab工具箱中运行求解吧,积分可以利用数值积分的方法.
如果前面集合定义没错的话,那么这句也没错.建议把全部代码贴出来看看,lingo报错行数不一定准确,有时错误会在报错的上一行.
@sum()
@if(条件,正确返回值,错误返回值);@for(fuwupingtai(i):@sum(links(i,j):x(i,j)))=@if(@for(links(i,j)|i#eq#j:x(i,j)=0
c=@if(x#eq#0,0.1*Q,1+0.5*X+0.1*Q);再问:Model:Title;Sets:yuefen/1..4/:c,x,e,d,s;endsetsdata:c=5555;d=40
最后自己看下教程,集的概念和sum,for函数,以下仅是部分情况示例sets:r/1..5/:x;c/1..5/:;link(r,c):y;endsetss1=@sum(r:x);s2=@sum(li
你写错了吧应该是|x1-x2|=5@abs(x1-x2)=5;
sets:r/1..8/:d;c/1..8/:;link(r,c):x,y;endsets@for(r(i):@for(c(j):x(i,j)
@ACOS(X)Returnstheinversecosine,orarccosine,ofX,whereXisanangleinradians.@ACOSH(X)Returnstheinverseh
你这句写的没问题啊就这样@for(roads(i,j):rd(i,j)=rd(j,i));
@mod(x,5)=0;可能需要lingo10以上版本也可以再定义一个yx=5*y;@gin(y);这个用起来比较方便所有版本应该都可以
data:enddata
使用循环语句@for(AZ(i,j):t(i,j)=k(j,i));互换i,j位置,即置换.例子:MODEL:sets:row/1..5/;col/1..5/;AZ(row,col):k,t;ends
@gin(x)整数@bin(x)整数0或1@free(x)取消x非负限制,即可取所有实数因为lingo中的数是默认非负的@bnd(m,x,l)x是属于m=
@free(x1);x1
@for()