全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1578 0
2015-03-06
运行后提示.png 这是运行之后出现的,不知道是什么原因?以下是程序:

$TITLE SAMBAL
$STITLE SAM BALANCING PROGRAM
SETS I MATRIX ACOUNTS/PRO products
PACT production activity
LAB labor
CAP capital
RES resident
FIRM firms
SLGOV local government subsidy
SCGOV central government subsidy
EXTRA extra system
LGOV local government
CGOV central government
ROW the rest of the world
ROMC the rest of domestic country
FCAP fixed capital
STOCK stock change
TOT total/
INT(I) ALL acounts except total;
ALIAS(I,J);
ALIAS(INT,JNT);
INT(I)=YES;
INT("TOT")=NO;
PARAMETER SAM0(I,J);
TABLE SAM0(I,J)
       PRO        PACT         LAB         CAP         RES        FIRM
PRO               87442972                             22886934
PACT   158150639
LAB               25717220
CAP               30369332
RES                            25717220    106845.3               36921263.7
FIRM                                       30183904.3
SLGOV             5357254
SCGOV             263415.5
EXTRA             3703220.5
LGOV              1059445                              203395     306357
CGOV  74755.4     4237780                                         765892.5
ROW   3825000                              78582.4
ROMC  42203288.6
FCAP                                                   44782000   19474000
STOCK
TOT   204253683   158150639    25717220    30369332    67872329   57467513.2
+     SLGOV       SCGOV        EXTRA       LGOV        CGOV       ROW
PRO                            2057016     10193190    5201195    9330000
PACT
LAB
CAP
RES                                        5127000
FIRM
SLGOV                                      -5357254
SCGOV                                                  -263415.5
EXTRA
LGOV                                                   8067885
CGOV                                       99566
ROW
ROMC
FCAP                           1646204.5   1919000     -7827670.6 -5426417.6
STOCK
TOT                            3703220.5   11981502    5177993.9  3903582.4
+     ROMC        FCAP         STOCK       TOT
PRO   36773044    28778400     1590932     204253683
PACT                                        158150639
LAB                                        25717220
CAP                                        30369332
RES                                        67872329
FIRM                                       30183904.3
SLGOV
SCGOV
EXTRA                                      3703220.5
LGOV                                       9637082
CGOV                                       5177993.9
ROW                                        3903582.4
ROMC                                       42203288.6
FCAP  5430244.6                            59997360.9
STOCK             1590932                  1590932
TOT   42203288.6  30369332     1590932
;
PARAMETER TOTO Total of initial matrix;
TOTO =SUM((INT,JNT),SAM0(INT,JNT));
SAM0(INT,JNT) =SAM0(INT,JNT)/TOTO;
PARAMETER NEG(I,J) Matrix of negative values;
NEG(INT,JNT)$(SAM0(INT,JNT)LT 0)=1;
SAM0(INT,JNT)$(SAM0(JNT,INT)LT 0)=SAM0(INT,JNT)-SAM0(JNT,INT);
SAM0(JNT,INT)$(SAM0(JNT,INT)LT 0)=0;
SCALARS delta Non-zero log parameter;
delta=0.0000000000001;
VARIABLES
SAM(I,J) New SAM with transpend negative values
OPT      Distance variable;
EQUATIONS
OPTIMIZE Optimization criterion
CONSTRAINT(I) Equality between matrix and row sums
CONSTRAINT1 proportion sum set to one;
OPTIMIZE..
OPT =E= SUM((INT,JNT)$(SAM0(INT,JNT)NE 0),(SAM(INT,JNT))
            *(LOG(SAM(INT,JNT)+delta)-LOG(SAM0(INT,JNT)+delta)));
CONSTRAINT(INT)..
SUM(JNT,SAM(INT,JNT)) =E= SUM(JNT,SAM(JNT,INT));
CONSTRAINT1..
SUM((INT,JNT),SAM(INT,JNT)) =E= 1;
SAM.L(I,J) =SAM0(I,J);
SAM.LO(INT,JNT) = 0;
SAM.UP(INT,JNT) = + INF;
SAM.FX(INT,JNT)$(NOT SAM0(INT,JNT))= 0;
OPT.L =  0;
MODEL SAMBAL/ALL/;
OPTION NLP = MINOS;
SOLVE SAMBAL USING NLP MINIMIZING OPT;
PARAMETER NSAM(I,J) New (balanced) matrix;
NSAM(INT,JNT) = SAM.L(INT,JNT);
NSAM(INT,JNT)$(NEG(INT,JNT) =1) = -NSAM0(JNT,INT);
NSAM(JNT,INT)$(NEG(INT,JNT) =1) = 0;
NSAM(INT,JNT) = NSAM(INT,JNT)*TOTO;
NSAM("TOT",JNT) = SUM(INT,NSAM(INT,JNT));
NSAM(INT,"TOT") = SUM(JNT,NSAM(INT,JNT));
file samfile /nsam.csv/;
samfile.pc=5;
samfile.pw=255;
samfile.nj=1;
samfile.nw=15;
samfile.nd=9;
samfile.nz=0;
samfile.nr=0;
put samfile;
put '';loop(I,put I.tl);put /;
loop(I,
put I.tl,loop(J,put NSAM(I,J));put/;
);
DISPLAY NSAM;

为什么按照教材上写的程序,还是出不来平衡的SAM结果,精通GAMS的前辈麻烦帮忙解惑,十分感谢~~也可以邮箱交流,zxf_0324@126com






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群