【发布时间】:2022-01-14 15:34:53
【问题描述】:
我正在求解 GAMS 中的一个模型,它是一个大型模型,称为“利润”,但我希望在其中更改特定参数,称为 alpha(j),其中 alpha 表示在不同值上定义的参数一个集合 `j',然后看看关键变量的结果如何随它变化。
调用循环索引'i',我希望通过将alpha(j)每次增加0.05来运行模型,从全向量alpha(j)的初始值开始,然后看看变量X如何和 Y 变化:
Set i / 1*20/ ;
*上面我将index设置为1到20,然后第一次迭代的alpha初始值为0。
*然后我写循环
loop(i, alpha(j,i+1) =alpha(j)+0.05
solve mymodel using lp maximizing profit;
);
*然后我希望将结果写入 excel GDX 文件。
*基线
execute_unload "resultsloop.gdx"
X Y ;
execute 'gdxxrw.exe resultsloop.gdx var=XXX rng=XXX !a1'
execute 'gdxxrw.exe resultsloop.gdx var=X.L rng=X!a1'
execute 'gdxxrw.exe resultsloop.gdx var=Y.L rng=Y!a1'
;
这有两个问题-一个是我有的,另一个是我可以预见的。
-
第一个问题是我收到一个错误“维度不同 - 符号被声明的更多/更少索引引用”。我不确定如何解决这个问题。
-
第二个问题(我可以预见)是 Excel 结果的编写。理想情况下,我希望每个变量的结果按循环数堆叠在一列中。按照目前的情况,我只会得到一个 excel 文件,只有与循环结束相对应的结果。
非常感谢任何帮助!
【问题讨论】:
标签: gams-math