请有人帮我解决这个问题。我想逐一添加到i并在每一步中将x(i)的数量等于1,所以我写了如下但是它不起作用
loop(i,
x('0')=1;
t('0')=1;
while(t>m,
ord(i)=ord(i)+1;
display i;
x(i)=1;
display x;
t(i)=t(i-1) +1;
);
);
顺便说一句,m是一个在此之前计算的变量,在一个等式中。
答案 0 :(得分:0)
请查看此page,以便更好地了解如何在GAMS中制作 while循环。另请查看此代码,因为它可能会对您有所帮助:
root=minroot;
*find a sign switch
while(signswitch=0 and root le maxroot,
root=root+inc;
function_value2= a-b*root+c*sqr(root);
if((sign(function_value1) ne sign(function_value2)
and abs(function_value1) gt 0
and abs(function_value2) gt tolerance),
maxroot=root;
signswitch=1
else
if(abs(function_value2) gt tolerance,
function_value1=function_value2;
minroot=root;);
);
* display 'inside',minroot,maxroot,function_value1,function_value2;
);
答案 1 :(得分:0)
如果m
是之前解决的模型中的变量,则应使用.l
属性检查其级别:
...
while(t>m.l,
...