【问题标题】:Use variable in GAMS dollar在 GAMS 美元中使用变量
【发布时间】:2016-06-16 14:01:01
【问题描述】:

我有一个 GAMS 代码,我想要一个 if 语句。我读过有关美元状况的文章,我认为它可以帮助我。阅读GAMS user guide,它说:

美元状况

本节介绍美元运算符,它是 GAMS 最强大的功能之一。美元运算符以逻辑条件运行。术语 $(condition) 可以读作“使得条件有效”,其中条件是逻辑条件。

注意: 美元逻辑条件不能包含变量。但是,允许使用可变属性(如 .l 和 .m)。

美元运算符用于对条件赋值、表达式和方程式进行建模。以下小节提供了一个示例,将阐明其用法。下一节将分别讨论使用美元条件对条件赋值、表达式和方程进行建模的主题。

我已经在我的代码中尝试过,但我仍然发现总是同样的错误:

*** C:\route\Filename.gms 中的错误 53

不允许内生$操作

这是我的实际代码:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t) GE GT(k,l)) =E= 0 ;

(如果变量大于或等于另一个变量,我想将其值更改为 0)。我也尝试过 .l 属性:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t).l GE GT(k,l).l) =E= 0 ;

但随后出现下一个错误(仅在 .l 定义中)

*** C:\route\Filename.gms 中的错误 8

')' 预期

请问,有人可以帮忙吗?

提前致谢!!

【问题讨论】:

    标签: gams-math


    【解决方案1】:

    我看到我之前的代码不正确,正确的做法是:

    ACUMULADO_FIN_GRUPOS(k,l,t)..
    
    GA(k,l,t)$(GA.l(k,l,t) GE GT.l(k,l)) =E= 0 ;
    

    使用.l 之前的设置定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-22
      • 2018-08-25
      • 2015-12-30
      • 2018-02-19
      • 1970-01-01
      • 2013-04-01
      • 2021-10-26
      相关资源
      最近更新 更多