GAMS

作者: Cinga01 | 来源:发表于2020-09-13 17:04 被阅读0次

    验证模型正确性

    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

    相关文章

      网友评论

          本文标题:GAMS

          本文链接:https://www.haomeiwen.com/subject/cnvlektx.html