【问题标题】:summation with index " i " and "i+1" in GAMSGAMS 中索引“i”和“i+1”的求和
【发布时间】:2018-07-04 15:07:27
【问题描述】:

我不知道如何在 GAMS 中编码这个总和,因为它的索引与差异为一。

我的意思是我有索引 ii+1。这个总和必须计算 `for i = 1,..,54;

i,j 是集合,a(i),b(i),c 是参数,x,y 是变量

sum(j, a(i)*x(i,j))-b(i)*y(i)+ c * (sum(j, a(i+1)*x(i+1,j))-b(i+1)*y(i)) <= 136

换句话说,我想拥有

 sum(j, a(1)*x(1,j))-b(1)*y(1)+ c * (sum(j, a(2)*x(2,j))-b(2)*y(2) )<= 136

 sum(j, a(3)*x(3,j))-b(3)*y(3)+ c * (sum(j, a(4)*x(4,j))-b(4)*y(4) )<= 136
 .
 .
 .


 sum(j, a(53)*x(53,j))-b(53)*y(53)+ c * (sum(j, a(54)*x(54,j))-b(54)*y(54) )<= 136

【问题讨论】:

    标签: gams-math


    【解决方案1】:

    这个怎么样?

    eq1(i)$mod(ord(i),2).. sum(j, a(i)*x(i,j))-b(i)*y(i)+ c * (sum(j, a(i+1)*x(i+1,j))-b(i+1)*y(i)) =L= 136;
    

    【讨论】:

    • 这不是真的,因为我不想 sum(j, a(1)*x(i,j))-b(1)*y(1)+ c * (sum (j, a(2)*x(2,j))-b(2)*y(2)) =L= 136;与 sum(j, a(2)*x(i,j))-b(2)*y(2)+ c * (sum(j, a(3)*x(3,j))-b( 3)*y(3))=L=136; …………等等
    • 我想要 sum(j, a(1)*x(1,j))-b(1)*y(1)+ c * (sum(j, a(2) *x(2,j))-b(2)*y(2) )
    • 所以你想每秒跳过一次吗?我相应地编辑了我的答案(注意开头的 $ 条件)。
    • 部分" c * (sum(j, a(i+1)*x(i+1,j))-b(i+1)*y(i)) =L= 136 " 我们必须写 " y(i+1) " 对吗?
    • 感谢您的帮助,我在您的代码中得到了答案;-)
    猜你喜欢
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 2020-05-24
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多