悬赏 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) ZF对i部门产品的消费份额
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) 基年ZF对i部门的消费
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) ZF对i部门的消费
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) ZF对i部门的消费需求
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;