谁能帮我解决这个问题。我想一个一个地添加到 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 是一个在此之前计算的变量,在一个方程中。
谁能帮我解决这个问题。我想一个一个地添加到 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 是一个在此之前计算的变量,在一个方程中。
如果m
是之前求解的模型中的变量,则应使用.l
属性检查其级别:
...
while(t>m.l,
...
查看此页面以更好地了解如何在 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;
);