问题描述
在MATLAB中,如果我有两个向量a=[a_1,..,a_n],b=[b_1,b_n]
,则可以通过c = [a_1/b_1,a_n/b_n]
获得另一个向量a./b
。如何在AMPL中实现这一目标?
解决方法
您可以使用类似这样的内容:
set S := {1,2,3};
param p{S};
var x{S};
var y{i in S} = x[i]*p[i];
或替代:
set S := {1,3};
param p{S};
var x{S};
var y{S};
s.t. c1{i in S}: y[i] = x[i]*p[i];
但是,您执行此操作的能力可能会受到求解器支持的约束的限制,例如如果您在使用非线性求解器时定义了暗示非线性约束的关系。