lingo报错这句@for(qiye(i) | i >= 1 && i <= 27 : l(i) = 640.944423*(n(i)^3) - 258.570451*(n(i)^2) + 37.969520*n(i) - 1.121484);
时间: 2023-10-31 08:05:28 浏览: 93
在您提供的代码中,Lingo报错的原因可能是由于在@for循环的语法中使用了不支持的操作符“|”和“:”。请尝试使用标准的逻辑操作符“&&”和冒号“:”来修正这个问题。修正后的代码如下所示:
```
@for(qiye(i) : i >= 1 && i <= 27 : l(i) = 640.944423*(n(i)^3) - 258.570451*(n(i)^2) + 37.969520*n(i) - 1.121484);
```
这样,代码中的@for循环将根据企业编号从1到27进行迭代,并为每个企业计算并赋值约束条件中的l(i)值。
请注意,具体的修正需要根据您的问题和数据进行调整。建议确保使用正确的语法和操作符,并根据Lingo的文档和要求进行编码。
相关问题
lingo报错这句@for(qiye(i) : i >= 1 && i <= 27 : l(i) = 640.944423*(n(i)^3) - 258.570451*(n(i)^2) + 37.969520*n(i) - 1.121484);
在您提供的代码中,@for 循环的语法存在一些问题。Lingo报错的原因可能是由于在 @for 循环中使用了不正确的语法形式。请尝试使用正确的语法形式来修正这个问题。修正后的代码如下所示:
```
@for(qiye(i) : i >= 1 && i <= 27 do l(i) = 640.944423*(n(i)^3) - 258.570451*(n(i)^2) + 37.969520*n(i) - 1.121484);
```
在修正后的代码中,我将冒号 ":" 替换为 "do",以使 @for 循环的语法正确。这样,代码中的 @for 循环将根据企业编号从 1 到 27 进行迭代,并为每个企业计算并赋值约束条件中的 l(i) 值。
请注意,具体的修正需要根据您的问题和数据进行调整。建议确保使用正确的语法和操作符,并根据 Lingo 的文档和要求进行编码。
Constraint2(I): (I >= 2 AND I <= 10) -> Y(I) = 1将这个约束条件用lingo语言写出
LINGO语言不直接支持在约束条件中使用逻辑运算符和条件表达式的语法,但是可以通过一些技巧来实现类似的效果。以下是一个示例代码,使用LINGO的条件表达式来表示约束条件:
```
SETS:
I = 1..20
BINARY VARIABLES:
Y(I)
EQUATIONS:
Constraint1(I): Y(I) <= 1
EQUATIONS:
Constraint2(I): Y(I) >= (I >= 2 AND I <= 10)*(Y(I) - 1) + 1
```
在上述代码中,我们定义了一个集合I和二进制变量Y。然后,我们添加了一个条件约束条件Constraint1,要求Y的值小于等于1。接下来,我们使用条件表达式`(I >= 2 AND I <= 10)*(Y(I) - 1) + 1`来定义约束条件Constraint2。当I在2到10之间时,条件表达式的结果为1,从而要求Y(I)的值等于1;否则,条件表达式的结果为0,约束条件被忽略。
请注意,上述代码中的集合范围、变量和约束条件的具体名称应根据实际问题进行调整。
阅读全文