【问题标题】:abs and mpvar^integer error in Xpress moselXpress mosel 中的 abs 和 mpvar^integer 错误
【发布时间】:2020-08-25 13:41:21
【问题描述】:

这是我的代码:

这是代码的错误声明。

我该如何解决这些错误?

【问题讨论】:

  • 没有附加图片。但我怀疑您将您的术语定义为 linctr 的,但您使用的是非线性评估。您应该使用 nlctr,并尝试解决非线性问题。

标签: mosel


【解决方案1】:

abs() 的默认实现只接受数字。为了使abs() 用于表达式,您必须包含mmxnlp 模块。这在文档here 中有解释。

请注意,这会将您的约束类型从 linctr 更改为 nlctr,因此您也必须在代码中进行更改。

最后,不支持严格的不等式。相反,> 被解释为布尔运算符。对于约束,您必须>=。如果您确实需要表达式不为零,那么除了使用 epsilon 之外别无选择:将 > 0 替换为 >= eps 以获得少量 eps

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多