chakra.gms : Optimal Growth Model

Description

```Simple one sector nonlinear optimal growth model.
```

Small Model of Type : NLP

Category : GAMS Model library

Main file : chakra.gms

``````\$title Optimal Growth Model (CHAKRA,SEQ=43)

\$onText
Simple one sector nonlinear optimal growth model.

Kendrick, D, and Taylor, L, Numerical methods and Nonlinear Optimizing
models for Economic Planning. In Chenery, H B, Ed, Studies of
Development Planning. Harvard University Press, 1971.

Chakravarty, S, Optimum Savings with a Finite Planning Horizon.
International Economic Review 3 (1962), 338-355.

Keywords: nonlinear programming, economic growth model, macro economics
\$offText

Set
t     'extended horizon' / 0*20 /
tb(t) 'base period'
tt(t) 'terminal period';

tb(t) = yes\$(ord(t) = 1);
tt(t) = yes\$(ord(t) = card(t));
display tb, tt;

Scalar
delt 'rate of depreciation'    /   .05  /
beta 'exponent on capital'     /   .75  /
a    'efficiency parameter'
r    'labor force growth rate' /   .025 /
eta  'elasticity'              /   .9   /
z    'technical progress'      /   .01  /
rho  'welfare discount'        /   .03  /
y0   'initial income'          /  4.275 /
k0   'initial capital'         / 15.0   /;

Parameter
dis(t)   'discount factor'
alpha(t) 'production function parameter';

a        = y0/k0**beta;
dis(t)   = (1 + rho)**(1 - ord(t))/(1 - eta);
alpha(t) = a*(1 + r*(1 - beta) + z)**(ord(t) - 1);
display a, dis, alpha;

Variable
c(t)  'consumption'
y(t)  'income'
k(t)  'capital stock'
j     'performance index';

Equation
kb(t) 'capital stock balance'
yd(t) 'income definition'
jd    'performance index definition';

jd..       j      =e= sum(t, dis(t-1)*c(t-1)**(1 - eta));

yd(t)..    y(t)   =e= alpha(t)*k(t)**beta;

kb(t+1)..  k(t+1) =e= y(t) - c(t) + (1 - delt)*k(t);

y.l(t) = y0*(1.06)**(ord(t) - 1);
k.l(t) = (y.l(t)/alpha(t))**(1/beta);
c.l(t) = y.l(t) + (1 - delt)*k.l(t) - k.l(t+1);
display c.l, k.l, y.l;

k.lo(t)  = 1;
y.lo(t)  = 1;
c.lo(t)  = 1;
y.fx(tb) = y.l(tb);
y.fx(tt) = y.l(tt);

Model growth / all /;

solve growth maximizing j using nlp;

Parameter report 'solution summary';
report(t,"k")      = k.l(t);
report(t,"y")      = y.l(t);
report(t,"c")      = c.l(t);
report(t,"s-rate") = (y.l(t) - c.l(t))/y.l(t);
display report;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170