全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
1434 2
2018-06-07
悬赏 200 个论坛币 未解决
求GAMS大神帮我看一下如下文献中看到的代码为啥在软件里跑不出来、持续报错。
$ontext

Simple Spatial Equilibrium Example
Primal or quantity formulation.
Erwin Kalvelagen, nov 2001
Data from:
Takayama and Judge,
Spatial and temporal price and allocation models
North Holland, 1971

$offtext
set i ’regions’ /region1,region2,region3/;
alias (i,j);
positive variables
d(j) ’demand’
s(i) ’supply’
pd(j) ’price (demand)’
ps(i) ’price (supply)’
x(i,j) ’shipments’
;
free variable
welfare ’quasi welfare’
;
equations
excess_demand(j)   ’no excess demand allowed’
excess_supply(i)     ’excess supply is possible’
objective                ’net quasi welfare function’
price_demand(j)    ’demand curve (inverse)’
price_supply(i)       ’supply curve (inverse)’
;
table data(i,*,*) ’data for inverse demand and supply equations’
                                                 intercept                  slope
region1.demand                              20                      -0.1
region1.supply                                   5                       0.1
region2.demand                              20                      -0.2
region2.supply                                2.5                     0.05
region3.demand                              20                  -0.125
region3.supply                                  5                        0.1
;
table c(i,j) ’transportation costs’
                                  region1 region2 region3
region1                                        2          2
region2                           2                       1
region3                           2           1
;
parameters zeta(j),eta(j),theta(i),lambda(i);
zeta(j) = data(j,’demand’,’intercept’);
eta(j) = data(j,’demand’,’slope’);
theta(i) = data(i,’supply’,’intercept’);
lambda(i) = data(i,’supply’,’slope’);
price_demand(j).. pd(j) =e= zeta(j)+eta(j)*d(j);
price_supply(i).. ps(i) =e= theta(i)+lambda(i)*s(i);
objective.. welfare =e=
      sum(j,zeta(j)*d(j)+0.5*eta(j)*sqr(d(j)))
      -sum(i,theta(i)*s(i)+0.5*lambda(i)*sqr(s(i)))
      -sum((i,j), c(i,j)*x(i,j));
excess_demand(j).. sum(i, x(i,j)) =g= d(j);
excess_supply(i).. sum(j, x(i,j)) =l= s(i);

model m /objective,excess_demand,excess_supply,price_demand,price_supply/;
solve m using nlp maximizing welfare;



感谢
二维码

扫码加我 拉你入群

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

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

全部回复
2018-6-27 19:26:50
上述代码我运行了下 存在两个问题
1 索引使用双引号
1.png
2 Table的数据要对齐
2.png
3 Solver 选择CONOPT3
3.png
二维码

扫码加我 拉你入群

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

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

2018-6-27 19:31:09
不太会编辑帖子,这是可以运行的gms文件
Spatial equilibrium.zip
大小:(705 Bytes)

 马上下载

本附件包括:

  • Spatial equilibrium.gms


二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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