作业帮 > 数学 > 作业

lingo里没有向量的概念,只有集合的概念.那怎么样才能利用集合进行类似于向量的计算呢?

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/06/13 07:38:21
lingo里没有向量的概念,只有集合的概念.那怎么样才能利用集合进行类似于向量的计算呢?
比如
a1=4 4 0 0 0 0 0 0 0 0;
a2=0 4 4 0 0 0 0 0 0 0;
a3=0 0 4 4 0 0 0 0 0 0;
a4=0 0 0 4 4 0 0 0 0 0;
b1=5 5 5 0 0 0 0 0 0 0;
c1=0 0 0 2 2 2 0 0 0 0;
d1=0 0 0 3 3 0 0 0 0 0;
d2=0 0 0 0 3 3 0 0 0 0;
e1=0 0 0 0 0 0 3 3 3 3;
我要算如何选取a1,..a4中的一个以及d1,d2中的一个,使得选取出来的a,b,c,d,e中,组成的矩阵中,各列求和,获得一个向量,该向量中的元素的极差最小.
lingo里没有向量的概念,只有集合的概念.那怎么样才能利用集合进行类似于向量的计算呢?
按定义去做啊 你这里面涉及到的无法就是个求和取最大值最小值之类的 lingo完全有这种函数 所以表达出来不难
不过这个问题也不是线性规划 能不用lingo最好不用
再问: 我不知道这种函数、、、求解答。这部分我这样写的,不能运行,不知道能不能给集合中的元素赋含变量的值。。。 @min= maxp-minp; @bin(y1,y2,y3,y4,z1,z2); y1+y2+y3+y4=1; z1+z2=1; @for(link(i,i,i,i,i): x(i,i,i,i,i)=y1*a1+y2*a2+y3*a3+y4*a4+b1+c1+z1*d1+z2*d2+e1;); maxp=@max(link(i,i,i,i,i) | i #le# 10: x); minp=@min(link(i,i,i,i,i) | i #le# 10: x); end
再答: 你不用lingo做行不行 直接用matlab或者c编个程序不好吗 反正你lingo基本上也不怎么会
再问: ....是这样的,我们一门学这个的课,老师让我们自拟一个题用lingo做,然后我就找了这个,,,
再答: 那你还是换个题吧 这个本身用lingo做就不是特别好 你最好找个线性规划的例子做一下
再问: 那些太普通了呀。而且上课讲了一些例题,找到的很多都和例题基本一样。。我也找不到合适的,你推荐一个?
再答: 基本一样就行啊 普通点也比不合适强多了吧
再问: 那我说的这个虽然不太好,但总可以解决吧。。。如果非要用lingo,到底该怎么写。。。我现在去找找其他的。。
再答: 解决应该是可以的 但是你用lingo算还不如最直接的把各种情况列出来求一下 你说这样就算做出来有什么一样
再问: 是这样的,刚好我们在上另外一门课,叫项目管理,里面在项目资源管理那章就有这类问题,那个是求安排工序使得资源需求波动最小,当然那个数字比这个复杂,那个是笔算的。然后我就想到lingo不是要我们找题嘛,我就想到了这题,先把他简化了成了上面这题。
再答: 我已经说了你这个问题用lingo算没意义 非要用lingo的话这样写 不负责以后的任何事 model: sets: s1/1..10/:b,c,e,t; s2/1..4/:y; s3/1..2/:z; m1(s2,s1):a; m2(s3,s1):d; endsets data: a=4 4 0 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0; b=5 5 5 0 0 0 0 0 0 0; c=0 0 0 2 2 2 0 0 0 0; d=0 0 0 3 3 0 0 0 0 0 0 0 0 0 3 3 0 0 0 0; e=0 0 0 0 0 0 3 3 3 3; enddata min=@max(s1:t)-@min(s1:t); @sum(s2:y)=1; @sum(s3:z)=1; @for(s2:@bin(y)); @for(s3:@bin(z)); @for(s1(i):t(i)=@sum(s2(j):a(j,i)*y(j))+b(i)+c(i)+@sum(s3(k):d(k,i)+z(k))+e(i)); end