GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]

two3mac.gms : Simple 2 x 2 x 2 General Equilibrium Model Using Macros


This is the TWO3MCP model written using macros. The documentaion
of GAMS-F uses this model as example 7.

 Reference:  Shoven and Whalley: "Applied G.E. Models"
             Journal of Economic Literature, XXII (1984)

Reference:
Small Model of Type: MCP
$stitle Simple 2 x 2 x 2 General Equilibrium Model Using Macros (TWO3MAC,SEQ=341) * This is the TWO3MCP model written using macros. The documentaion * of GAMS-F uses this model as example 7. * Reference: Shoven and Whalley: "Applied G.E. Models" * Journal of Economic Literature, XXII (1984) sets f factors /labor, capital/ s sectors /mfrs, nonmfrs/ h households /rich, poor/; alias (h,k), (s,ss), (f,ff); * * demand function parameters. * parameter sigmac(h) / rich 1.5 , poor 0.75/; table alpha(s,h) rich poor mfrs 0.5 0.3 nonmfrs 0.5 0.7; table e(f,h) endowment rich poor labor 60 capital 25 * * production function parameters. * parameter phi(s) / mfrs 1.5, nonmfrs 2.0 /; table delta(f,s) mfrs nonmfrs labor 0.6 0.7 capital 0.4 0.3; parameter sigma(s) / mfrs 2.0, nonmfrs 0.5/; parameter tshr(h) share of tax revenue /rich 0.4, poor 0.6/, t(f,s) ad-valorem tax rates; $macro PF(f,s) (W[f]*(1+t[f,s])) $macro COST(s) sum{f.local, delta[f,s]**sigma[s]*PF(f,s)**(1-sigma[s])}**(1/(1-sigma[s]))/phi[s] $macro FD(f,s) (delta[f,s]*COST(s)/PF(f,s))**sigma[s] $macro TAX(s) sum{f.local, t[f,s]*W[f]*Y[s]*FD(f,s)} $macro INCOME(h) (sum{f, e[f,h]*W[f]} + tshr[h]*sum{s.local, TAX(s)}) $macro D(s,h) INCOME(h)*alpha[s,h]*sum{s.local, alpha[s,h]*P[s]**(sigmac[h]-1)}*P[s]**(-sigmac[h]) positive variables w(f) factor price, p(s) commodity price, y(s) production level; equations fmkt(f) factor market, cmkt(s) commodity market, profit(s) zero profit; fmkt(f).. sum(h, e(f,h)) =g= sum(s, FD(f,s)*Y(s)); cmkt(s).. Y(s) =g= sum(h, D(s,h)); profit(s).. COST(s) =g= P(s); parameter DL(s,h); model jel / fmkt.w, cmkt.p, profit.y/; * compute solution for this dimension problem: w.lo(f) = 0.0001; p.lo(s) = 0.0001; w.l(f) = 1; p.l(s) = 1; y.l(s) = 1; * Use labor as numeraire: w.fx("labor") = 1; t(f,s) = 0; * solve the reference case: solve jel using mcp; $onDotL dl(s,h) = d(s,h); display dl; * apply tax in test problem: t("capital","mfrs") = 0.5; solve jel using mcp; dl(s,h) = d(s,h); display dl;