GAMS

2020-09-13  本文已影响0人  Cinga01

验证模型正确性

  1. 运算求解唯一:出现 "optimal solution"


    唯一解
  2. 方程数=变量数

    这里有7个变量被设置为固定外生,所以实际内生变量是107个
  3. 模型一致性检验:1)模型求解值与处置室相等。2)WALRAS.l=0 。
  4. 模型齐次性检验:基准价格变化n倍,所有价格变化n倍,数量不变。(一般是新古典主义闭合符合货币中性)

循环语句

//执行10次循环,taum(i)每次减少1%
Set t /1*10/;
Loop(t,taum(i)=0.1-0.1*ord(t)/card(t);  //ord(t)表示索引t在集合中的序号,card(t)表示集合中元素的个数
Solve stdcge maximizing UU using nlp;
);

excel数据导入到gam
参考博客

#注意文件名如果加路径,必须是project所在目录
$CALL GDXXRW.EXE 文件名.xls output=文件名.gdx input=文件名.xlsx par=参数名  rng=excel导入范围(例如:a1:d3)
parameter 参数名(i,j);
$GDXIN 文件名.gdx
$LOAD 参数名
$GDXIN

gams数据导出到excel

execute_unload '文件名.gdx' 变量名;
execute 'gdxxrw.exe 文件名.gdx o=文件名.xlsx var=变量名 rng=a1'

幂次方运算,底数不能为非正数

#当x<=0时,报错:rPower:FUNC DOMAIN:x**y,x<0
#意思是x<=0时,GAMS对x的y次方的定义是UNDF
x**y  
#可以用power指令代替
power(x,y)

不为0的条件

QQFOC(c)$sam('row',c)..     
PD(c)/PM(c)=e=(deltaQq(c)/(1-deltaQq(c)))*(QM(c)/QD(c))**(1-rhoQq(c)); 

PQPDCNoImportfn(c)$(sam('row',c)=0)..
PQ(c)=e=PD(c);

常见错误:
Set is under control already:
一般是在sum中使用了同一个变量,比如sax(a,c)=sam(a,c)/sum(a,sam(a,c)) 将sum中的a改为ap即可

Uncontrolled set entered as constant

上一篇 下一篇

猜你喜欢

热点阅读