经济学家

 找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 2518|回复: 3

求教gams问题(之前的两个贴由于直接复制过来很糟糕现在重发)

[复制链接]
发表于 2014-3-13 10:18 | 显示全部楼层 |阅读模式
10金币
这是我最近用gams语言编写的一个程序,但是运行后总是提示程序中有重复定义(指针指向程序中红色的部分),我很是不解,还请高人指点,帮忙看看程序中哪里有问题该怎么修改?
$title 灾害损失的CGE模型
set acnt /sec1,sec2,lab,finance,hib,co,gov,fixedcap,store,other/

set i /agr,indus,build,tran,trade,otherdep/;

alias (acnt,acntp);
alias (i,j);

table sam(acnt,acntp)
              sec1         sec2              lab               finance        hib
sec1                       30339.954                                          7277.207
sec2       45621.658
lab                         6919.966
finance                   4996.364
hib                                             6718.528     8.989
co                                                                 4841.931
gov                        2037.338                                           324.572
fixedcap                                                                           637.829
store
other      15128.153

+             co               gov                fixedcap       store             other
sec1                           1422.385       5164.914     732.719        13013.714
sec2
lab
finance
hib           468.817      1290.317
co
gov          942.09
fixedcap   3290.076    495.119                                                  1674.061
store                                               754.687
other
;

* 定义参数和外生变量
parameters
alpha(i)       i部门增加值中劳动投入份额
A0(i)           i部门生产函数规模效率参数
delta(i)        i部门固定资产折旧率
a0(i,j)          i部门对j部门投入的直接消耗系数

gama(i)       居民对i部门的产品的消费份额
betaG(i)       ZFi部门产品的消费份额
betaI(i)        i部门固定资产占总投资的份额
kc(i)            i部门存货增加占总产出的比重
te(i)            i部门产品出口补贴率
tm(i)           i部门产品进口关税率
t(i)              i部门产品征收的间接税率
tax             居民个人所得税
etax           企业直接税率
mph           居民边际储蓄率
phi(i)           i部门总消费CES规模系数
lambda(i)     i部门总消费的CES进口份额参数
eption(i)       i部门进口商品与国产品间的替代弹性参数
sigma(i)        i部门进口商品与国产品间的转换弹性参数
mu(i)            i部门出口品规模参数
eta(i)            i部门出口价格弹性
r(i)               i部门资本租金率
w(i)              i部门工资率
aagr            农业与灾害冲击有关的参数
atran           交通业与灾害冲击有关的参数
Gtot            ZF消费的总量
Itot             总固定资产投资
L0(i)            基年i部门劳动力投入
K0(i)            基年i部门资本存量
ETP             企业对居民的利润分配
CPG             中央ZF对地方ZF的转移支付
GTP             地方ZF对居民的转移支付
REMIT          国外资本流入
ER               汇率
dloss            农业直接经济损失
agrtot          农业总产值
tranloss        交通业部门修复损失
trantot         运输邮电业总产值
X0(i,j)           基年农业部门对j部门的投入

C0(i)             基年居民对i部门的消费
CG0(i)           基年ZFi部门的消费
ST0(i)           基年i部门存货增加
Q0(i)            基年i部门商品总使用
M0(i)            基年i部门的进口
E0(i)            基年i部门的出口
PWE(i)         i部门出口商品的世界价格
PWM(i)        i部门进口商品的世界价格
;
*参数表
table secdal(i,*)
                alpha         A0          delta         gama      betaG      betaI        kc
agr           0.693        8.25      0.0004       0.86       0.14        0.001      0.172
indus        0.444        4.05      0.0015       1            0             0.042      0.041
build         0.784        19.15    0.0241       1            0             0.758      0.000
tran          0.561        3.11      0.0012       1            0             0.004      0.009
trade        0.528        12.44    0.0034       1            0             0.019      0.018
otherdep  0.623        21.37    0.0005       0.36       0.64        0.110      0.000

+              tm             t             phi          lambda    eption     sigma      mu
agr           0.166        0.003     1.440      0.615       4            0.2          0.139
indus        0.128        0.041     1.278      0.275       0.767     0.566      0.483
build         0.000        0.058     1.416      0.059       0.75       0.571      0.000
tran          0.000        0.024     1.544      0.473       2            0.333      0.113
trade        0.000        0.115     3.865      0.069       2            0.333      0.391
otherdep  0.008        0.040     3.859      0.072       2            0.333      0.063

+              eta            r             w            PWE       PWM       L0           K0
agr           2.44         0.203      0.261      1.000     1.000     3.1562     513.902
indus        3.223       1.367      0.067      1.000     1.000     108.384    2963.819
build         3              31.2        0.109      1.000     1.000     35.764     23.3134
tran          3             0.295       0.137      1.000     1.000     47.785     1693.9024
trade        3             7.327       0.182      1.000     1.000     76.638     452.8264
otherdep  3            0.542        0.211      1.000     1.000     31.593     20009.171

+              te              C0                CG0             ST0           Q0                     M0              E0
agr           0.027        334.0599      52.251        56.503       500.843           201.846       57.365
indus        0.065       1618.977       0                 585.602     11750.671       3969.693     1686.272
build         0.000       70.767           0                  0               3644.881         185.569       399.931
tran          0.000       96.851           0                 24.469       715.0685        1249.235      410.128
trade        0.000       549.7296       0                 88.319       2391.838        331.016        242.047
otherdep  0.000       1978.528       3206.590    -0.205        14941.784      1456.190      2016.3498
;
*直接消耗系数表
table aaa(i,j)
                 agr        indus      build        tran        trade     otherdep
agr            0.172    0.009     0.002      0.000     0.008     0.003
这是我最近用gams语言编写的一个程序,但是运行后总是提示程序中有重复定义(指针指向程序中红色的部分),我很是不解,还请高人指点,帮忙看看程序中哪里有问题该怎么修改?
$title 灾害损失的CGE模型
set acnt /sec1,sec2,lab,finance,hib,co,gov,fixedcap,store,other/

set i /agr,indus,build,tran,trade,otherdep/;

alias (acnt,acntp);
alias (i,j);

table sam(acnt,acntp)
              sec1         sec2              lab               finance        hib
sec1                       30339.954                                          7277.207
sec2       45621.658
lab                         6919.966
finance                   4996.364
hib                                             6718.528     8.989
co                                                                 4841.931
gov                        2037.338                                           324.572
fixedcap                                                                           637.829
store
other      15128.153

+             co               gov                fixedcap       store             other
sec1                           1422.385       5164.914     732.719        13013.714
sec2
lab
finance
hib           468.817      1290.317
co
gov          942.09
fixedcap   3290.076    495.119                                                  1674.061
store                                               754.687
other
;

* 定义参数和外生变量
parameters
alpha(i)       i部门增加值中劳动投入份额
A0(i)           i部门生产函数规模效率参数
delta(i)        i部门固定资产折旧率
a0(i,j)          i部门对j部门投入的直接消耗系数

gama(i)       居民对i部门的产品的消费份额
betaG(i)       ZFi部门产品的消费份额
betaI(i)        i部门固定资产占总投资的份额
kc(i)            i部门存货增加占总产出的比重
te(i)            i部门产品出口补贴率
tm(i)           i部门产品进口关税率
t(i)              i部门产品征收的间接税率
tax             居民个人所得税
etax           企业直接税率
mph           居民边际储蓄率
phi(i)           i部门总消费CES规模系数
lambda(i)     i部门总消费的CES进口份额参数
eption(i)       i部门进口商品与国产品间的替代弹性参数
sigma(i)        i部门进口商品与国产品间的转换弹性参数
mu(i)            i部门出口品规模参数
eta(i)            i部门出口价格弹性
r(i)               i部门资本租金率
w(i)              i部门工资率
aagr            农业与灾害冲击有关的参数
atran           交通业与灾害冲击有关的参数
Gtot            ZF消费的总量
Itot             总固定资产投资
L0(i)            基年i部门劳动力投入
K0(i)            基年i部门资本存量
ETP             企业对居民的利润分配
CPG             中央ZF对地方ZF的转移支付
GTP             地方ZF对居民的转移支付
REMIT          国外资本流入
ER               汇率
dloss            农业直接经济损失
agrtot          农业总产值
tranloss        交通业部门修复损失
trantot         运输邮电业总产值
X0(i,j)           基年农业部门对j部门的投入

C0(i)             基年居民对i部门的消费
CG0(i)           基年ZFi部门的消费
ST0(i)           基年i部门存货增加
Q0(i)            基年i部门商品总使用
M0(i)            基年i部门的进口
E0(i)            基年i部门的出口
PWE(i)         i部门出口商品的世界价格
PWM(i)        i部门进口商品的世界价格
;
*参数表
table secdal(i,*)
                alpha         A0          delta         gama      betaG      betaI        kc
agr           0.693        8.25      0.0004       0.86       0.14        0.001      0.172
indus        0.444        4.05      0.0015       1            0             0.042      0.041
build         0.784        19.15    0.0241       1            0             0.758      0.000
tran          0.561        3.11      0.0012       1            0             0.004      0.009
trade        0.528        12.44    0.0034       1            0             0.019      0.018
otherdep  0.623        21.37    0.0005       0.36       0.64        0.110      0.000

+              tm             t             phi          lambda    eption     sigma      mu
agr           0.166        0.003     1.440      0.615       4            0.2          0.139
indus        0.128        0.041     1.278      0.275       0.767     0.566      0.483
build         0.000        0.058     1.416      0.059       0.75       0.571      0.000
tran          0.000        0.024     1.544      0.473       2            0.333      0.113
trade        0.000        0.115     3.865      0.069       2            0.333      0.391
otherdep  0.008        0.040     3.859      0.072       2            0.333      0.063

+              eta            r             w            PWE       PWM       L0           K0
agr           2.44         0.203      0.261      1.000     1.000     3.1562     513.902
indus        3.223       1.367      0.067      1.000     1.000     108.384    2963.819
build         3              31.2        0.109      1.000     1.000     35.764     23.3134
tran          3             0.295       0.137      1.000     1.000     47.785     1693.9024
trade        3             7.327       0.182      1.000     1.000     76.638     452.8264
otherdep  3            0.542        0.211      1.000     1.000     31.593     20009.171

+              te              C0                CG0             ST0           Q0                     M0              E0
agr           0.027        334.0599      52.251        56.503       500.843           201.846       57.365
indus        0.065       1618.977       0                 585.602     11750.671       3969.693     1686.272
build         0.000       70.767           0                  0               3644.881         185.569       399.931
tran          0.000       96.851           0                 24.469       715.0685        1249.235      410.128
trade        0.000       549.7296       0                 88.319       2391.838        331.016        242.047
otherdep  0.000       1978.528       3206.590    -0.205        14941.784      1456.190      2016.3498
;
*直接消耗系数表
table aaa(i,j)
                 agr        indus      build        tran        trade     otherdep
agr            0.172    0.009     0.002      0.000     0.008     0.003
indus         0.208    0.589     0.543      0.211     0.120     0.208
build          0.000    0.001     0.022      0.005     0.014     0.025
tran           0.040    0.051     0.044      0.390     0.073     0.054
trade         0.082    0.110     0.108      0.034     0.044     0.086
otherdep   0.120    0.049     0.083      0.091     0.280     0.244
;
*中间投入表
table XX(i,j)
                 agr          indus          build           tran           trade        otherdep
agr           56.461    127.242      7.3801       0.2139      36.590      66.949
indus        68.077    8519.072    1719.270   555.558    571.838    4220.665
build         0.014      13.505        69.275       12.039      65.074      510.030
tran         13.079     731.6598    139.838     1028.286  347.319    1101.834
trade        26.825    1594.649    343.514     89.576      211.7396  1752.7699
otherdep  39.205    707.786      264.058     241.079    1340.279  4957.672
;

*参数赋值
alpha(i)=secdal(i,"alpha");
A0(i)=secdal(i,"A0");
delta(i)=secdal(i,"delta");
a0(i,j)=aaa(i,j);
gama(i)=secdal(i,"gama");
betaG(i)=secdal(i,"betaG");
betaI(i)=secdal(i,"betaI");
kc(i)=secdal(i,"kc");
te(i)=secdal(i,"te");
tm(i)=secdal(i,"tm");
t(i)=secdal(i,"t");
tax=0.038;
etax=0.195;
mph=0.129;
phi(i)=secdal(i,"phi");
lambda(i)=secdal(i,"lambda");
eption(i)=secdal(i,"eption");
sigma(i)=secdal(i,"sigma");
mu(i)=secdal(i,"mu");
eta(i)=secdal(i,"eta");
r(i)=secdal(i,"r");
w(i)=secdal(i,"w");
aagr=1;
atran=1;
*外生变量赋值
Gtot=sam("sec1","gov");
Itot=sam("sec1","fixedcap")+sam("sec2","fixedcap")+sam("lab","fixedcap")
       +sam("finance","fixedcap")+sam("hib","fixedcap")+sam("co","fixedcap")
       +sam("gov","fixedcap")+sam("fixedcap","fixedcap")+sam("store","fixedcap")
       +sam("other","fixedcap");
L0(i)=secdal(i,"L0");
K0(i)=secdal(i,"K0");
ETP   =sam("hib","co");
CPG   =92.3;
GTP   =sam("hib","gov");
X0(i,j)=XX(i,j);
C0(i)=secdal(i,"C0");
CG0(i)=secdal(i,"CG0");
ST0(i)=secdal(i,"ST0");
Q0(i)=secdal(i,"Q0");
M0(i)=secdal(i,"M0");
E0(i)=secdal(i,"E0");
REMIT =sam("other","sec1");
ER=1;
dloss=12.2;
agrtot=363.1;
tranloss=8.701835;
trantot=808.9500;

variables
V(i)       i部门的增加值
L(i)       i部门劳动力投入
K1(i)      i部门资本投入
IT(i)      i部门中间投入

C1(i)       居民对i部门的消费
CG(i)      ZFi部门的消费

I1(i)       i部门的固定资产投资
ST(i)      i部门的存货增加
DEP        固定资产存量总折旧
DK         固定资产总投资

Q(i)       i部门商品总使用
M(i)       i部门进口
E1(i)       i部门出口
D1(i)       i部门国内生产的供国内市场销售的商品

YE        企业收入
YG        ZF收入
YH        居民总收入
YK(i)     i部门资本要素收入
TE        出口退税
TD        企业直接税
TDH       居民个人所得税
TX        间接税收入
ESAV      企业储蓄
GSAV      ZF储蓄
HSAV      居民储蓄
SAV       总储蓄

PM(i)     i部门进口商品的国内价格
PE(i)     i部门出口商品的国内价格
PQ(i)     i部门产品产出价
PX(i)     i部门综合使用商品价格(复合品价格)
PD(i)     i部门商品的国内价格
PN(i)     i部门产品增加值价格
PC(i)     i部门消费品价格
PWE(i)    i部门出口商品的世界价格
PWM(i)    i部门进口商品的国际市场价格

K         总资产
INV       名义总投资
;

equations
eqV(i)    i部门国内增加值方程
eqL(i)    i部门劳动力投入
eqK(i)    i部门资本投入
eqIT(i)   i部门中间需求
eqXS(i)   部门总产出

eqC1(i)    居民对i部门的消费需求
eqCG(i)   ZFi部门的消费需求

eqI1(i)    i部门的固定资产投资
eqST(i)   i部门的存货增加
eqDEP     固定资产存量总折旧
eqDK      固定资产总投资需求

eqQ(i)    i部门的商品总使用(复合品需求)
eqM(i)    i部门进口品需求函数

eqED(i)   i部门出口品需求方程

eqYE      企业收入
eqYG      ZF收入
eqYH      居民总收入
eqYK(i)   i部门资本要素收入
eqTE      出口退税
eqTD      企业直接税
eqTDH     居民个人所得税
eqTX      ZF间接税收入
eqESAV    企业储蓄
eqGSAV    ZF储蓄
eqHSAV    居民储蓄
eqSAV     总储蓄

eqPM(i)   i部门进口商品的国内价格
eqPE(i)   i部门出口商品的国内价格
eqPQ(i)   i部门产品产出价
eqPX(i)   i部门综合使用商品价格(复合品价格)
eqPN(i)   i部门产品增加值价格

eqK       资本市场出清条件
objQ(i)   i部门市场出清条件
balance   总投资与总需求平衡
obj       超额需求为0

;

*生产模块
eqV(i)..   V(i)  =e=A0(i)*(L(i)**alpha(i))*(K1(i)**(1-alpha(i)));
eqL(i)..   L(i)  =e=V(i)*(A0(i)**(-1))*(((alpha(i)*r(i))/((1-alpha(i))*w(i)))**(1-alpha(i)));
eqK1(i)..   K1(i)  =e=V(i)*(A0(i)**(-1))*(((alpha(i)*r(i))/((1-alpha(i))*w(i)))**(-alpha(i)));
eqIT(i)..  IT(i) =e=sum(j,a0(i,j)*X0(i,j));
eqXS(i)..  XS(i)=e=IT(i)+V(i);


*消费模块
eqC1(i)..   C1(i)  =e=gama(i)*(1-mph)*YH/PC(i);
eqCG1(i)..  CG(i) =e=betaG(i)*Gtot/PC(i);

*投资模块
eqI(i)..   I1(i)  =e=betaI(i)*Itot;
eqST(i)..  ST(i) =e=kc(i)*XS(i);
eqDEP..    DEP   =e=sum(i,delta(i)*r(i)*K1(i));
eqDK..     DK    =e=INV-sum(i,PQ(i)*ST(i));

*需求模块
eqQ(i)..   Q(i)  =e=phi(i)*((lambda(i)*(M(i)**(-eption(i)))+(1-lambda(i))*(D1(i)**(-eption(i))))**(-1/eption(i)));
eqM(i)..   M(i)  =e=D1(i)*((lambda(i)*PD(i)/((1-lambda(i))*PM(i)))**sigma(i));
eqED(i)..  E1(i)/D1(i)=e=mu(i)*((PE(i)/PD(i))**(eta(i)));

*收入模块
eqYK(i).. YK(i)  =e=PN(i)*V(i)-w(i)*L(i);
eqYE..    YE     =e=sum(i,YK(i));
eqYH..    YH     =e=sum(i,w(i)*L(i))+GPT+EPT;
eqTX..    TX     =e=sum(i,PQ(i)*t(i)*XS(i));
eqTDH..   TDH    =e=tax*YH;
eqTD..    TD     =e=etax*YE;
eqTE..    TE     =e=sum(i,PWE(i)*E(i)*te(i)*ER);
eqYG..    YG     =e=TX+TDH+TD+CPG-TE;
eqHSAV..  HSAV   =e=YH*(1-tax)*mph;
eqESAV..  ESAV   =e=YE-ETP-TD;
eqGSAV..  GSAV   =e=YG-sum(i,PQ(i)*CG(i))-GTP;
eqSAV..   SAV    =e=HSAV+GSAV+ESAV+REMIT;

*价格模块
eqPM(i).. PM(i)  =e=PWM(i)*(1+tm(i))*ER;
eqPE(i).. PE(i)  =e=PWE(i)*(1+te(i))*ER;
eqPQ(i).. PQ(i)  =e=D1(i)/Q(i)*PD(i)+E1(i)/Q(i)*PE(i);
eqPX(i).. PX(i)  =e=D1(i)/Q(i)*PD(i)+M(i)/Q(i)*PM(i);
eqPN(i).. PN(i)  =e=PD(i)*(1-t(i))-sum(j,a(i,j)*PX(j));

*均衡模块
eqK..      K     =e=sum(i,K1(i));
objQ(i)..  Q(i)  =e=IT(i)+C1(i)+CG(i)+I1(i)+E1(i)+ST(i);
balance..  SAV   =e=INV;
obj..      D1(i)+E1(i)-XS(i)=e=0;


*变量初始化
L.l(i)=L0(1);
K.l(i)=K0(i);
C1.l(i)=C0(i);
CG.l(i)=CG0(i);
ST.l(i)=ST0(i);
Q.l(i)=Q0(i);
M.l(i)=M0(i);
E1.l(i)=E0(i);

*变量下限
V.lo(i)=0.00001;
IT.lo(i)=0.00001;
I1.lo(i)=0.00001;
DEP.lo=0.00001;
DK.lo=0.00001;
D1.lo(i)=0.00001;
YK.lo(i)=0.00001;
YE.lo=0.00001;
YG.lo=0.00001;
YH.lo=0.00001;
TX.lo=0.0000;
TD.lo=0.0000;
TE.lo=0.0000;
TDH.lo=0.0000;
HSAV.lo=0.00001;
ESAV.lo=0.00001;
GSAV.lo=0.00001;
SAV.lo=0.00001;
PM.lo(i)=0.00001;
PE.lo(i)=0.00001;
PQ.lo(i)=0.00001;
PX.lo(i)=0.00001;
PC.lo(i)=0.00001;
PD.lo(i)=0.00001;
PN.lo(i)=0.00001;
K.lo=0.00001;
INV.lo=0.00001;

Model  cgetry /all/;
Solve cgetry  using mcp;

 楼主| 发表于 2014-3-13 10:21 | 显示全部楼层
不好意思,该贴有重复的部分,还是复制粘贴的时候没注意,还请各位见谅,麻烦高人指点迷津,很着急~
回复

使用道具 举报

发表于 2014-3-13 16:12 | 显示全部楼层
lz可以上传gms的文件,这个东西格式一变都没法用了
另外表格可以调用尽量调用,敲上去容易出错,也占位置

回复

使用道具 举报

 楼主| 发表于 2014-3-14 10:09 | 显示全部楼层
XIEShichen 发表于 2014-3-13 16:12
lz可以上传gms的文件,这个东西格式一变都没法用了
另外表格可以调用尽量调用,敲上去容易出错,也占位置
...

谢谢您的提醒,找编程的同学帮我看了下,发现我在变量定义的部分确实存在问题
回复

使用道具 举报

关闭

广告上一条 /1 下一条

小黑屋|手机版|南康家具|家具批发|整体橱柜|经济学家 赣ICP备11002034号

GMT+8, 2017-7-24 14:54 , Processed in 0.294049 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表