The Ramsey Model (p1)

This note compiles some essential techniques in solving the Ramsey model. At the moment, only solutions for households are included. I will consider more extensions at a later time. For economic intuitive intepretations, see the free book Campante, Filipe, Sturzenegger, Federico and Velasco, Andrés (2021) Advanced macroeconomics: an easy guide. LSE Press, London, UK. ISBN 9781909890688.

In this neoclassical growth model, we assume there is one representative household maximizing her utility function at each point in time with forward-looking ability. She cares about future consumption with some discount weights. Her life-time utility function can be represented as follows. In the discrete-time version, one can use inter-temporal Lagrangian or Bellman’s dynamic programming to solve the problem. In the continuous-time version, Lagrangian is also possible and then shorthanded with Hamiltonian. In both cases, the household is assumed to live forever.

Part 1 deals with the discrete-time version.

This article is Part 1 in a 2-Part Series.

Discrete Time

Let us deal with the discrete version first.

Household’s Problem

The life-time utility function is:

\[U_t = u_0 + \frac{u_1}{1+\rho} + \frac{u_2}{(1+\rho)^2} + \dots = \sum_{t=0}^{\infty} \frac{u_t}{(1+\rho)^t}\]

where $u_t = u(c_t)$, so that utility at time $t$ derived from consumption $c_t$ at time $t$. To simplify the notation, denote the discount factor as $\beta \equiv \frac{1}{1+\rho}$ so that the household obtains an objective function:

\[\max_{c_t} U_t = \sum_{t=0}^{\infty} \beta^t u(c_t) \ \ (1)\]

The budget constraint:

\[c_t + i_t = f(k_t) \\ k_{t+1} = i_t + (1- \delta) k_t \\ k_0 > 0\]

where $i$ is investment, which will be carried over to form the next period’s capital stock. Capital depreciates with the rate of $\delta$.

Combining the above equations gives:

\[c_t = f(k_t) - k_{t+1} + (1-\delta)k_t \ \ (2)\]

One can rearrange to see the increase in capital stock over time:

\[k_{t+1} - k_t = f(k_t) - \delta k_t - c_t\]

which will help us find the budget constraint for the continuous time version.

The Lagrangian Method

The Lagrangian:

\[\mathcal{L} = \sum_{t=0}^{\infty} \beta^t u(c_t) + \sum_{t=0}^{\infty} \lambda_t \left[ f(k_t) + (1- \delta) k_t - k_{t+1} - c_t \right]\]

Grouping all the summation and rewrite the Lagrangian: \(\mathcal{L} = \sum_{t=0}^{\infty} \left[ \beta^t u(c_t) + \lambda_t \left( f(k_t) + (1- \delta)k_t - k_{t+1} - c_t \right) \right]\)

The term inside the sum should be optimized in each point in time. The modified Lagrangian: \(\triangle = \beta^t u(c_t) + \lambda_t \left( f(k_t) + (1- \delta) k_t - k_{t+1} - c_t \right)\)

FOC: (Note that $k_{t+1}$ appears twice at time $t$ and $t+1$)

\[(c_t): \frac{\partial \triangle}{\partial c_t} = \beta^t u'(c_t) - \lambda_t = 0 \ \ (3) \\ (k_{t+1}): \frac{\partial \triangle}{\partial k_{t+1}} = -\lambda_t + \lambda_{t+1} \left[ f'(k_{t+1}) + (1-\delta) \right] = 0 \ \ (4)\]

By virtue of Eq. (3), we see that:

\[\beta^{t+1}u'(c_{t+1}) = \lambda_{t+1}\]

Plugging back to Eq. (4) and rearranging give us the Euler equation:

\[\frac{u'(c_t)}{u'(c_{t+1})} = \beta \left[ f'(k_{t+1}) + (1-\delta) \right]\]

Consider the utility function $u(c_t) = \ln(c_t)$, we have:

\[\frac{c_{t+1}}{c_t} = \beta \left[f'(k_{t+1}) + (1-\delta)\right]\]

In the steady-state, $c_{t+1} = c_t = \bar{c}$ and $k_{t+1} = k_t = \bar{k}$.

Provided with a functional form of the production function $f(k)$, one can find the steady-state values of $\bar{c}, \bar{k}$ and then use backward induction to figure out the dynamics from a given $k_0$.

Dynamic Programming (Bellman Equation)

Another method of solving is to use the Bellman equation. First, we replace $c_t$ in Eq. (2) with Eq. (3). The objective function becomes:

\[\max_{k_{t+1}} U_t = \sum_{t=0}^{\infty} \beta^t u \left(f(k_t) + (1-\delta)k_t - k_{t+1} \right)\]

Imagine we are at time $t=0$, the problem is:

\[\max \sum_{t=0}^{\infty} \beta^t u \left(f(k_t) + (1-\delta)k_t - k_{t+1} \right) \equiv L_0\]

In the next period $t=1$:

\[\max \sum_{t=1}^{\infty} \beta^t u \left(f(k_t) + (1-\delta)k_t - k_{t+1} \right) \equiv L_1\]

Although the 2 problems look almost identical, there are 2 fundamental differences. First, at $t=0$, we know $k_0$ but do not know $k_1$, we maximize and then find $k_1$, whereas at $t=1$, we already know $k_1$ (and of course $k_0$). Second, at $t=1$, the terms have been shifted 1 period forward, which means the future maximization problem must be discounted by $\beta$.

Thus, we can nest tomorrow’s problem into today’s problem as follows:

\[L_0 = \max \left[ u(f(k_0) + (1-\delta)k_0 - k_1) + L_1 \right]\]

At $t=0$, $k_0$ is the key to determine $L_0$. At $t=1$, $k_1$ becomes the key to determine $L_1$. By valuating $L$ associated with the known $k$ at that time, we arrive at:

\[L(k_0) = \max \left[ u(f(k_0) + (1-\delta)k_0 - k_1) + \beta L(k_1) \right]\]

We can rewrite this expression into a Bellman equation, with $V(k)$ be the Value function. Also, the optimal solution must be true for any time $t$, so we generalize it as follows.

\[V(k_t) = \max \left[ u(f(k_t) + (1-\delta)k_t - k_{t+1}) + \beta V(k_{t+1}) \right] \ \ (5)\]

FOC with respect to $k_{t+1}$:

\[\frac{\partial V(k_t)}{\partial k_{t+1}} = - u'(f(k_t) + (1-\delta) - k_{t+1}) + \beta \frac{\partial V(k_{t+1})}{\partial k_{t+1}} = 0\]

To find $\frac{\partial V(k_{t+1})}{\partial k_{t+1}}$, first take the derivatives of Eq. (5) wrt to $k_t$:

\[\frac{\partial V(k_t)}{\partial k_t} = (f'(k_t) + 1 - \delta) u'(f(k_t) + (1-\delta)k_t - k_{t+1})\]

which implies:

\[\frac{\partial V(k_{t+1})}{\partial k_{t+1}} = (f'(k_{t+1}) + 1 - \delta) u'(f(k_{t+1}) + (1-\delta)k_{t+1} - k_{t+2})\]

Plugging back to the FOC to obtain:

\[u'(\underbrace{f(k_t) + (1-\delta) - k_{t+1}}_{c_t}) = \beta [f'(k_{t+1}) + (1 - \delta)] u'(\underbrace{f(k_{t+1}) + (1-\delta)k_{t+1} - k_{t+2}}_{c_{t+1}})\]

Rearranging gives us the Euler equation:

\[\frac{u'(c_t)}{u'(c_{t+1})} = \beta \left[f'(k_{t+1}) + (1-\delta) \right]\]

For technical reasons, the transversality condition is needed (which is seen better at the continuous time section):

\[\lim_{t\to\infty} \beta^t u'(c_t)k_{t+1} = 0\]

An intuitive explanation can be found here. For now, so long as $\beta < 1$, this condition is always satisfied.


I own a spiritual debt to Constantin Burgi and his lectures on Youtube. This note stems from lectures by Prof. Kitagawa Akiomi and Tomoaki Kotera at Tohoku University.

Written on February 20, 2022