用lingo求一个矩阵和位置矩阵乘积的最大值
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/27 17:23:28
定义一个派生集link如下,其中x即可表示为一个矩阵sets:r/1..5/:;c/1..5/:;h/1..5/:;link(r,c,h):x;endsets
可以用多个for循环解决另外可以下载数据使用
你换个技能和研究一体机
用lingo还更简单…model:sets:myset/1..2/;link(myset,myset):a,就可以了呀,这样要求这两个矩阵相同的行和列.对于MATLAB,应该将两
@sum(links:a);
找最大元素就是max(max(A)),注意二维矩阵要写两个max找对应位置用find函数举个例子:>>A=[123;456]A=123456>>max(max(A))ans=6>>[xy]=find(
你不要用max就行了>>A=magic(3);>>[my_max,rows]=max(A(:,3))my_max=7rows=2
sets:e/1..11/;matrix1(e,e):a;endsets@for(matrix1:@bin(a));@for(e(i):@sum(e(j):a(i,j))>0);自己看好派生集怎么定义
需要用@writefor函数可以看下面的例子model:sets:s/1..2/:;l(s,s):x;endsetsdata:x=1234;@text('d:\out.txt')=@writefor(
数据量过大,可以利用@ole函数将数据导入lingo,具体操作可找书看看.
你这句写的没问题啊就这样@for(roads(i,j):rd(i,j)=rd(j,i));
@mod(x,5)=0;可能需要lingo10以上版本也可以再定义一个yx=5*y;@gin(y);这个用起来比较方便所有版本应该都可以
实际上lingo自带的sample里面就有TSP问题MODEL:!TravelingSalesmanProblemforthecitiesofAtlanta,Chicago,Cincinnati,Ho
求volume(1,1)+volume(2,1)+...+volume(20,1)吗?加如下的语句在主程序中就可以了,用求和的语句:@for(supplyment(I):s=@sum(receiver
应该是取出第四行的第三个元素吧,直接用cost(4,3)即可
@sum(man(i)|i#GE#n#AND#i#LE#m:x(i,1));
@SMAX(X1,X2,...,XN)ReturnsthemaximumvalueofX1,X2,...,andXN.用法错误.
model:sets:myset/1..3/:y;link(myset,myset):x;endsetsdata:x=123456789;enddata@for(myset(i):y(i)=@min(
lingo里边不能直接相乘要用到集的概念