|
各位前辈,我在做张老师《可》第一版第二章例2.2.1,以及课后习题时,按照张老师书中给的GAMS代码运行结果和实际均不一致,请指教
例2.2.1
$title 投出产出模型(Input-output model)
$ontext
这里用计算机编程语言 GAMS 对投入产出模型估计直接消耗系数 ,建立初始模型和
模拟外界政策变动情况 。同时对其中有关 GAMS的些基本编程程序 、指令及语言
作说明。
$offtext
set ac /sec1,sec2,labor,finaluse,total/;
set i(ac) /sec1,sec2/;
alias(i,j);
table IO(*,*)
sec1 sec2 finaluse Total
sec1 200 300 100 600
sec2 150 320 530 1000
labor 250 380
Total 600 1000
;
parameter
int(i,j) intermidiate input中间投入数量
use(i) finaluse最终使用
lab(i) factor labor input要素劳动投入
a(i,j) direct input-output coefficients 投入产出直接消耗系数
Q0(i) intial value for total output 总产出的初始值
;
int(i,j)=IO(i,j);
use(i)=IO(i,"finaluse");
lab(i)=IO("labor",i);
Q0(i)=IO("total",i);
a(i,j)=int(i,j)/Q0(j);
display int,use,lab,Q0,a;
variable
Q(i) total output 总产出
;
equation
commodityequi(i);
commodityequi(i)..
sum(j,a(i,j)*Q(j)+use(i))=e=Q(i);
Q.L(i)=Q0(i);
model IOmodel /all/;
solve IOmodel using mcp
;
display Q.L
display'以下部分复制初始模型Replication';
parameter
repa(i,j)
repuse(i) use these final uses
/sec1 100
sec2 500/
repQ0(i) 部门1和部门2的被扰动的初始数值
/sec1 300
sec2 500/;
repa(i,j)=a(i,j);
variable
repQ(i);
display repuse,repa,repQ0
equation
repcommodequi(i);
repcommodequi(i)..
sum(j,repa(i,j)*repQ(j)+repuse(i))=e=repQ(i);
repQ.L(i)=repQ0(i);
model repIOmodel /repcommodequi/;
solve repIOmodel using mcp;
display'repQ.1,检验结果是否和原来的产出量Q一致',repQ.L
display'以下部分复制初始模型Replication';
parameter
use2(i) changes in the finaluse
/sec1 0
sec2 100/
display use2
equation
commodityequi2(i);
commodityequi2(i)..
sum(j,a(i,j)*Q(j)+use2(i))=e=Q(i);
model simIOmodel /commodityequi2/;
solve simIOmodel using mcp;
display'Q.L,为求解的结果',Q.L
课后习题第2题
$title 投出产出模型(Input-output model)
$ontext
这里用计算机编程语言 GAMS 对投入产出模型估计直接消耗系数 ,建立初始模型和
模拟外界政策变动情况 。同时对其中有关 GAMS的些基本编程程序 、指令及语言
作说明。
$offtext
set ac /sec1,sec2,sec3,labor,capital,finaluse,total/;
set i(ac) /sec1,sec2,sec3/;
alias(i,j);
table IO(*,*)
sec1 sec2 sec3 finaluse Total
sec1 160 150 90 480 880
sec2 140 320 530 900 1530
sec3 80 150 250 590 1070
labor 320 350 410
capital 180 560 150
Total 880 1530 1070
;
parameter
int(i,j) intermidiate input中间投入数量
use(i) finaluse最终使用
lab(i) factor labor input要素劳动投入
cap(i) 资本要素投入
a(i,j) direct input-output coefficients 投入产出直接消耗系数
Q0(i) intial value for total output 总产出的初始值
;
int(i,j)=IO(i,j);
use(i)=IO(i,"finaluse");
lab(i)=IO("labor",i);
cap(i)=IO("capital",i);
Q0(i)=IO("total",i);
a(i,j)=int(i,j)/Q0(j);
display int,use,lab,cap,Q0,a;
variable
Q(i) total output 总产出
;
equation
commodityequi(i);
commodityequi(i)..
sum(j,a(i,j)*Q(j)+use(i))=e=Q(i);
Q.L(i)=Q0(i);
model IOmodel /all/;
solve IOmodel using mcp
;
display Q.L
parameter
use2(i) changes in the finaluse
/sec1 0
sec2 200
sec3 0/
display use2
equation
commodityequi2(i);
commodityequi2(i)..
sum(j,a(i,j)*Q(j)+use2(i))=e=Q(i);
model simIOmodel /commodityequi2/;
solve simIOmodel using mcp;
display'Q.L,为求解的结果',Q.L
|