LINGO中输入矩阵,错误29
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/03 10:20:07
@sum()
定义一个派生集link如下,其中x即可表示为一个矩阵sets:r/1..5/:;c/1..5/:;h/1..5/:;link(r,c,h):x;endsets
平方可以用^2或者@sqr()函数表示,根号可以用^1/2或者@sqrt()函数表示…
x(1:10)=1:10%元素值等于下标值i=1:10x(i)=2*i+1%线性关系%其他的发挥你的想象力
可以用多个for循环解决另外可以下载数据使用
你输入数据个数跟定义不符合应该怎么写没法知道你把你写的发上来
不知道你这样做的目的是什么单算这个用lingo没什么意义sets:num/1..100/:n;endsetsy=5*@sum(num(i):i)+1;
你那是lindo语法不要跟lingo语法混用min=100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;x1+x2+y1>=4;x1+x2+y1+y2>=3;x1+
具体写出来行不行很可能是你这里面有负的当然就不行了再问:您看看补充的式子再答:你那个min(y^2)就不对啊你自己看看相关资料有这么写的吗都是写min=这种的再问:加上也不行啊再答:什么叫加上也不行我
@sum(links:a);
如下程序表示y1的x的前五项和,y2表示x的后五项和.sets:r/1..10/:x;endsetsy1=@sum(r(i)|i#le#5:x(i));y2=@sum(r(i)|i#gt#5:x(i)
sets:si/1..6/:a,b;sj/1..2/:x,y;endsetsmin=@sum(sj(j):@sum(si(i):x(j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i)
wplus的个数不对啊应该是9个你的多了好几个
首先你要定义集lingo里面输入这种东西没有标准格式的就是20个数中间用空格或者逗号隔开排序是按最简单的升序排列1,11,21,3.2,12,1.这样的几行几列都不重要为了好看一般都写成5行4列分号只
数据量过大,可以利用@ole函数将数据导入lingo,具体操作可找书看看.
实际上lingo自带的sample里面就有TSP问题MODEL:!TravelingSalesmanProblemforthecitiesofAtlanta,Chicago,Cincinnati,Ho
使用循环语句@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
@sum(man(i)|i#GE#n#AND#i#LE#m:x(i,1));
首先要做一个派生集sets:a/1..5/:;b/1..6/:;ab(a,b):x;endsets然后@sum(ab:x)就表示累加了比如@sum(ab:x)
当然是可以写的了但是需要用集操作函数最好写具体问题我给你写出来