F5-conf-04 — VFI vs closed-form policy, optimal growth with log utility
Question
A planner maximises Σ β^t ln c_t subject to y_{t+1} = (y_t − c_t)^α (full depreciation, productivity 1). We derive the closed-form policy and value function, solve the Bellman equation numerically by value-function iteration (VFI) on the prescribed grid, and compare the two at y = 0.5, 1, 2 (policy) and y = 1 (value).
Data and exclusions
Only data/model.csv (10 rows; n_input_rows) is used: α = 0.36, β = 0.95, grid of 400 points equally spaced in ln y on
[0.05, 5] (grid_points_used, n_analysed), VFI tolerance 1e-8 (sup norm). SHA-256 and schema are in out/state/data_audit.md.
No exclusions (out/exclusions.csv: 400 − 0 = 400). No deviation from the prescribed design was needed, so data_issues is empty.
The evaluation points are not grid nodes, so the numerical policy is interpolated there (allowed by TASK.md).
Method
Closed form (guess and verify). Assumptions: log utility, Cobb–Douglas technology y' = k^α with 0<α<1, full depreciation, productivity 1, 0<β<1, interior solution 0<c<y. Guess V(y) = A + B ln y. The first-order condition of max_c {ln c + β(A + Bα ln(y − c))} is 1/c = αβB/(y − c), so c = y/(1 + αβB). Substituting back and matching coefficients on ln y gives B = 1 + αβB, i.e. B = 1/(1 − αβ), hence
- policy: c(y) = (1 − αβ) y, savings rate (y − c)/y = αβ;
- value: V(y) = A + ln y /(1 − αβ), with A = [ln(1 − αβ) + (αβ/(1 − αβ)) ln(αβ)] / (1 − β).
The objective is strictly concave in c, so the FOC gives the maximum; the code verifies the Bellman equation holds to 3.6e-15
(
out/state/checks.md).
Contraction. On the compact grid the return ln(y − y'^{1/α}) is bounded over feasible choices, and the Bellman operator
T V(y) = max {u + β V(y')} satisfies Blackwell's sufficient conditions (monotonicity; discounting T(V + a) = TV + βa). Hence it is
a contraction in the sup norm with modulus β = 0.95 (contraction_modulus). (On the unbounded state space (0, ∞) log utility is
unbounded and the standard argument needs a weighted norm; the numerical problem lives on the compact grid.)
VFI. State = current output y on the grid; choice = next-period output y' restricted to grid nodes, requiring capital
k = y'^{1/α} < y, consumption c = y − k (discrete choice, vectorised 400×400). Start from V0 = 0 and iterate until the sup-norm
change is below 1e-8. The policy is c at the argmax; values at y = 0.5, 1, 2 are obtained by linear interpolation in ln y
(the grid is uniform in ln y and V is linear in ln y). The closed form is never used inside the VFI. No random numbers
(random_seed = null). The optimal y' never hits a grid bound.
Results
| quantity | closed form | VFI |
|---|---|---|
| c(0.5) | 0.329 (c_closed_y05) |
0.32882 (c_num_y05) |
| c(1.0) | 0.658 (c_closed_y1) |
0.65899 (c_num_y1) |
| c(2.0) | 1.316 (c_closed_y2) |
1.30963 (c_num_y2) |
| V(1) | −19.52441 (value_closed_y1) |
−19.52476 (value_num_y1) |
- Maximum absolute policy discrepancy over the three points: 0.00637 units of output (
max_abs_error_policy), attained at y = 2, i.e. about 0.5% of consumption. - Value at y = 1 differs by about 3.4e-4 utils (
value_closed_y1,value_num_y1). - Closed-form savings rate αβ = 0.342 (
savings_rate_closed_form) (the baseline quantity). - Contraction modulus β = 0.95 (
contraction_modulus); VFI converged in 361 iterations (n_iterations) with final sup change 9.997e-9 < 1e-8 (final_sup_change);feasibility= "complete".
Uncertainty
The model is deterministic; there is no sampling uncertainty. The numerical error has two sources:
- Iteration (truncation) error: by the contraction property, ‖V_n − V*grid‖ ≤ β/(1 − β)·‖V_n − V{n−1}‖ ≤ 19 × 1e-8 ≈ 1.9e-7
utils (from
final_sup_change,contraction_modulus), negligible. - Discretisation error: dominant. The choice y' is restricted to grid nodes with log spacing ≈ 0.0115, i.e. capital moves in relative steps of ≈ 0.0115/α ≈ 3.2%, so the policy is a step function around the true linear policy; plus interpolation error at non-node evaluation points. On all grid nodes the maximum policy error is 0.025 and the maximum value error 4.8e-4 (diagnostic fields in results.json, not required keys). These errors shrink with finer grids (or continuous choice with interpolation).
Limitations and open issues
- The validation is for a single parameter point (α = 0.36, β = 0.95), one grid (400 log-spaced points on [0.05, 5]) and a discrete-choice VFI; it does not establish accuracy for other parameters, grids, or for states outside [0.05, 5].
- The size of the discrepancy depends on grid density, the discrete restriction of the choice to grid nodes, and the interpolation rule (linear in ln y); a different but equally defensible implementation (e.g. continuous choice) would give different, likely smaller, errors. No grid-refinement study was performed (not required).
- The closed form relies on log utility, Cobb–Douglas technology, full depreciation and an interior solution; it does not apply otherwise.