Derivations
Chapter 3 — the formal spine, step by step
This page targets the 🔴 Frontier reader. It expands the chapter’s own derivations, filling the steps the book skips; outside results are cited inline. Read the Summary first. Equation numbers in brackets refer to the book.
1 Setup
A planner maximises the welfare of a representative household whose population grows at rate \(n\):
\[ \max_{\{c_t\}} \int_0^\infty u(c_t)\, e^{nt} e^{-\rho t}\, dt \qquad \text{s.t.} \qquad \dot k_t = f(k_t) - n k_t - c_t, \quad k_0 \text{ given}, \]
with \(u' > 0\), \(u'' \le 0\), the Inada conditions, a neoclassical \(f\) (\(f' > 0\), \(f'' < 0\), Inada), no depreciation, and \(\rho > n\) [eqs. 3.1, 3.5]. Write \(\sigma \equiv -u'(c)/(u''(c)c) > 0\) for the elasticity of intertemporal substitution [3.13].
2 Result — The Euler equation
Claim. Along an optimal path, \(\dfrac{\dot c_t}{c_t} = \sigma\,[f'(k_t) - \rho]\) [3.15].
Derivation.
- The current-value Hamiltonian [3.6] is \(H = u(c_t)e^{nt} + \lambda_t[f(k_t) - nk_t - c_t]\). \(\lambda_t\) is the current-value co-state: the value at \(t\) of one more unit of capital.
- Optimality in the control (\(c\) is chosen freely at each instant): \(\partial H/\partial c = 0\), so \(u'(c_t)e^{nt} = \lambda_t\) [3.7].
- Optimality in the state (the current-value form of Pontryagin’s maximum principle): \(\dot\lambda_t = \rho\lambda_t - \partial H/\partial k = \rho\lambda_t - \lambda_t[f'(k_t) - n]\) [3.8]. Divided by \(\lambda_t\): \(\dfrac{\dot\lambda_t}{\lambda_t} = \rho + n - f'(k_t)\) [3.10]. This is the arbitrage condition \(\rho + n = \dot\lambda/\lambda + f'(k)\).
- Differentiate step 2 with respect to time: \(u''(c_t)\dot c_t e^{nt} + n u'(c_t)e^{nt} = \dot\lambda_t\) [3.11]. Divide by \(\lambda_t = u'(c_t)e^{nt}\): \(\dfrac{u''(c_t)c_t}{u'(c_t)}\dfrac{\dot c_t}{c_t} + n = \dfrac{\dot\lambda_t}{\lambda_t}\) [3.12].
- Use the definition of \(\sigma\) (\(u''c/u' = -1/\sigma\)) and step 3: \(-\dfrac{1}{\sigma}\dfrac{\dot c_t}{c_t} + n = \rho + n - f'(k_t)\), so \[\boxed{\;\frac{\dot c_t}{c_t} = \sigma\,[f'(k_t) - \rho]\;}\]
- Transversality [3.9]: \(\lim_{t\to\infty} k_t\lambda_t e^{-\rho t} = 0\). Together with \(k_0\), it selects one path out of the many satisfying steps 2–5 (see saddle-path stability).
Interpretation. Consumption tilts upward when the marginal product of capital exceeds impatience. The size of the tilt is \(\sigma\). With CRRA utility \(u(c) = c^{1-1/\sigma}/(1-1/\sigma)\), \(\sigma\) is constant (Exercise 6, checked symbolically in _verify.py).
3 Result — The balanced growth path and the modified golden rule
Claim. The steady state \((k^*, c^*)\) solves \(f'(k^*) = \rho\) and \(c^* = f(k^*) - nk^*\), and \(k^* < k_G\), where \(f'(k_G) = n\) [3.16–3.18].
Derivation.
- \(\dot c = 0\) with \(c > 0\) requires \(f'(k^*) = \rho\) (from the Euler equation) [3.17]. This pins \(k^*\) uniquely, because \(f'\) is strictly decreasing and Inada guarantees a solution.
- \(\dot k = 0\) requires \(c = f(k) - nk\) [3.16]. Evaluated at \(k^*\), this gives \(c^*\).
- The golden rule maximises \(f(k) - nk\): \(\dfrac{d}{dk}[f(k) - nk] = 0\) gives \(f'(k_G) = n\) [3.18]. The second-order condition \(f'' < 0\) confirms a maximum.
- Since \(\rho > n\) and \(f'\) is decreasing, \(f'(k^*) = \rho > n = f'(k_G)\) implies \(k^* < k_G\). \[\boxed{\;f'(k^*) = \rho > n = f'(k_G) \;\Longrightarrow\; k^* < k_G\;}\]
Interpretation. Optimal saving never pushes capital beyond the golden rule, so there is no dynamic inefficiency. For \(f(k) = Ak^{1-\alpha}\), \(k^*/k_G = (n/\rho)^{1/\alpha}\) (Exercise 2).
4 Result — Saddle-path stability
Claim. Linearised around \((k^*, c^*)\), the system has one negative and one positive eigenvalue, so for each \(k_0\) near \(k^*\) there is a unique \(c_0\) that converges [3.27–3.33].
Derivation.
- Write the system as \(\dot k = G(k, c) = f(k) - nk - c\) and \(\dot c = H(k, c) = \sigma c[f'(k) - \rho]\).
- The partial derivatives at the steady state [3.29–3.32] are:
- \(G_k = f'(k^*) - n = \rho - n\) and \(G_c = -1\);
- \(H_k = \sigma c^* f''(k^*)\) and \(H_c = \sigma[f'(k^*) - \rho] = 0\).
- The linear system is \(\begin{bmatrix}\dot k \\ \dot c\end{bmatrix} = \Omega \begin{bmatrix}k - k^* \\ c - c^*\end{bmatrix}\), with \(\Omega = \begin{bmatrix}\rho - n & -1 \\ \sigma c^* f''(k^*) & 0\end{bmatrix}\) [3.33].
- The eigenvalues satisfy \(\lambda_1\lambda_2 = \det\Omega = \sigma c^* f''(k^*) < 0\), since \(f'' < 0\). They are real with opposite signs, \(\lambda_s < 0 < \lambda_u\), and \(\lambda_s + \lambda_u = \operatorname{tr}\Omega = \rho - n\).
- The general solution is \(x_t - x^* = A v_s e^{\lambda_s t} + B v_u e^{\lambda_u t}\). Convergence needs \(B = 0\). Capital is predetermined (\(k_0\) given), so \(A\) is fixed by \(k_0\), and \(c_0\) is determined uniquely: the saddle path.
- From the first row of \((\Omega - \lambda_s I)v_s = 0\), the stable arm is \(c - c^* = (\rho - n - \lambda_s)(k - k^*)\). Its slope is positive and equal to \(\lambda_u\). \[\boxed{\;\det\Omega < 0 \;\Rightarrow\; \lambda_s < 0 < \lambda_u \;\Rightarrow\; \text{a unique converging path}\;}\]
Interpretation. The counting rule is that uniqueness requires as many unstable roots as jump variables (one here, \(c\)). Paths with \(B \neq 0\) satisfy the Euler equation and the resource constraint but violate the TVC. Either \(k\) rises past the golden rule, where \(f'(k) < n\) and \(\lambda e^{-\rho t}\) grows, or \(k\) hits zero and consumption collapses with a jump in the price of capital (chapter footnote 10). Numerically, with the illustrative parameters, \(\lambda_s \approx -0.0412\) (Exercise 5).
5 Result — Integrating the budget constraint
Claim. Under the no-Ponzi condition, the flow budget constraint \(\dot a_t - (r - n)a_t = w_t - c_t\) [3.41] implies \(\int_0^\infty w_s e^{-(r-n)s}ds + a_0 = \int_0^\infty c_s e^{-(r-n)s}ds\) [3.45].
Derivation.
- Multiply by the integrating factor \(e^{-(r-n)t}\): \(\dot a_t e^{-(r-n)t} - (r - n)a_t e^{-(r-n)t} = (w_t - c_t)e^{-(r-n)t}\) [3.42].
- The left side is \(\dfrac{d}{dt}\left[a_t e^{-(r-n)t}\right]\).
- Integrate from \(0\) to \(t\): \(a_t e^{-(r-n)t} - a_0 = \int_0^t (w_s - c_s)e^{-(r-n)s}ds\) [3.43].
- Let \(t \to \infty\). Under the no-Ponzi condition \(\lim a_t e^{-(r-n)t} \ge 0\), holding with equality at an optimum (a household would never leave positive present-value wealth unspent), the left side tends to \(-a_0\) [3.44].
- Rearrange: \[\boxed{\;\int_0^\infty w_s e^{-(r-n)s}\,ds + a_0 = \int_0^\infty c_s e^{-(r-n)s}\,ds\;}\]
Interpretation. The present value of lifetime consumption equals initial wealth plus the present value of labour income.
6 Result — Decentralised equilibrium = planner’s optimum
Claim. The competitive equilibrium paths of \((c_t, k_t)\) coincide with the planner’s [3.34–3.53].
Derivation.
- Firms maximise profits under constant returns, so \(r_t = f'(k_t)\) and \(w_t = f(k_t) - f'(k_t)k_t\) [3.38–3.39].
- The household’s Hamiltonian [3.48] gives, as in the Euler result, \(-\dfrac{c\,u''(c)}{u'(c)}\dfrac{\dot c}{c} = r - \rho\) [3.49], that is \(\dot c / c = \sigma(r - \rho) = \sigma[f'(k) - \rho]\).
- Households are identical, so no one is a net lender: \(b_t = 0\) and \(a_t = k_t\).
- The household budget then gives \(\dot k = w + (r - n)k - c = f(k) - f'(k)k + f'(k)k - nk - c = f(k) - nk - c\), the planner’s resource constraint [3.5].
- From the FOCs, \(e^{(n-r)t} = \lambda_t e^{-\rho t}\) [3.52], so the no-Ponzi condition becomes \(\lim a_t\lambda_t e^{-\rho t} = 0\) [3.53]. With \(a = k\), this is the planner’s TVC. \[\boxed{\;\text{same Euler equation, same resource constraint, same TVC, same } k_0 \;\Rightarrow\; \text{same paths}\;}\]
Interpretation. With complete competitive markets and no externalities, the first welfare theorem holds dynamically. This is why the planner shortcut is safe here (Exercise 8).
7 Quantitative and numerical methods
The saddle path has no closed form for general \(f\), so it is computed numerically:
- Backward integration (used by this guide’s
_model.py). Start just off the steady state along the stable eigenvector \(v_s\) and integrate the system backward in time. Reversing time turns the saddle’s stable arm into an attractor, so numerical error does not blow up. - Forward shooting (used by
_verify.pyas an independent check). For a given \(k_0\), bisect on \(c_0\): too high and capital runs out; too low and capital over-accumulates. The bracket closes on the saddle path. The two methods agree on the impact effect of the patience shock in the key graphs. - Linearisation gives the local slope \(\rho - n - \lambda_s\) and the convergence speed \(|\lambda_s|\) (half-life \(\ln 2/|\lambda_s|\)).
The model notebook implements all three, so you can experiment.
8 Frontier notes
- Should a planner discount at all? Ramsey thought discounting future utility unethical. Caplin and Leahy (2004) argue that standard discounting imposes a “tyranny of the present” from a planner’s perspective. The choice of the social discount rate is decisive for climate policy (Nordhaus 2007, on the Stern Review). See reading.
- Heterogeneity and the representative agent. Caselli and Ventura (2000) show which forms of heterogeneity (tastes, skills, initial wealth) still aggregate to a representative household, and what distributional dynamics remain possible. Modern heterogeneous-agent models relax this further.
- \(r\) versus \(g\) in the long run. Schmelzing (2019) documents a centuries-long decline in real rates. Holston, Laubach and Williams (2017) estimate a decline in the natural rate of interest across advanced economies. Whether \(r < g\) has become the norm matters for debt sustainability and dynamic efficiency (Chapters 8, 17–18).