我有一个 GAMS 代码,我想要一个 if 语句。我已经阅读了有关美元状况的信息,我认为它可以帮助我。阅读GAMS 用户指南,它说:
美元条件
本节介绍美元运算符,它是 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
')' 预期的
请问,有人可以帮忙吗?
提前致谢!!