$title	Public Goods Model with Stock and Flow Variables

$ontext

Optimal Growth with Public Capital and Public Services
Sugata Ghosh and Udayan Roy
Economics of Planning 35: 271-292, 2002.


Dear Professor Rutherford

Hello :

I am a graduate student of economics in university of ... and I
study growth models in GAMS.  i know,u r so
busy but i have a big problem with the writing a growth model with
government spending ( Attached file) in Gams. it relates to my thesis
and i dunno what should i do exactly. i have studied afew articles
about Ramsey model and also multi-sector economy. but i didnt find out
what should i do for my case if you can and have time, please help me.
i want to do this work for 40 years programming. i should use this
basic paper until page 10 (before Transitional Dynamics) .  please
read the attached file and tell me how should i write this model in
Gams. 


This model differs from the published paper in one respect: I assume a constant depreciation rate (delta) for both public and private capital. This assumption introduces a transition growth path which can be numerically approximated quite easily using state variable targeting: http://www.mpsge.org/nlptarget/ If delta=0, my procedure runs into some problems. I'm not sure whether this is something which could be easily overcome, but seeing that an assumption of delta>0 seems more empirically plausible, I don't think that it is really worth the time to pursue. Note that this model abstracts from a number of interesting aspects of the problem: 1. Second-best public provision financed through distortionary taxation. (Here is a start.) 2. Labor growth and endogenous labor supply (labor-leisure choice). 3. Decentralized decisions (private agents take public sector investments as given). 4. Human rights, entrepreneurial incentives and reconciliation of the role of church and state. $offtext set t Time (years) /0*100/, tf(t) First year tl(t) Last year; parameters alpha Stock share of public goods /0.3/ beta Private capital value share /0.4/ rho Intertemporal discount rate /0.03/ delta Capital depreciation rate /0.05/ df(t) Discount factor to year t, kt Terminal private capital stock, ktg Terminal public capital stock; tf(t) = yes$(ord(t)=1); tl(t) = yes$(ord(t)=card(t)); df(t) = exp(-rho*(ord(t)-1)); variables U Intertemporal utility C(t) Consumption, G(t) Public services, Y(t) Output, TAU Tax rate on output, I(t) Private Investment, IG(t) Public investment, K(t) Private capital stock, KG(t) Public capital stock; positive variables I,IG,TAU; equations welfare, output, provision, private, public, production, termk, termkg; welfare.. U =E= sum(t, df(t) * log(C(t))); output(t).. Y(t)*(1-TAU) =e= C(t) + I(t); provision(t).. Y(t) * TAU =E= G(t) + IG(t); private(t-1).. K(t) =e= K(t-1) * (1 - delta) + I(t-1); public(t-1).. KG(t) =e= KG(t-1) * (1 - delta) + IG(t-1); termk(tl).. kt =e= K(tl) * (1 - delta) + I(tl); termkg(tl).. ktg =e= KG(tl) * (1 - delta) + IG(tl); production(t).. Y(t) =e= (KG(t)**alpha * G(t)**(1-alpha))**(1-beta) * K(t)**beta; C.L(t) = 1; G.L(t) = 1; KG.L(t) = 1; K.L(t) = 1; C.LO(t) = 0.001; G.LO(t) = 0.01; KG.LO(t) = 0.01; K.LO(t) = 0.01; TAU.UP = 1; K.FX(tf) = 1; KG.FX(tf) = 1; * Begin with a naive assumption: kt = 1; ktg = 1; MODEL growth /all/; SOLVE growth USING nlp MAXIMIZING u; parameter iglog Iteration log of public investment ilog Iteration log of private investment itlog Iteration log of terminal targets; set itradj Iterative adjustments of terminal capital /it0*it20/; loop(itradj, itlog(itradj,"kt") = kt; itlog(itradj,"ktg") = ktg; * Impose a constant growth rate over private and public capital * in the last half of the planning period: loop(tl(t), kt = K.L(t-50) * (Y.L(t-40)/Y.L(t-50))**5; ktg = KG.L(t-50) * (Y.L(t-40)/Y.L(t-50))**5; ); SOLVE growth USING nlp MAXIMIZING u; ); display itlog; PARAMETER gamma Growth rates of primal variables; gamma(t+1,"Y") = 100 * (Y.L(t+1)/Y.L(t)-1); gamma(t+1,"C") = 100 * (C.L(t+1)/C.L(t)-1); gamma(t+1,"G") = 100 * (G.L(t+1)/G.L(t)-1); gamma(t+1,"K") = 100 * (K.L(t+1)/K.L(t)-1); gamma(t+1,"KG") = 100 * (KG.L(t+1)/KG.L(t)-1); $setglobal domain itradj $libinclude plot itlog set tlbl(t) Labels for graphical output /0,20,40,60,80,100/; $setglobal domain t $setglobal labels tlbl $libinclude plot gamma