lingo如何输入公式和矩阵
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/06 07:13:57
@sum()
定义一个派生集link如下,其中x即可表示为一个矩阵sets:r/1..5/:;c/1..5/:;h/1..5/:;link(r,c,h):x;endsets
求和的地方写的没问题但是你集定义有问题集名和下标不要用一样的名字
平方可以用^2或者@sqr()函数表示,根号可以用^1/2或者@sqrt()函数表示…
可以用多个for循环解决另外可以下载数据使用
用x=sym('x')生成符号对象,如c1=sym('c1'),Matlab中矩阵带下标元素可写成c1,s1,d1...等.
你输入数据个数跟定义不符合应该怎么写没法知道你把你写的发上来
不知道你这样做的目的是什么单算这个用lingo没什么意义sets:num/1..100/:n;endsetsy=5*@sum(num(i):i)+1;
这个最简单了啊A=[12;34]这就行了再问:G1=000001383100000-1-3-8-3-100000这个怎么输入呀再答:G1=[00000;13831;00000;-1-3-8-3-1;0
@for(links(i,j):@bin(volume(i,j)));
你那是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+
lingo有集你把矩阵当成一个集里面的元素做就行了随便找个教程看看吧不是一句话就能说清楚的事
@sum(links:a);
model:sets:s/1..16/:a,l;ss(s,s):x,x0;endsetsdata:!必须写;x0=;a=;l=;enddatacalc:@for(ss:@ifc(x0#eq#0:x=0
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)
数据量过大,可以利用@ole函数将数据导入lingo,具体操作可找书看看.
举例说明对a矩阵:@for(a(i,j):@bin(a(i,j));
实际上lingo自带的sample里面就有TSP问题MODEL:!TravelingSalesmanProblemforthecitiesofAtlanta,Chicago,Cincinnati,Ho
那只是变量名你随意输入即可只要符合基本命名规则就行比如0.8*x11+0.8*x12
@sum(man(i)|i#GE#n#AND#i#LE#m:x(i,1));