2012-03-05 24 views
0

私は決定的なモデルを持っており、結果がどのように影響を受けるかを見るために、2つのパラメータVar1Var2を変更するたびにモデルを何度でも実行したいと思います。 私はこのように私のモデルをまとめることができます。x、yは変数でありGAMSのループ内にループを書き込む方法

... 
equations obj,a,b; 

obj... Ax+By=e=cost; 
a... x+y=l=var1 * z1; 
b... x+y=l=var2 * z2; 

solve; 
dispaly cost.l; 
dispaly y.l; 
dispaly x.l; 

、VAR1、Z1、VAR2、及びZ2はパラメータです。私はvar1とvar2の10の異なる値のための10の異なる値を試してみたいと、結果があります。

どうすればよいですか?教えてください。

答えて

0

hereループステートメントの使用方法を確認できます。

あなたの場合、10個の値と2個のパラメータvar1_values(i)、var2_values(i)のセットiを定義する必要があります。あなたのループでは

あなたは

var1 = var1_values(i); 
var2 = var2_values(i); 
solve; 
*you can also store values to new parameters 
display cost.l; 
display y.l; 
display x.l; 

ではなく、数式を含める必要があります。あなたはおそらくsolve文からの情報を意図的に省略しましたが、解決するモデルと、変数(この場合はおそらくobj)を最小化または最大化するかどうかを指定する必要があります。これを指定しないと、GAMSはあなたのモデルで一意ではない実現可能な解を見つけます。

関連する問題